From: jk7744.park Date: Sat, 24 Oct 2015 06:45:08 +0000 (+0900) Subject: tizen 2.4 release X-Git-Tag: accepted/tizen/2.4/mobile/20151029.041142^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6d5fd6b5960024dc23948dee3739abbd8a179165;p=apps%2Fhome%2Fug-image-viewer-efl.git tizen 2.4 release --- diff --git a/CMakeLists.txt b/CMakeLists.txt old mode 100644 new mode 100755 index 549031c..6dbcb67 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,13 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +PROJECT(ug-image-viewer-efl C CXX) + SET(IVUG_PACKAGE_NAME "ug-image-viewer-efl") +SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) + +SET(CMAKE_INSTALL_PREFIX "/usr/ug") +SET(IVUG_DATA_DIR "/opt/usr/ug/data/ug-image-viewer-efl") # BUILD_TC can have TRUE or FALSE #SET(BUILD_TC TRUE) @@ -9,10 +15,12 @@ IF("${ARCH}" STREQUAL "arm") ADD_DEFINITIONS("-DTARGET") ENDIF("${ARCH}" STREQUAL "arm") +ADD_DEFINITIONS("-DUG_MODULE_API=__attribute__ \(\(visibility\(\"default\"\)\)\)") +ADD_DEFINITIONS("-DPACKAGE=\"${PROJECT_NAME}\"") ADD_DEFINITIONS("-DDATADIR=\"${CMAKE_DATA_DIR}\"") ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"") ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"") -ADD_DEFINITIONS("-DPACKAGE=\"${IVUG_PACKAGE_NAME}\"") +#ADD_DEFINITIONS("-DPACKAGE=\"${IVUG_PACKAGE_NAME}\"") ADD_DEFINITIONS("-DIVAPI=") SET(IVUG_SOURCE_COMMON_DIR "${CMAKE_SOURCE_DIR}/common") @@ -22,18 +30,22 @@ SET(IVUG_SOURCE_MEDIA_DIR "${CMAKE_SOURCE_DIR}/medialist") SET(IVUG_SOURCE_SLIDESHOW_DIR "${CMAKE_SOURCE_DIR}/slideshow") SET(IVUG_SOURCE_FEATURE_DIR "${CMAKE_SOURCE_DIR}/feature") SET(IVUG_SOURCE_RESOURCE_DIR "${CMAKE_SOURCE_DIR}/res") - +SET(IVUG_SOURCE_EXTERN_DIR "${CMAKE_SOURCE_DIR}/extern") +SET(IVUG_SOURCE_DEFINE_DIR "${CMAKE_SOURCE_DIR}/include") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS}") message("CFLAGS="${CMAKE_C_FLAGS}) message("CXXFLAGS="${CMAKE_CXX_FLAGS}) -message("LDFLAGS="${LDFLAGS}) +message("LDFLAGS="${CMAKE_LDFLAGS}) FUNCTION (BUILD_EDJ _in _out _base _dir) ADD_CUSTOM_TARGET(${_out} COMMAND - edje_cc -id ${_base}/${_dir} + edje_cc + -id ${_base}/${_dir} + -sd ${_base}/${_dir} + -DDEFINE_H=${IVUG_SOURCE_DEFINE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_in} ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_out} DEPENDS @@ -43,6 +55,22 @@ FUNCTION (BUILD_EDJ _in _out _base _dir) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_out} DESTINATION ${CMAKE_INSTALL_PREFIX}/res/edje/${IVUG_PACKAGE_NAME}) ENDFUNCTION (BUILD_EDJ) +FUNCTION (BUILD_EDJ_SOUND _in _out _base _dir _sound) + ADD_CUSTOM_TARGET(${_out} + COMMAND + edje_cc + -id ${_base}/${_dir} + -sd ${_base}/${_sound} + -DDEFINE_H=${IVUG_SOURCE_DEFINE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_in} + ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_out} + DEPENDS + ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_in} + ) + ADD_DEPENDENCIES(${PROJECT_NAME} ${_out}) + INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_out} DESTINATION ${CMAKE_INSTALL_PREFIX}/res/edje/${IVUG_PACKAGE_NAME}) +ENDFUNCTION (BUILD_EDJ_SOUND) + ADD_SUBDIRECTORY(main) ADD_SUBDIRECTORY(common) ADD_SUBDIRECTORY(medialist) @@ -50,13 +78,63 @@ ADD_SUBDIRECTORY(widget) ADD_SUBDIRECTORY(slideshow) ADD_SUBDIRECTORY(feature) ADD_SUBDIRECTORY(res) - -# Install manifest -INSTALL(FILES ${IVUG_PACKAGE_NAME}.xml DESTINATION /usr/share/packages) - -INSTALL(FILES LICENSE.Flora DESTINATION /usr/share/license RENAME ${IVUG_PACKAGE_NAME}) +ADD_SUBDIRECTORY(theme) IF (BUILD_TC) ADD_SUBDIRECTORY(TC) ENDIF() +SET(SRCS + ug-image-viewer.cpp +) +INCLUDE(FindPkgConfig) +pkg_check_modules(pkgs REQUIRED + elementary + ui-gadget-1 + capi-appfw-application + capi-appfw-app-manager + appsvc + efl-extension + capi-system-runtime-info + capi-system-system-settings +) +INCLUDE_DIRECTORIES( + include + common/include + main/src/control + main/src/include +) + +FOREACH(flag ${pkgs_CFLAGS}) + SET(EXTRA_FLAGS "${EXTRA_FLAGS} ${flag}") +ENDFOREACH(flag) + +#ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS}) +ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS}) + +SET(VERSION_MAJOR 0) +SET(VERSION "${VERSION_MAJOR}.1.0") + +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION_MAJOR}) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION}) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "${EXTRA_FLAGS}") +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib) +TARGET_LINK_LIBRARIES(${PROJECT_NAME} + ${pkgs_LDFLAGS} +# "-Wl,--whole-archive" + image-viewer +# "-Wl,--no-whole-archive " +) + +INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) + +# Install manifest +INSTALL(FILES app.xml DESTINATION /usr/share/packages RENAME image-viewer-efl.xml) + +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/appicon/icon.png DESTINATION +${CMAKE_INSTALL_PREFIX}/res/images/ug-image-viewer-efl +RENAME ${IVUG_PACKAGE_NAME}.png) + +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/appicon/icon.png DESTINATION +/usr/share/icons/default/small RENAME ${IVUG_PACKAGE_NAME}.png) + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..54b213e --- /dev/null +++ b/LICENSE @@ -0,0 +1,204 @@ +Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + + 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/LICENSE.Flora b/LICENSE.Flora deleted file mode 100755 index 571fe79..0000000 --- a/LICENSE.Flora +++ /dev/null @@ -1,206 +0,0 @@ -Flora License - -Version 1.1, April, 2013 - -http://floralicense.org/license/ - -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. - -"Tizen Certified Platform" shall mean a software platform that complies -with the standards set forth in the Tizen Compliance Specification -and passes the Tizen Compliance Tests as defined from time to time -by the Tizen Technical Steering Group and certified by the Tizen -Association or its designated agent. - -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 -solely as incorporated into a Tizen Certified Platform, 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 solely -as incorporated into a Tizen Certified Platform 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 pursuant to the copyright license -above, in any medium, with or without modifications, and in Source or -Object form, provided that You meet the following conditions: - - 1. You must give any other recipients of the Work or Derivative Works - a copy of this License; and - 2. You must cause any modified files to carry prominent notices stating - that You changed the files; and - 3. 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 - 4. 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 - and your own copyright statement or terms and conditions do not conflict - the conditions stated in the License including section 3. - -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 Flora License to your work - -To apply the Flora 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 Flora License, Version 1.1 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://floralicense.org/license/ - - 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/NOTICE b/NOTICE deleted file mode 100755 index 94d56df..0000000 --- a/NOTICE +++ /dev/null @@ -1,3 +0,0 @@ -Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved. -Except as noted, this software is licensed under Flora License, Version 1.1 -Please, see the LICENSE.Flora file for Flora License, Version 1.1 terms and conditions. diff --git a/app.xml b/app.xml new file mode 100755 index 0000000..b3deb28 --- /dev/null +++ b/app.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Jisung Ahn + Hyunwoo Kim + Image viewer Application + + ug-image-viewer-efl.png + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + http://tizen.org/privilege/messaging.write + http://tizen.org/privilege/nfc.admin + http://tizen.org/privilege/nfc.common + http://tizen.org/privilege/nfc.p2p + http://tizen.org/privilege/nfc.tag + http://tizen.org/privilege/wifi.wifidirect.admin + http://tizen.org/privilege/wifi.wifidirect.read + http://tizen.org/privilege/contact.read + http://tizen.org/privilege/contact.write + http://tizen.org/privilege/maps + http://tizen.org/privilege/mediastorage + http://tizen.org/privilege/display + + diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt old mode 100755 new mode 100644 index dcda72b..5870b2f --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -5,12 +5,11 @@ SET(PREFIX ${CMAKE_INSTALL_PREFIX}) SET(VERSION 0.1.0) SET(SRCS - src/ivug-mouse-event.c src/debug.c src/statistics.c src/ivug-uuid.c src/ivug-util.c - src/ivug-drm-common.c + src/ivug-file-util.c src/ivug-file-info.c src/ivug-callback.c src/ivug-config.c @@ -18,6 +17,7 @@ SET(SRCS src/ivug-exif.c src/ivug-db.c src/ivug-dir.cpp + src/ivug-language-mgr.c ) INCLUDE_DIRECTORIES( @@ -34,16 +34,14 @@ pkg_check_modules(${PROJECT_NAME}_pkgs REQUIRED ecore-file efreet-mime dlog - drm-client - libexif - vconf + glib-2.0 icu-i18n - capi-system-power capi-media-metadata-extractor capi-content-mime-type capi-content-media-content capi-system-system-settings capi-system-runtime-info + capi-appfw-preference ) FOREACH(flag ${${PROJECT_NAME}_pkgs_CFLAGS}) diff --git a/common/include/debug.h b/common/include/debug.h index 1a0c7ac..a105f3d 100755 --- a/common/include/debug.h +++ b/common/include/debug.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __ELM_MYPHOTOCAM_DEBUG_H__ #define __ELM_MYPHOTOCAM_DEBUG_H__ @@ -76,15 +77,16 @@ enum }; #define DBG_MSG_LVL_DEBUG (DBG_MSG_BIT_CUST13) +#define DBG_MSG_LVL_SEC (DBG_MSG_BIT_CUST12) #define DBG_MSG_LVL_ALL (DBG_MSG_LVL_LOW) -#define DBG_MSG_LVL_FATAL (DBG_MSG_BIT_FATAL) -#define DBG_MSG_LVL_ERROR (DBG_MSG_LVL_FATAL | DBG_MSG_BIT_ERROR) -#define DBG_MSG_LVL_WARN (DBG_MSG_LVL_ERROR | DBG_MSG_BIT_WARN) -#define DBG_MSG_LVL_HIGH (DBG_MSG_LVL_WARN | DBG_MSG_BIT_HIGH) -#define DBG_MSG_LVL_MED (DBG_MSG_LVL_HIGH | DBG_MSG_BIT_MED) -#define DBG_MSG_LVL_LOW (DBG_MSG_LVL_MED | DBG_MSG_BIT_LOW) +#define DBG_MSG_LVL_FATAL (DBG_MSG_BIT_FATAL | DBG_MSG_BIT_CUST12 ) +#define DBG_MSG_LVL_ERROR (DBG_MSG_LVL_FATAL | DBG_MSG_BIT_ERROR | DBG_MSG_BIT_CUST12) +#define DBG_MSG_LVL_WARN (DBG_MSG_LVL_ERROR | DBG_MSG_BIT_WARN | DBG_MSG_BIT_CUST12 ) +#define DBG_MSG_LVL_HIGH (DBG_MSG_LVL_WARN | DBG_MSG_BIT_HIGH | DBG_MSG_BIT_CUST12) +#define DBG_MSG_LVL_MED (DBG_MSG_LVL_HIGH | DBG_MSG_BIT_MED | DBG_MSG_BIT_CUST12) +#define DBG_MSG_LVL_LOW (DBG_MSG_LVL_MED | DBG_MSG_BIT_LOW | DBG_MSG_BIT_CUST12) #define DBG_MSG_LVL_NONE (0) @@ -113,6 +115,7 @@ extern "C" { aa = ( tv.tv_sec * 1000 + tv.tv_usec / 1000 ) - aa; \ } while(0) +// TODO : Need align(1) typedef struct { const char *fname; int nline; @@ -123,6 +126,10 @@ typedef struct { } debug_msg_type; void __custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...); +void __custom_sec_debug_msg(debug_msg_type *debug_msg, const char *msg, ...); + +unsigned long get_sys_elapsed_time(void); + #ifdef DISABLE_LOG @@ -141,7 +148,7 @@ void __custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...); do { \ if ((level) & DBG_MSG_BIT_FATAL) \ { \ - static debug_msg_type msg______unique______name___ = { \ + debug_msg_type msg______unique______name___ = { \ __FILE__, \ __LINE__, \ szCat, \ @@ -156,7 +163,7 @@ void __custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...); do { \ if ((level) & DBG_MSG_BIT_ERROR) \ { \ - static debug_msg_type msg______unique______name___ = { \ + debug_msg_type msg______unique______name___ = { \ __FILE__, \ __LINE__, \ szCat, \ @@ -172,7 +179,7 @@ void __custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...); do { \ if ((level) & DBG_MSG_BIT_WARN) \ { \ - static debug_msg_type msg______unique______name___ = { \ + debug_msg_type msg______unique______name___ = { \ __FILE__, \ __LINE__, \ szCat, \ @@ -183,11 +190,27 @@ void __custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...); } \ } while(0) +#define __MSG_SEC(level, szCat, ...) \ + do { \ + if ((level) & DBG_MSG_BIT_CUST12) \ + { \ + debug_msg_type msg______unique______name___ = { \ + __FILE__, \ + __LINE__, \ + szCat, \ + DBG_MSG_CUST12, \ + "SECURE", \ + }; \ + __custom_sec_debug_msg(&msg______unique______name___, ##__VA_ARGS__); \ + } \ + } while(0) + + #define __MSG_HIGH(level, szCat, ...) \ do { \ if ((level) & DBG_MSG_BIT_HIGH) \ { \ - static debug_msg_type msg______unique______name___ = { \ + debug_msg_type msg______unique______name___ = { \ __FILE__, \ __LINE__, \ szCat, \ @@ -202,7 +225,7 @@ void __custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...); do { \ if ((level) & DBG_MSG_BIT_MED) \ { \ - static debug_msg_type msg______unique______name___ = { \ + debug_msg_type msg______unique______name___ = { \ __FILE__, \ __LINE__, \ szCat, \ @@ -218,7 +241,7 @@ void __custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...); do { \ if ((level) & DBG_MSG_BIT_LOW) \ { \ - static debug_msg_type msg______unique______name___ = { \ + debug_msg_type msg______unique______name___ = { \ __FILE__, \ __LINE__, \ szCat, \ @@ -233,7 +256,7 @@ void __custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...); do { \ if ((level) & DBG_MSG_BIT_CUST13) \ { \ - static debug_msg_type msg______unique______name___ = { \ + debug_msg_type msg______unique______name___ = { \ __FILE__, \ __LINE__, \ szCat, \ diff --git a/common/include/ivug-callback.h b/common/include/ivug-callback.h index ce89068..0927994 100755 --- a/common/include/ivug-callback.h +++ b/common/include/ivug-callback.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_CALLBACK_H__ diff --git a/common/include/ivug-config.h b/common/include/ivug-config.h old mode 100755 new mode 100644 index ca965b2..6024ee5 --- a/common/include/ivug-config.h +++ b/common/include/ivug-config.h @@ -1,24 +1,23 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_CONFIG_H__ #define __IVUG_CONFIG_H__ -#include - #include "ivug-define.h" typedef enum { @@ -30,16 +29,18 @@ typedef enum { typedef enum { IVUG_EFFECT_TYPE_UNKNOWN = -1, - - IVUG_EFFECT_TYPE_IRIS= 0x00, - IVUG_EFFECT_TYPE_DISSOLVE, - IVUG_EFFECT_TYPE_SLIDE, - IVUG_EFFECT_TYPE_DISSOLVE_FADE, - IVUG_EFFECT_TYPE_SPLIT, - IVUG_EFFECT_TYPE_MAX, + IVUG_EFFECT_TYPE_SLIDE=0x00, + IVUG_EFFECT_TYPE_DISSOLVE_FADE } ivug_effect_type; -typedef void (*_vconf_state_changed_cb)(keynode_t* node, void *data); + +typedef enum { + PLAYSPEED_UNDEFINED, + PLAYSPEED_1_5TH, + PLAYSPEED_1_2TH, + PLAYSPEED_1, + PLAYSPEED_2, +} eConfigPlaySpeed; #ifdef __cplusplus extern "C" { @@ -49,12 +50,26 @@ bool ivug_config_set_lockscreen_image(const char* filepath); bool ivug_config_set_homescreen_image(const char* filepath); +void ivug_config_set_interval_time(int index); + +ivug_effect_type +ivug_config_get_effect_type_by_string(char *effect_str); + +char* ivug_config_get_slideshow_effect_type(void); + +int ivug_config_get_slideshow_interval_time(void); + +void ivug_config_set_transition_effect(int index); + void ivug_config_get_slideshow_setting(slide_show_mode * /* OUT */ mode, double * /* OUT */ interval_time, ivug_effect_type * /* OUT */ effect_type); bool ivug_config_get_can_rotate(void); +bool ivug_config_set_playspeed(eConfigPlaySpeed speed); +bool ivug_config_get_playspeed(eConfigPlaySpeed *speed); + #ifdef __cplusplus } #endif diff --git a/common/include/ivug-db.h b/common/include/ivug-db.h index db11767..a93076b 100755 --- a/common/include/ivug-db.h +++ b/common/include/ivug-db.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_DB_H__ #define __IVUG_DB_H__ @@ -20,6 +21,8 @@ #include #include "ivug-datatypes.h" +#include // localtime_r +#include "ivug-uuid.h" #ifdef __cplusplus extern "C" { @@ -28,20 +31,53 @@ extern "C" { typedef void *filter_handle; typedef void *media_handle; typedef void *tag_handle; +typedef void *noti_handle; + +typedef enum +{ + IV_DB_UPDATE_INSERT, + IV_DB_UPDATE_DELETE, + IV_DB_UPDATE_UPDATE, + IV_DB_UPDATE_MAX +}Ivug_DB_Update_Type; typedef bool (*ivug_db_cb)(media_handle media, void *user_data); typedef void (*ivug_db_path_cb)(media_handle media, const char *path, void *user_data); +typedef int (*ivug_db_update_cb)(media_handle media, const char *path, Ivug_DB_Update_Type type, void *user_data); #define IVUG_MAX_CONDITION_LEN (1024) typedef struct _Ivug_DB_h { ivug_db_path_cb callback; + ivug_db_update_cb update_cb; media_handle *m_handle; + noti_handle *n_handle; void *data; int key; }Ivug_DB_h; +typedef enum +{ + IV_STORAGE_TYPE_INTERNAL, + IV_STORAGE_TYPE_EXTERNAL, + IV_STORAGE_TYPE_CLOUD, + IV_STORAGE_TYPE_WEB, + IV_STORAGE_TYPE_MAX +}Ivug_DB_Stroge_Type; + +typedef enum +{ + IV_MEDIA_TYPE_NORMAL, + IV_MEDIA_TYPE_PANORAMA, + IV_MEDIA_TYPE_SOUNDNSHOT, + IV_MEDIA_TYPE_ANIMATED_PHOTO, + IV_MEDIA_TYPE_BEST_PHOTO, + IV_MEDIA_TYPE_BURST, + IV_MEDIA_TYPE_FACEBOOK, + IV_MEDIA_TYPE_MAX +}Ivug_Media_Type; + bool ivug_db_create(void); bool ivug_db_destroy(void); @@ -52,12 +88,13 @@ bool ivug_db_rename(media_handle m_handle, const char *dest); bool ivug_db_create_filter(filter_handle *filter); bool ivug_db_destroy_filter(filter_handle filter); bool ivug_db_set_filter(filter_handle filter, ivug_view_by view_by, ivug_media_type media_type, char *condition); +bool ivug_db_set_image_time_asc_filter(filter_handle filter, char *condition); bool ivug_db_set_filter_offset(filter_handle filter, int stp, int endp); media_handle ivug_db_insert_file_to_DB(const char* filepath); media_handle ivug_db_get_file_handle(const char* filepath); -media_handle ivug_db_get_file_handle_from_media_id(const char* media_id); +media_handle ivug_db_get_file_handle_from_media_id(UUID media_id); media_handle ivug_db_get_folder_handle(const char* folderpath); tag_handle ivug_db_get_tag_handle(const char* tagname); @@ -72,26 +109,60 @@ bool ivug_db_destroy_tag(tag_handle tag_h); bool ivug_db_set_tag(media_handle m_handle, tag_handle t_handle); bool ivug_db_set_favorite(media_handle media, bool set); +bool ivug_db_get_favorite(media_handle media, bool *bFavorite); int ivug_db_get_tag_id(tag_handle media); + + +/* + After use, uuid_free() for dealocate memory +*/ +UUID ivug_db_get_file_id(media_handle media); +UUID ivug_db_get_folder_id(media_handle media); + + /* below functions returned values should be freed by user */ char *ivug_db_get_file_path(media_handle media); -char *ivug_db_get_file_id(media_handle media); + char *ivug_db_get_thumbnail_path(media_handle media); char *ivug_db_get_folder_name(media_handle media); -char *ivug_db_get_folder_id(media_handle media); + char *ivug_db_get_folder_path(media_handle media); char *ivug_db_get_tag_name(tag_handle media); +char *ivug_db_get_mime_type(media_handle media); +char *ivug_db_get_burstID(media_handle media); bool ivug_db_get_file_size(media_handle media, unsigned long long *size); - +bool ivug_db_get_modified_time(media_handle media, time_t *time); +bool ivug_db_get_time(media_handle media, time_t *time); +bool ivug_db_get_video_duration(media_handle media, int *duration); +bool ivug_db_get_folder_storage_type(media_handle media, Ivug_DB_Stroge_Type *type); +bool ivug_db_get_file_storage_type(media_handle media, Ivug_DB_Stroge_Type *type); Ivug_DB_h * ivug_db_create_thumbnail(media_handle media, ivug_db_path_cb callback, void *data); bool ivug_db_cancel_thumbnail(Ivug_DB_h *db_h); +Ivug_DB_h *ivug_db_set_updated_callback(ivug_db_update_cb callback, void *data); +bool ivug_db_unset_updated_callback(Ivug_DB_h *db_h); + +bool ivug_db_get_taken_time(media_handle media, char **taken_time); + +bool ivug_db_set_best_photo(const char *filepath); +bool ivug_db_get_media_type(media_handle media, Ivug_Media_Type *type); +bool ivug_db_get_location(media_handle media, char **location); +bool ivug_db_get_get_longitude(media_handle media, double * longitude); +bool ivug_db_get_get_latitude(media_handle media, double * latitude); + +/* + Returns whether given media is burstshot or not +*/ +bool ivug_db_is_burstshot(media_handle media); + +bool ivug_db_is_supported_file_type(media_handle media); + #ifdef __cplusplus } #endif diff --git a/common/include/ivug-debug.h b/common/include/ivug-debug.h index 984e91d..8a4d074 100755 --- a/common/include/ivug-debug.h +++ b/common/include/ivug-debug.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 _IVUG_DEBUG_H_ #define _IVUG_DEBUG_H_ @@ -84,12 +85,19 @@ enum { #endif //IVUG_LOG_OUTPUT_DLOG +/* + How to add new Category.. + + TODO: +*/ + #define MSG_MOUSE_SZCAT "IV-MOUSE" #define LVL_MOUSE DBG_MSG_LVL_WARN #define MSG_MOUSE_FATAL(...) __MSG_FATAL(LVL_MOUSE, MSG_MOUSE_SZCAT, ##__VA_ARGS__) #define MSG_MOUSE_ERROR(...) __MSG_ERROR(LVL_MOUSE, MSG_MOUSE_SZCAT, ##__VA_ARGS__) #define MSG_MOUSE_WARN(...) __MSG_WARN(LVL_MOUSE, MSG_MOUSE_SZCAT, ##__VA_ARGS__) +#define MSG_MOUSE_SEC(...) __MSG_SEC(LVL_MOUSE, MSG_MOUSE_SZCAT, ##__VA_ARGS__) #define MSG_MOUSE_HIGH(...) __MSG_HIGH(LVL_MOUSE, MSG_MOUSE_SZCAT, ##__VA_ARGS__) #define MSG_MOUSE_MED(...) __MSG_MED(LVL_MOUSE, MSG_MOUSE_SZCAT, ##__VA_ARGS__) #define MSG_MOUSE_LOW(...) __MSG_LOW(LVL_MOUSE, MSG_MOUSE_SZCAT, ##__VA_ARGS__) @@ -102,6 +110,7 @@ enum { #define MSG_SITEM_FATAL(...) __MSG_FATAL(LVL_SLIDER_ITEM, SLIDER_ITEM_SZ, ##__VA_ARGS__) #define MSG_SITEM_ERROR(...) __MSG_ERROR(LVL_SLIDER_ITEM, SLIDER_ITEM_SZ, ##__VA_ARGS__) #define MSG_SITEM_WARN(...) __MSG_WARN(LVL_SLIDER_ITEM, SLIDER_ITEM_SZ, ##__VA_ARGS__) +#define MSG_SITEM_SEC(...) __MSG_SEC(LVL_SLIDER_ITEM, SLIDER_ITEM_SZ, ##__VA_ARGS__) #define MSG_SITEM_HIGH(...) __MSG_HIGH(LVL_SLIDER_ITEM, SLIDER_ITEM_SZ, ##__VA_ARGS__) #define MSG_SITEM_MED(...) __MSG_MED(LVL_SLIDER_ITEM, SLIDER_ITEM_SZ, ##__VA_ARGS__) #define MSG_SITEM_LOW(...) __MSG_LOW(LVL_SLIDER_ITEM, SLIDER_ITEM_SZ, ##__VA_ARGS__) @@ -113,6 +122,7 @@ enum { #define MSG_SLIDER_FATAL(...) __MSG_FATAL(LVL_SLIDER, SLIDER_SZ, ##__VA_ARGS__) #define MSG_SLIDER_ERROR(...) __MSG_ERROR(LVL_SLIDER, SLIDER_SZ, ##__VA_ARGS__) #define MSG_SLIDER_WARN(...) __MSG_WARN(LVL_SLIDER, SLIDER_SZ, ##__VA_ARGS__) +#define MSG_SLIDER_SEC(...) __MSG_SEC(LVL_SLIDER, SLIDER_SZ, ##__VA_ARGS__) #define MSG_SLIDER_HIGH(...) __MSG_HIGH(LVL_SLIDER, SLIDER_SZ, ##__VA_ARGS__) #define MSG_SLIDER_MED(...) __MSG_MED(LVL_SLIDER, SLIDER_SZ, ##__VA_ARGS__) #define MSG_SLIDER_LOW(...) __MSG_LOW(LVL_SLIDER, SLIDER_SZ, ##__VA_ARGS__) @@ -123,6 +133,7 @@ enum { #define MSG_SETAS_FATAL(...) __MSG_FATAL(LVL_SETAS, SETAS_SZ, ##__VA_ARGS__) #define MSG_SETAS_ERROR(...) __MSG_ERROR(LVL_SETAS, SETAS_SZ, ##__VA_ARGS__) #define MSG_SETAS_WARN(...) __MSG_WARN(LVL_SETAS, SETAS_SZ, ##__VA_ARGS__) +#define MSG_SETAS_SEC(...) __MSG_SEC(LVL_SETAS, SETAS_SZ, ##__VA_ARGS__) #define MSG_SETAS_HIGH(...) __MSG_HIGH(LVL_SETAS, SETAS_SZ, ##__VA_ARGS__) #define MSG_SETAS_MED(...) __MSG_MED(LVL_SETAS, SETAS_SZ, ##__VA_ARGS__) #define MSG_SETAS_LOW(...) __MSG_LOW(LVL_SETAS, SETAS_SZ, ##__VA_ARGS__) @@ -133,6 +144,7 @@ enum { #define MSG_DETAIL_FATAL(...) __MSG_FATAL(LVL_DETAIL, DETAIL_SZ, ##__VA_ARGS__) #define MSG_DETAIL_ERROR(...) __MSG_ERROR(LVL_DETAIL, DETAIL_SZ, ##__VA_ARGS__) #define MSG_DETAIL_WARN(...) __MSG_WARN(LVL_DETAIL, DETAIL_SZ, ##__VA_ARGS__) +#define MSG_DETAIL_SEC(...) __MSG_SEC(LVL_DETAIL, DETAIL_SZ, ##__VA_ARGS__) #define MSG_DETAIL_HIGH(...) __MSG_HIGH(LVL_DETAIL, DETAIL_SZ, ##__VA_ARGS__) #define MSG_DETAIL_MED(...) __MSG_MED(LVL_DETAIL, DETAIL_SZ, ##__VA_ARGS__) #define MSG_DETAIL_LOW(...) __MSG_LOW(LVL_DETAIL, DETAIL_SZ, ##__VA_ARGS__) @@ -143,6 +155,7 @@ enum { #define MSG_BEST_FATAL(...) __MSG_FATAL(LVL_BEST, BEST_SZ, ##__VA_ARGS__) #define MSG_BEST_ERROR(...) __MSG_ERROR(LVL_BEST, BEST_SZ, ##__VA_ARGS__) #define MSG_BEST_WARN(...) __MSG_WARN(LVL_BEST, BEST_SZ, ##__VA_ARGS__) +#define MSG_BEST_SEC(...) __MSG_SEC(LVL_BEST, BEST_SZ, ##__VA_ARGS__) #define MSG_BEST_HIGH(...) __MSG_HIGH(LVL_BEST, BEST_SZ, ##__VA_ARGS__) #define MSG_BEST_MED(...) __MSG_MED(LVL_BEST, BEST_SZ, ##__VA_ARGS__) #define MSG_BEST_LOW(...) __MSG_LOW(LVL_BEST, BEST_SZ, ##__VA_ARGS__) @@ -154,6 +167,7 @@ enum { #define MSG_SDATA_FATAL(...) __MSG_FATAL(LVL_SDATA, SDATA_SZ, ##__VA_ARGS__) #define MSG_SDATA_ERROR(...) __MSG_ERROR(LVL_SDATA, SDATA_SZ, ##__VA_ARGS__) #define MSG_SDATA_WARN(...) __MSG_WARN(LVL_SDATA, SDATA_SZ, ##__VA_ARGS__) +#define MSG_SDATA_SEC(...) __MSG_SEC(LVL_SDATA, SDATA_SZ, ##__VA_ARGS__) #define MSG_SDATA_HIGH(...) __MSG_HIGH(LVL_SDATA, SDATA_SZ, ##__VA_ARGS__) #define MSG_SDATA_MED(...) __MSG_MED(LVL_SDATA, SDATA_SZ, ##__VA_ARGS__) #define MSG_SDATA_LOW(...) __MSG_LOW(LVL_SDATA, SDATA_SZ, ##__VA_ARGS__) @@ -165,6 +179,7 @@ enum { #define MSG_IMAGEVIEW_FATAL(...) __MSG_FATAL(LVL_IVCOMMON, IVCOMMON_SZ, ##__VA_ARGS__) #define MSG_IMAGEVIEW_ERROR(...) __MSG_ERROR(LVL_IVCOMMON, IVCOMMON_SZ, ##__VA_ARGS__) #define MSG_IMAGEVIEW_WARN(...) __MSG_WARN(LVL_IVCOMMON, IVCOMMON_SZ, ##__VA_ARGS__) +#define MSG_IMAGEVIEW_SEC(...) __MSG_SEC(LVL_IVCOMMON, IVCOMMON_SZ, ##__VA_ARGS__) #define MSG_IMAGEVIEW_HIGH(...) __MSG_HIGH(LVL_IVCOMMON, IVCOMMON_SZ, ##__VA_ARGS__) #define MSG_IMAGEVIEW_MED(...) __MSG_MED(LVL_IVCOMMON, IVCOMMON_SZ, ##__VA_ARGS__) #define MSG_IMAGEVIEW_LOW(...) __MSG_LOW(LVL_IVCOMMON, IVCOMMON_SZ, ##__VA_ARGS__) @@ -172,6 +187,7 @@ enum { #define MSG_IVUG_FATAL(...) __MSG_FATAL(LVL_IVCOMMON, IVCOMMON_SZ, ##__VA_ARGS__) #define MSG_IVUG_ERROR(...) __MSG_ERROR(LVL_IVCOMMON, IVCOMMON_SZ, ##__VA_ARGS__) #define MSG_IVUG_WARN(...) __MSG_WARN(LVL_IVCOMMON, IVCOMMON_SZ, ##__VA_ARGS__) +#define MSG_IVUG_SEC(...) __MSG_SEC(LVL_IVCOMMON, IVCOMMON_SZ, ##__VA_ARGS__) #define MSG_IVUG_HIGH(...) __MSG_HIGH(LVL_IVCOMMON, IVCOMMON_SZ, ##__VA_ARGS__) #define MSG_IVUG_MED(...) __MSG_MED(LVL_IVCOMMON, IVCOMMON_SZ, ##__VA_ARGS__) #define MSG_IVUG_LOW(...) __MSG_LOW(LVL_IVCOMMON, IVCOMMON_SZ, ##__VA_ARGS__) @@ -184,16 +200,18 @@ enum { #define MSG_MAIN_FATAL(...) __MSG_FATAL(LVL_MAINVIEW, MAINVIEW_SZ, ##__VA_ARGS__) #define MSG_MAIN_ERROR(...) __MSG_ERROR(LVL_MAINVIEW, MAINVIEW_SZ, ##__VA_ARGS__) #define MSG_MAIN_WARN(...) __MSG_WARN(LVL_MAINVIEW, MAINVIEW_SZ, ##__VA_ARGS__) +#define MSG_MAIN_SEC(...) __MSG_SEC(LVL_MAINVIEW, MAINVIEW_SZ, ##__VA_ARGS__) #define MSG_MAIN_HIGH(...) __MSG_HIGH(LVL_MAINVIEW, MAINVIEW_SZ, ##__VA_ARGS__) #define MSG_MAIN_MED(...) __MSG_MED(LVL_MAINVIEW, MAINVIEW_SZ, ##__VA_ARGS__) #define MSG_MAIN_LOW(...) __MSG_LOW(LVL_MAINVIEW, MAINVIEW_SZ, ##__VA_ARGS__) #define UTIL_SZ "IV-UTIL" -#define LVL_UTIL DBG_MSG_LVL_WARN +#define LVL_UTIL DBG_MSG_LVL_HIGH #define MSG_UTIL_FATAL(...) __MSG_FATAL(LVL_UTIL, UTIL_SZ, ##__VA_ARGS__) #define MSG_UTIL_ERROR(...) __MSG_ERROR(LVL_UTIL, UTIL_SZ, ##__VA_ARGS__) #define MSG_UTIL_WARN(...) __MSG_WARN(LVL_UTIL, UTIL_SZ, ##__VA_ARGS__) +#define MSG_UTIL_SEC(...) __MSG_SEC(LVL_UTIL, UTIL_SZ, ##__VA_ARGS__) #define MSG_UTIL_HIGH(...) __MSG_HIGH(LVL_UTIL, UTIL_SZ, ##__VA_ARGS__) #define MSG_UTIL_MED(...) __MSG_MED(LVL_UTIL, UTIL_SZ, ##__VA_ARGS__) #define MSG_UTIL_LOW(...) __MSG_LOW(LVL_UTIL, UTIL_SZ, ##__VA_ARGS__) @@ -204,6 +222,7 @@ enum { #define MSG_NOTI_FATAL(...) __MSG_FATAL(LVL_NOTI, NOTI_SZ, ##__VA_ARGS__) #define MSG_NOTI_ERROR(...) __MSG_ERROR(LVL_NOTI, NOTI_SZ, ##__VA_ARGS__) #define MSG_NOTI_WARN(...) __MSG_WARN(LVL_NOTI, NOTI_SZ, ##__VA_ARGS__) +#define MSG_NOTI_SEC(...) __MSG_SEC(LVL_NOTI, NOTI_SZ, ##__VA_ARGS__) #define MSG_NOTI_HIGH(...) __MSG_HIGH(LVL_NOTI, NOTI_SZ, ##__VA_ARGS__) #define MSG_NOTI_MED(...) __MSG_MED(LVL_NOTI, NOTI_SZ, ##__VA_ARGS__) #define MSG_NOTI_LOW(...) __MSG_LOW(LVL_NOTI, NOTI_SZ, ##__VA_ARGS__) @@ -214,6 +233,7 @@ enum { #define MSG_EFFECT_FATAL(...) __MSG_FATAL(LVL_EFFECT, EFFECT_SZ, ##__VA_ARGS__) #define MSG_EFFECT_ERROR(...) __MSG_ERROR(LVL_EFFECT, EFFECT_SZ, ##__VA_ARGS__) #define MSG_EFFECT_WARN(...) __MSG_WARN(LVL_EFFECT, EFFECT_SZ, ##__VA_ARGS__) +#define MSG_EFFECT_SEC(...) __MSG_SEC(LVL_EFFECT, EFFECT_SZ, ##__VA_ARGS__) #define MSG_EFFECT_HIGH(...) __MSG_HIGH(LVL_EFFECT, EFFECT_SZ, ##__VA_ARGS__) #define MSG_EFFECT_MED(...) __MSG_MED(LVL_EFFECT, EFFECT_SZ, ##__VA_ARGS__) #define MSG_EFFECT_LOW(...) __MSG_LOW(LVL_EFFECT, EFFECT_SZ, ##__VA_ARGS__) @@ -224,6 +244,7 @@ enum { #define MSG_SLIST_FATAL(...) __MSG_FATAL(LVL_SLIST_ITEM, SLIST_ITEM_SZ, ##__VA_ARGS__) #define MSG_SLIST_ERROR(...) __MSG_ERROR(LVL_SLIST_ITEM, SLIST_ITEM_SZ, ##__VA_ARGS__) #define MSG_SLIST_WARN(...) __MSG_WARN(LVL_SLIST_ITEM, SLIST_ITEM_SZ, ##__VA_ARGS__) +#define MSG_SLIST_SEC(...) __MSG_SEC(LVL_SLIST_ITEM, SLIST_ITEM_SZ, ##__VA_ARGS__) #define MSG_SLIST_HIGH(...) __MSG_HIGH(LVL_SLIST_ITEM, SLIST_ITEM_SZ, ##__VA_ARGS__) #define MSG_SLIST_MED(...) __MSG_MED(LVL_SLIST_ITEM, SLIST_ITEM_SZ, ##__VA_ARGS__) #define MSG_SLIST_LOW(...) __MSG_LOW(LVL_SLIST_ITEM, SLIST_ITEM_SZ, ##__VA_ARGS__) @@ -235,11 +256,13 @@ enum { #define MSG_FATAL(...) __MSG_FATAL(LOG_LVL, LOG_CAT, ##__VA_ARGS__) #define MSG_ERROR(...) __MSG_ERROR(LOG_LVL, LOG_CAT, ##__VA_ARGS__) #define MSG_WARN(...) __MSG_WARN(LOG_LVL, LOG_CAT, ##__VA_ARGS__) +#define MSG_SEC(...) __MSG_SEC(LOG_LVL, LOG_CAT, ##__VA_ARGS__) #define MSG_HIGH(...) __MSG_HIGH(LOG_LVL, LOG_CAT, ##__VA_ARGS__) #define MSG_MED(...) __MSG_MED(LOG_LVL, LOG_CAT, ##__VA_ARGS__) #define MSG_LOW(...) __MSG_LOW(LOG_LVL, LOG_CAT, ##__VA_ARGS__) #define MSG_DEBUG(...) __MSG_DBG(LOG_LVL, LOG_CAT, ##__VA_ARGS__) + //expr check statements. // Will deprecated diff --git a/common/include/ivug-dir.h b/common/include/ivug-dir.h index d35be7e..5649395 100755 --- a/common/include/ivug-dir.h +++ b/common/include/ivug-dir.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_DIR_H__ #define __IVUG_DIR_H__ diff --git a/common/include/ivug-drm-common.h b/common/include/ivug-drm-common.h deleted file mode 100755 index 1c99b8c..0000000 --- a/common/include/ivug-drm-common.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 __IVUG_DRM_H__ -#define __IVUG_DRM_H__ - -#include - -typedef enum IVUG_DRM_SETAS_TYPE -{ - IVUG_DRM_SETAS_NONE = -1, - IVUG_DRM_SETAS_WALLPAPER, - IVUG_DRM_SETAS_CALLERID, -}_ivug_drm_setas_type; - -typedef enum -{ - IVUG_DRM_RESULT_LIMITED = -1, - IVUG_DRM_RESULT_UNLIMITED, - IVUG_DRM_RESULT_COUNT, - IVUG_DRM_RESULT_DATETIME, - IVUG_DRM_RESULT_INTERVAL_DAYS, - IVUG_DRM_RESULT_TIMED_COUNT, - IVUG_DRM_RESULT_ACCUMULATED, - IVUG_DRM_RESULT_INDIVIDUAL, - IVUG_DRM_RESULT_SYSTEM, -}drm_constraints; - -typedef struct -{ - drm_constraints constraints; - int data; -}drm_data_t; - -typedef void *drm_handle_t; - -#ifdef __cplusplus -extern "C" { -#endif - -/* - Check whether @param file_path is DRM or not. -*/ -bool ivug_drm_is_drm_file(const char* file_path); - -/* - Check RO is valid. - FL case : Always return true(valid RO). -*/ -bool ivug_drm_has_valid_ro(const char *path); - -/* - Retrieving infomation from file -*/ -char* ivug_drm_get_drm_vendor_info(const char *path); -bool ivug_drm_get_forwarding_info(const char *path); - -bool ivug_drm_is_possible_to_setas(const char* path, _ivug_drm_setas_type type); - -/* - Decrypt DRM file and allocated in memory. - - CAUTION : this functionn read entire file and allocate memory with size of entire file. -*/ -drm_data_t * ivug_drm_check_constraint(const char* path); - -/* return value must be freed */ -char * ivug_drm_get_right_url(const char *path); -char * ivug_drm_get_mime(const char *path); - - - -#ifdef __cplusplus -} -#endif - - -#endif // __IVUG_DRM_H__ - diff --git a/common/include/ivug-exif.h b/common/include/ivug-exif.h index d442965..ba47356 100755 --- a/common/include/ivug-exif.h +++ b/common/include/ivug-exif.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_EXIF_H__ #define __IVUG_EXIF_H__ diff --git a/common/include/ivug-file-info.h b/common/include/ivug-file-info.h index 9846df8..65a5bd1 100755 --- a/common/include/ivug-file-info.h +++ b/common/include/ivug-file-info.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_FILE_INFO_H__ #define __IVUG_FILE_INFO_H__ @@ -23,6 +24,14 @@ extern "C" { #endif +typedef enum +{ + IVUG_FILE_INFO_ERR_NONE, + IVUG_FILE_INFO_ERR_PATH_IS_NULL = -1, + IVUG_FILE_INFO_ERR_INTERNAL = -2, + IVUG_FILE_INFO_ERR_MAX = 4 +}file_info_err_e; + /* ivug_fileinfo_*() returns false when error. otherwise return true and fill proper value in [out] param */ @@ -34,7 +43,7 @@ bool ivug_fileinfo_get_image_resolution(const char *filepath, int * /* OUT */ pW /* - return file extension string. if file is DRM file, decrypted file extension is returned. + return file extension string. CAUTION : user should free returned string. */ @@ -42,7 +51,7 @@ char *ivug_fileinfo_get_file_extension(const char *filepath); /* - return mine type from drm or non-drm file. + return mime type. CAUTION : user should free returned string. */ @@ -55,7 +64,20 @@ char *ivug_fileinfo_get_exposure_time(const char *path); char *ivug_fileinfo_get_iso(const char *path); int ivug_fileinfo_get_flash_status(const char *path); + +/* + 1 : top left + 2 : top right + 3 : bottom right + 4 : bottom left + 5 : left top + 6 : right top + 7 : right bottom + 8 : left bottom +*/ int ivug_fileinfo_get_orientation(const char *path); + + int ivug_fileinfo_get_white_balance(const char *path); #ifdef __cplusplus diff --git a/common/include/ivug-file-util.h b/common/include/ivug-file-util.h new file mode 100644 index 0000000..1cabc63 --- /dev/null +++ b/common/include/ivug-file-util.h @@ -0,0 +1,54 @@ +/* +* Copyright 2000-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 __IVUG_FILE_UTIL_H__ +#define __IVUG_FILE_UTIL_H__ + +#include +#include +#include +#include +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + +const char* ivug_file_get(const char path[]); +char* ivug_dir_get(const char path[]); +int ivug_file_exists(const char *path); +Eina_Bool ivug_is_dir(const char *path); +int ivug_is_dir_empty(const char *path); +int ivug_mkdir(const char *dir); +int ivug_mkpath(const char *path); +char *ivug_strip_ext(const char *path); +int ivug_file_unlink (const char *filename); +int ivug_file_size(const char *filename); +int ivug_file_rmdir(const char *filename); +Eina_List *ivug_file_ls(const char *dir); +int ivug_file_recursive_rm(const char *dir); +int ivug_file_cp(const char *src,const char *dst); +int ivug_file_mv(const char *src, const char *dst); +int ivug_remove(const char *filename); + +#ifdef __cplusplus +} +#endif + +#endif //__IVUG_FILE_UTIL_H__ diff --git a/common/include/ivug-language-mgr.h b/common/include/ivug-language-mgr.h new file mode 100755 index 0000000..ff34810 --- /dev/null +++ b/common/include/ivug-language-mgr.h @@ -0,0 +1,67 @@ +/* +* Copyright (c) 2000-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 __IVUG_LANGUAGE_MGR_H +#define __IVUG_LANGUAGE_MGR_H + +#include + +typedef enum +{ + OBJ_TYPE_ELM_OBJECT, //elm_object_text_set(obj, text) + OBJ_TYPE_EDJE_OBJECT, //edje_object_part_text_set(obj, part, text) + OBJ_TYPE_MAX, +}obj_type; + +typedef void *language_handle_t; + +#ifdef __cplusplus +extern "C" { +#endif + +int ivug_language_mgr_create(language_handle_t *handle); +int ivug_language_mgr_destroy(language_handle_t handle); + +/*part and string_id must be static*/ +void ivug_language_mgr_register_object(language_handle_t handle, Evas_Object *obj, obj_type type, const char *part, const char *string_id); +void ivug_language_mgr_register_object_item(language_handle_t handle, Elm_Object_Item *object_item, const char *text_ID); +void ivug_language_mgr_unregister_object_item(language_handle_t handle, Elm_Object_Item *object_item); +void ivug_language_mgr_object_item_text_ID_set(language_handle_t handle, Elm_Object_Item *object_item, const char *text_ID); + + +void ivug_language_mgr_register_genlist_item(language_handle_t handle, Elm_Object_Item *item); +void ivug_language_mgr_unregister_genlist_item(language_handle_t handle, Elm_Object_Item *item); + +void ivug_language_mgr_register_gengrid_item(language_handle_t handle, Elm_Object_Item *item); +void ivug_language_mgr_unregister_gengrid_item(language_handle_t handle, Elm_Object_Item *item); + +void ivug_language_mgr_update(language_handle_t handle); + +void ivug_elm_object_text_set(language_handle_t handle, Evas_Object *obj, const char *text_id); +void ivug_elm_object_item_text_set(language_handle_t handle, Elm_Object_Item *item, const char *text_id); +void ivug_elm_object_part_text_set(language_handle_t handle, Evas_Object *obj, const char *part, const char *text_id); +void ivug_edje_object_part_text_set(language_handle_t handle, Evas_Object *obj, const char *part, const char *text_id); +char * ivug_language_mgr_get_text_domain(const char *ID); + +char * GET_STR(const char *ID); + +#ifdef __cplusplus +} +#endif + +#endif //__IVUG_LANGUAGE_MGR_H + diff --git a/common/include/ivug-message.h b/common/include/ivug-message.h index f470963..6457cbc 100755 --- a/common/include/ivug-message.h +++ b/common/include/ivug-message.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __MESSAGE_H__ #define __ MESSAGE_H__ diff --git a/common/include/ivug-mouse-event.h b/common/include/ivug-mouse-event.h deleted file mode 100755 index a8a6158..0000000 --- a/common/include/ivug-mouse-event.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ - -#pragma once - -typedef struct { - int x, y; - - unsigned int timestamp; - - int button_flags; - - int event_flags; - int device; -} MouseEvent; - - -typedef struct { - void (*onMouseDown)(Evas_Object *obj, MouseEvent *down, void *data); - void (*onMouseDlbClick)(Evas_Object *obj, MouseEvent *click, void *data); - void (*onMouseUp)(Evas_Object *obj, MouseEvent *up, void *data); - void (*onMouseMove)(Evas_Object *obj, MouseEvent *prev, MouseEvent *cur, void *data); - - void (*onPinchStart)(Evas_Object *obj, MouseEvent *center, int dist, void *data); - void (*onPinchMove)(Evas_Object *obj, MouseEvent *center, int dist, void *data); - void (*onPinchEnd)(Evas_Object *obj, MouseEvent *end, void *data); // Is it really needed???? - -} mouse_callback_t; - -typedef void *Ivug_Event_Handle; - -#ifdef __cplusplus -extern "C" { -#endif - -Ivug_Event_Handle -ivug_mouse_event_add(Evas_Object *obj, mouse_callback_t *pCallback, void *client_data, const char *alias /* for debugging*/); - -void ivug_mouse_event_del(Ivug_Event_Handle handle); - -#ifdef __cplusplus -} -#endif - - diff --git a/common/include/ivug-util.h b/common/include/ivug-util.h index 5cfe62b..5ab0844 100755 --- a/common/include/ivug-util.h +++ b/common/include/ivug-util.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_UTIL_H__ #define __IVUG_UTIL_H__ @@ -30,6 +31,8 @@ extern "C" { */ bool ivug_is_web_uri(const char* uri); +bool ivug_is_tel_uri(const char* uri); + bool ivug_remove_file(const char *filepath); bool ivug_is_file_exist(const char* filepath); @@ -38,7 +41,7 @@ bool ivug_rename_file(const char *src, const char *dst); bool ivug_copy_file(const char *filename, const char *dest); -char *ivug_get_filename(const char *filepath); +const char *ivug_get_filename(const char *filepath); char *ivug_get_directory(const char *filepath); @@ -59,7 +62,7 @@ bool ivug_allow_lcd_off(void); /* - Get mime type from file path. Can be used either DRM and non DRM. + Get mime type from file path. should free returned after use. */ @@ -75,7 +78,7 @@ double ivug_atod(const char *number); long int ivug_atox(const char *number); -char * ivug_generate_file_name(const char *filepath, const char *extension, const char *dest_dir); +char * ivug_generate_file_name(const char *filepath, const char *extension, const char *dest_dir, bool hide); /* Removes leading and trailing whitespace from string @@ -83,15 +86,21 @@ char * ivug_generate_file_name(const char *filepath, const char *extension, cons */ char * ivug_strip_string(char* name); -bool ivug_is_bestpic(const char *file); + +bool ivug_is_facebook_image(const char *file); /* returned values should be freed by user */ char * ivug_get_icu_date(time_t mtime); +char * ivug_get_duration_string(int millisecond); + + bool ivug_validate_file_name(const char *fname); +bool ivug_is_supported_file_type(const char *fname); + #ifdef __cplusplus } #endif diff --git a/common/include/ivug-uuid.h b/common/include/ivug-uuid.h index 012c852..9ea59b4 100755 --- a/common/include/ivug-uuid.h +++ b/common/include/ivug-uuid.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_UUID_H__ #define __IVUG_UUID_H__ @@ -26,10 +27,14 @@ extern "C" { #endif + UUID uuid_assign(UUID id); void uuid_free(UUID id); +/* + return 0 if identical +*/ int uuid_compare(UUID id1, UUID id2); const char *uuid_getchar(UUID id); diff --git a/common/include/statistics.h b/common/include/statistics.h index 03950f0..b10c9d3 100755 --- a/common/include/statistics.h +++ b/common/include/statistics.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __STATISTICS_H__ #define __STATISTICS_H__ diff --git a/common/src/debug.c b/common/src/debug.c index 3d032da..b51df62 100755 --- a/common/src/debug.c +++ b/common/src/debug.c @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 @@ -24,6 +25,12 @@ #include #include // strrchr +#undef ECORE_TIMER + +#ifdef ECORE_TIMER +#include +#endif + #undef PRINT_TID #ifdef PRINT_TID @@ -34,6 +41,10 @@ #define G_UNLIKELY(x) x #endif +/* + Enable when Do file logging in case of FATAL +*/ +#undef IV_FATURE_LOGGING_FATAL #include "debug.h" @@ -63,6 +74,7 @@ enum { static bool bInit = false; +#ifndef ECORE_TIMER static char *get_time_string(unsigned long dwmSec) { static char buffer[30]; @@ -73,14 +85,14 @@ static char *get_time_string(unsigned long dwmSec) unsigned long hour=0; // Don't forget turn on compiler optimization options. - sec = ( dwmSec / 1000 ); - msec = ( dwmSec % 1000 ); + sec = (dwmSec / 1000); + msec = (dwmSec % 1000); - min = (sec / 60 ); - sec = (sec % 60 ); + min = (sec / 60); + sec = (sec % 60); - hour = (min / 60 ); - min = (min % 60 ); + hour = (min / 60); + min = (min % 60); snprintf(buffer, (size_t)sizeof(buffer), "%1d:%02d:%02d.%03d", (int)hour,(int)min,(int)sec,(int)msec); @@ -89,13 +101,13 @@ static char *get_time_string(unsigned long dwmSec) /*Retrieves the number of milliseconds that have elapsed since the system was started*/ -static unsigned long get_sys_elapsed_time(void) +unsigned long get_sys_elapsed_time(void) { static struct timeval init_time = { 0 , 0 }; static bool bFirst = false; struct timeval current_time; - if ( bFirst == false ) + if (bFirst == false) { bFirst = true; gettimeofday(&init_time, NULL); @@ -106,10 +118,15 @@ static unsigned long get_sys_elapsed_time(void) // return (current_time.tv_sec - init_time.tv_sec) * 1000UL + (UINT32)((current_time.tv_usec - init_time.tv_usec) / 1000.0) ; return ((current_time.tv_sec * 1E3 + current_time.tv_usec / 1E3) - (init_time.tv_sec * 1E3 + init_time.tv_usec / 1E3)); } +#endif void _custom_debug_init() { +#ifdef ECORE_TIMER + ecore_get_sys_elapsed_time(); +#else get_sys_elapsed_time(); +#endif } void _custom_debug_deinit() @@ -118,7 +135,7 @@ void _custom_debug_deinit() } void -_custom_err_trace_write( const char *func_name, int line_num, const char *fmt, ... ) +_custom_err_trace_write(const char *func_name, int line_num, const char *fmt, ...) { FILE *f = NULL; va_list ap = {0}; @@ -127,29 +144,29 @@ _custom_err_trace_write( const char *func_name, int line_num, const char *fmt, . time_t current_time; struct tm new_time; - current_time = time( NULL ); - localtime_r( ¤t_time, &new_time ); + current_time = time(NULL); + localtime_r(¤t_time, &new_time); - f = fopen( _DEBUG_ERR_TRACE_FILE_NAME, "a" ); - if( f == NULL ) + f = fopen(_DEBUG_ERR_TRACE_FILE_NAME, "a"); + if (f == NULL) { - printf( "Failed to open file.[%s]\n", _DEBUG_ERR_TRACE_FILE_NAME ); +// MyPrintF("Failed to open file.[%s]\n", _DEBUG_ERR_TRACE_FILE_NAME); return; } - fprintf( f, "[%.19s][%05d][%s]", asctime_r( &new_time, buf ), line_num, func_name ); + fprintf(f, "[%.19s][%05d][%s]", asctime_r(&new_time, buf), line_num, func_name); - va_start( ap, fmt ); - vfprintf( f, fmt, ap ); - va_end( ap ); + va_start(ap, fmt); + vfprintf(f, fmt, ap); + va_end(ap); - fprintf( f, "\n" ); + fprintf(f, "\n"); - fclose( f ); + fclose(f); } void -_custom_err_trace_fvprintf( const char *func_name, int line_num, const char *fmt, va_list ap ) +_custom_err_trace_fvprintf(const char *func_name, int line_num, const char *fmt, va_list ap) { FILE *f = NULL; @@ -157,21 +174,21 @@ _custom_err_trace_fvprintf( const char *func_name, int line_num, const char *fmt struct tm new_time; char buf[128]; - current_time = time( NULL ); - localtime_r( ¤t_time, &new_time ); + current_time = time(NULL); + localtime_r(¤t_time, &new_time); - f = fopen( _DEBUG_ERR_TRACE_FILE_NAME, "a" ); - if( f == NULL ) + f = fopen(_DEBUG_ERR_TRACE_FILE_NAME, "a"); + if (f == NULL) { - printf( "Failed to open file.[%s]\n", _DEBUG_ERR_TRACE_FILE_NAME ); +// MyPrintF("Failed to open file.[%s]\n", _DEBUG_ERR_TRACE_FILE_NAME); return; } - fprintf( f, "[%.19s][[F:%-16.16s L:%5d] ", asctime_r( &new_time, buf ), func_name, line_num ); - vfprintf( f, fmt, ap ); - fprintf( f, "\n" ); + fprintf(f, "[%.19s][[F:%-16.16s L:%5d] ", asctime_r(&new_time, buf), func_name, line_num); + vfprintf(f, fmt, ap); + fprintf(f, "\n"); - fclose( f ); + fclose(f); } /* @@ -214,17 +231,20 @@ DBG_MSG_CUST13 = 14, */ static log_priority priority[] = { - DLOG_VERBOSE, - DLOG_VERBOSE, + DLOG_WARN, + DLOG_WARN, DLOG_WARN, // MSG HIGH DLOG_WARN, DLOG_ERROR, DLOG_FATAL, // 5 }; - if ( msg_level <= DBG_MSG_FATAL) + if (msg_level <= DBG_MSG_FATAL) return priority[msg_level]; + if (msg_level == DBG_MSG_CUST12) + return DLOG_WARN; + return DLOG_DEBUG; } @@ -237,7 +257,7 @@ void __custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...) static const char *level ; - if ( G_UNLIKELY(bInit == false) ) + if (G_UNLIKELY(bInit == false)) { _custom_debug_init(); bInit = true; @@ -246,7 +266,11 @@ void __custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...) #define DIRECORY_SPLITTER '/' const char*pFileName = NULL; +#ifdef ECORE_TIMER + debug_msg->time = ecore_get_sys_elapsed_time(); +#else debug_msg->time = get_sys_elapsed_time(); +#endif pFileName = strrchr(debug_msg->fname, DIRECORY_SPLITTER); pFileName = (NULL == pFileName)?debug_msg->fname:(pFileName+1); @@ -254,21 +278,16 @@ void __custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...) level = debug_msg->szlevel; // File +#ifdef ECORE_TIMER + char *time_string = ecore_get_time_string(debug_msg->time); +#else char *time_string = get_time_string(debug_msg->time); - +#endif va_start(va, msg); - if ( _DEBUG_OUTPUT_DIRECTION & _DEBUG_OUTPUT_DIRECTION_CONSOLE ) - { - - printf(_DEBUG_PREFIX"%s[F:%-16.16s L:%5d][%s:%s] ", time_string , pFileName, debug_msg->nline , debug_msg->szcategory, level ); - vprintf(msg, va); - printf("\n"); - } - - if ( _DEBUG_OUTPUT_DIRECTION & _DEBUG_OUTPUT_DIRECTION_DLOG ) + if (_DEBUG_OUTPUT_DIRECTION & _DEBUG_OUTPUT_DIRECTION_DLOG) { - static char buf[2048]; + char buf[2048]; int i ; #ifdef PRINT_TID @@ -276,25 +295,85 @@ void __custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...) #else i = snprintf(buf, 2048, "%s[F:%-16.16s L:%5d][%s] ",time_string , pFileName, debug_msg->nline , level); #endif - vsnprintf( buf + i, 2048 - i, msg, va); + vsnprintf(buf + i, 2048 - i, msg, va); // Prevent Format string attack print_log(convert_to_dlog_priority(debug_msg->msg_level), debug_msg->szcategory, "%s", buf); -// print_log(prio, _DEBUG_MODULE, "%s[F:%-16.16s L:%5d][%s:%s] ",time_string , pFileName, debug_msg->nline , szCategory[debug_msg->category], level ); +// print_log(prio, _DEBUG_MODULE, "%s[F:%-16.16s L:%5d][%s:%s] ",time_string , pFileName, debug_msg->nline , szCategory[debug_msg->category], level); // vprint_log(prio,_DEBUG_MODULE, msg, va); } -#if 0 - if ( _DEBUG_OUTPUT_DIRECTION & _DEBUG_OUTPUT_DIRECTION_FILE ) + va_end(va); + + if (G_UNLIKELY(debug_msg->msg_level == DBG_MSG_FATAL)) { - fprintf(_DEBUG_PREFIX"%s[F:%-16.16s L:%5d][%s:%s] ",time_string , pFileName, debug_msg->nline , szCategory[debug_msg->category], level ); - vprintf(msg, va); - fprintf("\n"); + fflush (stdout); +#ifdef IV_FATURE_LOGGING_FATAL + va_start(va, msg); + _custom_err_trace_fvprintf(pFileName, debug_msg->nline, msg, va); // Save to file. + va_end(va); +#endif + assert(0); } +} + +void __custom_sec_debug_msg(debug_msg_type *debug_msg, const char *msg, ...) +{ + va_list va; + + static const char *level ; + + if (G_UNLIKELY(bInit == false)) + { + _custom_debug_init(); + bInit = true; + } + +#define DIRECORY_SPLITTER '/' + const char*pFileName = NULL; + +#ifdef ECORE_TIMER + debug_msg->time = ecore_get_sys_elapsed_time(); +#else + debug_msg->time = get_sys_elapsed_time(); #endif + + pFileName = strrchr(debug_msg->fname, DIRECORY_SPLITTER); + pFileName = (NULL == pFileName)?debug_msg->fname:(pFileName+1); + + level = debug_msg->szlevel; + + // File + +#ifdef ECORE_TIMER + char *time_string = ecore_get_time_string(debug_msg->time); +#else + char *time_string = get_time_string(debug_msg->time); +#endif + + va_start(va, msg); + + if (_DEBUG_OUTPUT_DIRECTION & _DEBUG_OUTPUT_DIRECTION_DLOG) + { + char buf[2048]; + + int i ; +#ifdef PRINT_TID + i = snprintf(buf, 2048, "%s[F:%-16.16s L:%5d][%08x][%s] ",time_string , pFileName, debug_msg->nline , pthread_self(), level); +#else + i = snprintf(buf, 2048, "%s[F:%-16.16s L:%5d][%s] ",time_string , pFileName, debug_msg->nline , level); +#endif + vsnprintf(buf + i, 2048 - i, msg, va); + +// Prevent Format string attack + SECURE_LOG_(LOG_ID_APPS, convert_to_dlog_priority(debug_msg->msg_level), debug_msg->szcategory, "%s", buf); +// print_log(prio, _DEBUG_MODULE, "%s[F:%-16.16s L:%5d][%s:%s] ",time_string , pFileName, debug_msg->nline , szCategory[debug_msg->category], level); +// vprint_log(prio,_DEBUG_MODULE, msg, va); + } + va_end(va); - if ( G_UNLIKELY(debug_msg->msg_level == DBG_MSG_FATAL) ) + if (G_UNLIKELY(debug_msg->msg_level == DBG_MSG_FATAL)) { fflush (stdout); va_start(va, msg); @@ -306,6 +385,7 @@ void __custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...) } + #ifdef FMRADIO_FEATURE_ENABLE_GSTREAMER_LOGGING enum { @@ -339,7 +419,7 @@ static gchar *custom_print_object(GObject *object) */ if (GST_IS_PAD(object)) { - return g_strdup_printf("%s:%s", GST_STR_NULL( GST_OBJECT_NAME( GST_PAD_PARENT(object))) , GST_STR_NULL( GST_PAD_NAME(object) )); + return g_strdup_printf("%s:%s", GST_STR_NULL(GST_OBJECT_NAME(GST_PAD_PARENT(object))) , GST_STR_NULL(GST_PAD_NAME(object))); } if (GST_IS_ELEMENT(object)) @@ -383,8 +463,11 @@ void custom_log_func(GstDebugCategory *category, GstDebugLevel level, pFileName = (NULL == pFileName) ? file:(pFileName+1); // File +#ifdef ECORE_TIMER + char *time_string = ecore_get_time_string(ecore_get_sys_elapsed_time()); +#else char *time_string = get_time_string(get_sys_elapsed_time()); - +#endif log_print_rel(LOG_CAMCORDER,LOG_CLASS_ERR, _DEBUG_PREFIX "%s[F:%-16.16s L:%5d][%s][%s][%s] %s\n", time_string, pFileName, line, gst_debug_category_get_name(category), gst_debug_level_get_name(level),obj, diff --git a/common/src/ivug-callback.c b/common/src/ivug-callback.c index 4df3abd..7ce7807 100755 --- a/common/src/ivug-callback.c +++ b/common/src/ivug-callback.c @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 "ivug-debug.h" #include "ivug-callback.h" @@ -36,7 +37,7 @@ void ivug_callback_set_callback(callback_handle_t *handle, callback_func_t callb void ivug_callback_call(callback_handle_t *handle, void *data1, void *data2, void *data3) { IV_ASSERT(handle != NULL); - if(handle->CBFunc) + if (handle->CBFunc) { (handle->CBFunc)(data1, data2, data3, handle->data); } diff --git a/common/src/ivug-config.c b/common/src/ivug-config.c old mode 100755 new mode 100644 index 845c9e0..929f562 --- a/common/src/ivug-config.c +++ b/common/src/ivug-config.c @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 "ivug-common.h" #include "ivug-define.h" @@ -22,19 +23,16 @@ #include #include #include +#include #include "statistics.h" #include "ivug-debug.h" - #include "ivug-config.h" -#include -#include - -#define VCONFKEY_GALLERY_INTERVAL_TIME "db/gallery/setting/interval_time" //double -#define VCONFKEY_GALLERY_REPEAT_STATE "db/gallery/setting/repeat_state" //boolean -#define VCONFKEY_GALLERY_SHUFFLE_STATE "db/gallery/setting/shuffle_state" //boolean -#define VCONFKEY_GALLERY_TRANSITION_EFFECT "db/gallery/setting/ss_effect" //char +#define PREFERENCE_SLIDESHOW_INTERVAL_TIME "interval_time" +#define PREFERENCE_SLIDESHOW_SHUFFLE_STATE "shuffle_state" +#define PREFERENCE_SLIDESHOW_REPEAT_STATE "repeat_state" +#define PREFERENCE_SLIDESHOW_TRANSITION_EFFECT "effect" enum { STATE_FALSE = 0, STATE_TRUE = 1, }; @@ -45,24 +43,18 @@ enum { STATE_FALSE = 0, STATE_TRUE = 1, }; */ bool ivug_config_set_lockscreen_image(const char* filepath) { - if(filepath == NULL) + if (filepath == NULL) { MSG_IMAGEVIEW_ERROR("Lock screen path is NULL"); return FALSE; } - if(system_settings_set_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN, filepath) != SYSTEM_SETTINGS_ERROR_NONE) + if (system_settings_set_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN, filepath) != SYSTEM_SETTINGS_ERROR_NONE) { MSG_IMAGEVIEW_ERROR("Lockscreen set Error : %s", filepath); return FALSE; } - /*if(vconf_set_str( VCONFKEY_IDLE_LOCK_BGSET, filepath ) < 0) - { - MSG_IMAGEVIEW_ERROR("Lockscreen set Error : %s", filepath); - return FALSE; - }*/ - MSG_IMAGEVIEW_HIGH("Set Lockscreen filepath = %s", filepath); return TRUE; @@ -73,126 +65,204 @@ bool ivug_config_set_lockscreen_image(const char* filepath) CAUTION : does not check filepath integrity */ -bool ivug_config_set_homescreen_image( const char* filepath ) +bool ivug_config_set_homescreen_image(const char* filepath) { - if(filepath == NULL) + if (filepath == NULL) { MSG_IMAGEVIEW_ERROR("Home screen path is NULL"); return FALSE; } - if(system_settings_set_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, filepath) != SYSTEM_SETTINGS_ERROR_NONE) + if (system_settings_set_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, filepath) != SYSTEM_SETTINGS_ERROR_NONE) { MSG_IMAGEVIEW_ERROR("Homescreen set Error : %s", filepath); return FALSE; } - /*if(vconf_set_str(VCONFKEY_BGSET, filepath) < 0) - { - MSG_IMAGEVIEW_ERROR("Homescreen set Error"); - return FALSE; - }*/ + TODO("Need to check file existence?????") MSG_IMAGEVIEW_HIGH("Set Homescreen filepath = %s", filepath); return TRUE; } - static bool _ivug_config_get_slideshow_repeat_state(void) { - int repeat_state = STATE_FALSE; + bool repeat_state = true; + bool existing = false; - if(vconf_get_bool(VCONFKEY_GALLERY_REPEAT_STATE, &repeat_state) < 0) - { - MSG_IMAGEVIEW_ERROR("vconf_get_bool failed, set as repeat state as default: false"); - return false; + int ret = preference_is_existing(PREFERENCE_SLIDESHOW_REPEAT_STATE, &existing); + if (ret != PREFERENCE_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("Preference Fails for Repeat State"); + repeat_state = true; } - MSG_IMAGEVIEW_HIGH("repeat state is: %d", repeat_state); + MSG_IMAGEVIEW_ERROR("Preference for Repeat State %s", (existing == false) ? "doesn't exist !!!!" : "exists"); + + if (existing == false) { + ret = preference_set_boolean(PREFERENCE_SLIDESHOW_REPEAT_STATE, true); + if (ret != PREFERENCE_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("Unable to set preference for Repeat State ERROR(%d)", ret); + } + } + + ret = preference_get_boolean(PREFERENCE_SLIDESHOW_REPEAT_STATE, &repeat_state); + if (ret != PREFERENCE_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("Unable to get preference for Repeat State ERROR(%d)",ret); + } - return (repeat_state == STATE_TRUE ? true : false); + MSG_IMAGEVIEW_HIGH("Repeat State is: %s", (repeat_state == true) ? "true" : "false"); + return repeat_state; } static bool _ivug_config_get_slideshow_shuffle_state(void) { - int shuffle_state = STATE_FALSE; + bool shuffle_state = false; + bool existing = false; - if(vconf_get_bool(VCONFKEY_GALLERY_SHUFFLE_STATE, &shuffle_state) < 0) - { - MSG_IMAGEVIEW_ERROR("vconf_get_bool failed, set as shuffle state as default: false"); - return false; + int ret = preference_is_existing(PREFERENCE_SLIDESHOW_SHUFFLE_STATE, &existing); + if (ret != PREFERENCE_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("Preference Fails for Shuffle State"); + shuffle_state = false; + } + + MSG_IMAGEVIEW_ERROR("Preference for Shuffle State %s", (existing == false) ? "doesn't exist !!!!" : "exists"); + + if (existing == false) { + ret = preference_set_boolean(PREFERENCE_SLIDESHOW_SHUFFLE_STATE, false); + if (ret != PREFERENCE_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("Unable to set preference for Shuffle State ERROR(%d)", ret); + } + } + + ret = preference_get_boolean(PREFERENCE_SLIDESHOW_SHUFFLE_STATE, &shuffle_state); + if (ret != PREFERENCE_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("Unable to get preference for Shuffle State ERROR(%d)",ret); + } + + MSG_IMAGEVIEW_HIGH("Shuffle State is: %s", (shuffle_state == true) ? "true" : "false"); + return shuffle_state; +} + +void +ivug_config_set_interval_time(int index) +{ + int interval = 0; + + switch (index) { + case 1: + interval = 1; + break; + case 2: + interval = 3; + break; + case 3: + interval = 5; + break; } - MSG_IMAGEVIEW_HIGH("shuffle state is: %d", shuffle_state); + int ret = preference_set_int(PREFERENCE_SLIDESHOW_INTERVAL_TIME, interval); + if (ret != PREFERENCE_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("Unable to set preference for Interval Time ERROR(%d)", ret); + } - return (shuffle_state == STATE_TRUE ? true : false); + return; } -static double -_ivug_config_get_slideshow_interval_time(void) +int +ivug_config_get_slideshow_interval_time(void) { - double interval_time = 0.0; + int interval_time = 1; + bool existing = false; - if(vconf_get_dbl(VCONFKEY_GALLERY_INTERVAL_TIME, &interval_time) < 0) - { - MSG_IMAGEVIEW_ERROR("vconf_get_dbl failed, set as interval time as -1"); + int ret = preference_is_existing(PREFERENCE_SLIDESHOW_INTERVAL_TIME, &existing); + if (ret != PREFERENCE_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("Preference Fails for Interval Time"); + interval_time = -1; + } - interval_time = -1.0; + MSG_IMAGEVIEW_ERROR("Preference for Interval Time %s", (existing == false) ? "doesn't exist !!!!" : "exists"); + + if (existing == false) { + ret = preference_set_int(PREFERENCE_SLIDESHOW_INTERVAL_TIME, 1); + if (ret != PREFERENCE_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("Unable to set preference for Interval Time ERROR(%d)", ret); + } + } + + ret = preference_get_int(PREFERENCE_SLIDESHOW_INTERVAL_TIME, &interval_time); + if (ret != PREFERENCE_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("Unable to get preference for Interval Time ERROR(%d)",ret); } - MSG_IMAGEVIEW_HIGH("interval time is: %f", interval_time); + MSG_IMAGEVIEW_HIGH("interval time is: %d", interval_time); return interval_time; } -static char * -_ivug_config_get_slideshow_effect_type(void) +void +ivug_config_set_transition_effect(int index) { - char *effect_str = NULL; - effect_str = vconf_get_str(VCONFKEY_GALLERY_TRANSITION_EFFECT); + char *effect = NULL; - if(!effect_str) - { - MSG_IMAGEVIEW_ERROR("vconf_get_str failed, set as effect type as default"); + if (index == 1) { + effect = "Slide"; + } else { + effect = "DissolveFade"; + } + + int ret = preference_set_string(PREFERENCE_SLIDESHOW_TRANSITION_EFFECT, effect); + if (ret != PREFERENCE_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("Unable to set preference for Transition Effect ERROR(%d)", ret); + } + + return; +} + +char * +ivug_config_get_slideshow_effect_type(void) +{ + TODO("Free returned string??") + + char *effect_str = "DissolveFade"; + bool existing = false; + + int ret = preference_is_existing(PREFERENCE_SLIDESHOW_TRANSITION_EFFECT, &existing); + if (ret != PREFERENCE_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("Preference Fails for Transition Effect"); + effect_str = "DissolveFade"; + } + + MSG_IMAGEVIEW_ERROR("Preference for Transition Effect %s", (existing == false) ? "doesn't exist !!!!" : "exists"); - effect_str = NULL; + if (existing == false) { + ret = preference_set_string(PREFERENCE_SLIDESHOW_TRANSITION_EFFECT, "DissolveFade"); + if (ret != PREFERENCE_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("Unable to set preference for Transition Effect ERROR(%d)", ret); + } } - MSG_IMAGEVIEW_HIGH("effect is: %s", effect_str); + ret = preference_get_string(PREFERENCE_SLIDESHOW_TRANSITION_EFFECT, &effect_str); + if (ret != PREFERENCE_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("Unable to get preference for Transition Effect ERROR(%d)",ret); + } + MSG_IMAGEVIEW_HIGH("Transition Effect is: %s", effect_str); return effect_str; } -static ivug_effect_type -_ivug_config_get_effect_type_by_string(char *effect_str) +ivug_effect_type +ivug_config_get_effect_type_by_string(char *effect_str) { IV_ASSERT(effect_str != NULL); ivug_effect_type type = IVUG_EFFECT_TYPE_SLIDE; - if(!strncmp(effect_str, "Slide", strlen(effect_str))) - { + if (!strncmp(effect_str, "Slide", strlen(effect_str))) { type = IVUG_EFFECT_TYPE_SLIDE; - } - else if(!strncmp(effect_str, "Iris", strlen(effect_str))) - { - type = IVUG_EFFECT_TYPE_IRIS; - } - else if(!strncmp(effect_str, "Dissolve", strlen(effect_str))) - { - type = IVUG_EFFECT_TYPE_DISSOLVE; - } - else if(!strncmp(effect_str, "DissolveFade", strlen(effect_str))) - { + } else if (!strncmp(effect_str, "DissolveFade", strlen(effect_str))) { type = IVUG_EFFECT_TYPE_DISSOLVE_FADE; - } - else if(!strncmp(effect_str, "Split", strlen(effect_str))) - { - type = IVUG_EFFECT_TYPE_SPLIT; - } - else //Set all other cases as default NONE - { + } else { //Set all other cases as default NONE MSG_SLIDER_WARN("Invalid type : %s", effect_str); type = IVUG_EFFECT_TYPE_UNKNOWN; } @@ -212,22 +282,21 @@ ivug_config_get_slideshow_setting(slide_show_mode *mode, bool state; state = _ivug_config_get_slideshow_repeat_state(); - if(state == true) - { + if (state == true) { *mode |= SLIDE_SHOW_MODE_REPEAT; } state = _ivug_config_get_slideshow_shuffle_state(); - if(state == true) - { + if (state == true) { *mode |= SLIDE_SHOW_MODE_SHUFFLE; } - *interval_time = _ivug_config_get_slideshow_interval_time(); + *interval_time = (double) ivug_config_get_slideshow_interval_time(); + + /* EFFECT_NONE, EFFECT_SLIDE, EFFECT_DISSOLVE_FADE */ + char *effect = ivug_config_get_slideshow_effect_type(); + *effect_type = ivug_config_get_effect_type_by_string(effect); - /* EFFECT_NONE, EFFECT_DISSOLVE_FADE, EFFECT_DISSOLVE_FADE, EFFECT_IRIS */ - char *effect = _ivug_config_get_slideshow_effect_type(); - *effect_type = _ivug_config_get_effect_type_by_string(effect); if (effect) { free(effect); effect = NULL; @@ -236,10 +305,10 @@ ivug_config_get_slideshow_setting(slide_show_mode *mode, bool ivug_config_get_can_rotate(void) { - int state = STATE_FALSE; - if(vconf_get_bool(VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, &state) < 0) + bool state = false; + if (system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_DISPLAY_SCREEN_ROTATION_AUTO, &state) != SYSTEM_SETTINGS_ERROR_NONE) { - MSG_IMAGEVIEW_ERROR("vconf_get_bool failed, set as default: false"); + MSG_IMAGEVIEW_ERROR("system_settings_get_value_bool, set as default: false"); return false; } @@ -247,4 +316,3 @@ bool ivug_config_get_can_rotate(void) return (state == STATE_TRUE ? true : false); } - diff --git a/common/src/ivug-db.c b/common/src/ivug-db.c index 68b4ffe..d6c5ba2 100755 --- a/common/src/ivug-db.c +++ b/common/src/ivug-db.c @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 "ivug-define.h" #include "ivug-debug.h" @@ -21,7 +22,11 @@ #include #include +//#include +#include // localtime_r + +#define DB_QUERY_STORAGE_ALL "(MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121)" #define LOG_LVL DBG_MSG_LVL_HIGH #define LOG_CAT "IV-DB" @@ -37,7 +42,7 @@ typedef struct _Ivug_DB static char *_strerror_db(int error) { - switch(error) + switch (error) { case MEDIA_CONTENT_ERROR_INVALID_PARAMETER: return "Invalid parameter"; @@ -48,7 +53,7 @@ static char *_strerror_db(int error) default: { static char buf[40]; - sprintf(buf, "Error Code=%d", error); + snprintf(buf, 40, "Unknwon Error(%d)", error); return buf; } @@ -62,13 +67,13 @@ static void _ivug_thumb_cb(media_content_error_e error, MSG_HIGH("_ivug_thumb_cb, path =%s", path); - if(db_h->callback == NULL || db_h->key != DB_KEY) + if (db_h->callback == NULL || db_h->key != DB_KEY) { MSG_WARN("handle was freed"); return; } - if(path == NULL) + if (path == NULL) { MSG_ERROR("thumbnail path is NULL"); db_h->callback(db_h->m_handle, NULL, db_h->data); @@ -83,7 +88,7 @@ bool ivug_db_create(void) int ret = MEDIA_CONTENT_ERROR_NONE; ret = media_content_connect(); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_content_connect is failed, err:%s", _strerror_db(ret)); return false; @@ -98,7 +103,7 @@ bool ivug_db_destroy(void) int ret = MEDIA_CONTENT_ERROR_NONE; ret = media_content_disconnect(); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_content_disconnect is failed, err:%s", _strerror_db(ret)); return false; @@ -114,7 +119,7 @@ bool ivug_db_rename(media_handle m_handle, const char *dest) int ret = MEDIA_CONTENT_ERROR_NONE; ret = media_info_move_to_db(minfo, dest); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_info_move_to_db is failed, err = %s dest=%s", _strerror_db(ret), dest); return false; @@ -129,7 +134,7 @@ bool ivug_db_destroy_file_handle(media_handle m_handle) int ret = MEDIA_CONTENT_ERROR_NONE; ret = media_info_destroy(minfo); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_info_destroy is failed, err = %s", _strerror_db(ret)); return false; @@ -144,7 +149,7 @@ bool ivug_db_destroy_folder_handle(media_handle m_handle) int ret = MEDIA_CONTENT_ERROR_NONE; ret = media_folder_destroy(minfo); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_folder_destroy is failed, err = %s", _strerror_db(ret)); return false; @@ -159,7 +164,7 @@ bool ivug_db_create_filter(filter_handle *filter) int ret = MEDIA_CONTENT_ERROR_NONE; ret = media_filter_create(media_filter); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_filter_create is failed, err = %s", _strerror_db(ret)); return false; @@ -175,7 +180,7 @@ bool ivug_db_destroy_filter(filter_handle filter) int ret = MEDIA_CONTENT_ERROR_NONE; ret = media_filter_destroy(media_filter); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_filter_destroy is failed, err = %s", _strerror_db(ret)); return false; @@ -188,9 +193,9 @@ bool ivug_db_set_filter_condition(filter_handle media_filter, const char *condit { IV_ASSERT(condition != NULL); - MSG_HIGH("Set DB Filter : %s", condition); + MSG_SEC("Set DB Filter : %s", condition); int ret = media_filter_set_condition(media_filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_filter_set_condition is failed, err = %s", _strerror_db(ret)); return false; @@ -204,71 +209,112 @@ bool ivug_db_set_filter(filter_handle filter, ivug_view_by view_by, ivug_media_t int ret = MEDIA_CONTENT_ERROR_NONE; - if(condition == NULL) + if (condition == NULL) { condition = calloc(1, sizeof(char)*IVUG_MAX_CONDITION_LEN); } else { - strcat(condition," AND "); + strncat(condition, " AND ", sizeof(" AND ")); } - + + IV_ASSERT(condition != NULL); /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music*/ - switch(media_type) + switch (media_type) { case IVUG_MEDIA_TYPE_IMAGE: - strcat(condition, "(MEDIA_TYPE=0)"); + strncat(condition, "(MEDIA_TYPE=0)", sizeof("(MEDIA_TYPE=0)")); break; case IVUG_MEDIA_TYPE_VIDEO: - strcat(condition,"(MEDIA_TYPE=1)"); + strncat(condition,"(MEDIA_TYPE=1)", sizeof("(MEDIA_TYPE=1)")); break; case IVUG_MEDIA_TYPE_ALL: - strcat(condition, "(MEDIA_TYPE=0 OR MEDIA_TYPE=1)"); + strncat(condition, "(MEDIA_TYPE=0 OR MEDIA_TYPE=1)", sizeof("(MEDIA_TYPE=0 OR MEDIA_TYPE=1)")); break; default: MSG_FATAL("Invalid media type : %d", media_type); break; } - if(view_by == IVUG_VIEW_BY_FAVORITES) + if (view_by == IVUG_VIEW_BY_FAVORITES) { - strcat(condition, " AND MEDIA_FAVORITE=1"); + strncat(condition, " AND MEDIA_FAVOURITE>0", sizeof(" AND MEDIA_FAVOURITE>0")); } - if(condition) + if (condition) { - if(ivug_db_set_filter_condition(media_filter, condition) == false) + if (ivug_db_set_filter_condition(media_filter, condition) == false) { goto SET_FILTER_ERROR; } } - if(view_by == IVUG_VIEW_BY_TAG) + if (view_by == IVUG_VIEW_BY_TAG) { ret = media_filter_set_order(media_filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_DISPLAY_NAME, MEDIA_CONTENT_COLLATE_NOCASE); } else { - ret = media_filter_set_order(media_filter, MEDIA_CONTENT_ORDER_DESC, MEDIA_MODIFIED_TIME, MEDIA_CONTENT_COLLATE_NOCASE); + ret = media_filter_set_order(media_filter, MEDIA_CONTENT_ORDER_DESC, "MEDIA_TIMELINE, MEDIA_DISPLAY_NAME", MEDIA_CONTENT_COLLATE_NOCASE); } - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_filter_set_order is failed, err = %s", _strerror_db(ret)); goto SET_FILTER_ERROR; } - if(condition) + if (condition) free(condition); MSG_MED("ivug_db_set_filter success, view_by:%d, media_type:%d", view_by, media_type); return true; SET_FILTER_ERROR: - if(condition) + if (condition) free(condition); return false; } +bool ivug_db_set_image_time_asc_filter(filter_handle filter, char *condition) +{ + filter_h media_filter = (filter_h)filter; + + int ret = MEDIA_CONTENT_ERROR_NONE; + + if (condition == NULL) + { + condition = calloc(1, sizeof(char)*IVUG_MAX_CONDITION_LEN); + } + else + { + strncat(condition, " AND ", sizeof(" AND ")); + } + + IV_ASSERT(condition != NULL); + strncat(condition, "(MEDIA_TYPE=0)", sizeof("(MEDIA_TYPE=0)")); + + if (ivug_db_set_filter_condition(media_filter, condition) == false) + { + goto SET_FILTER_ERROR; + } + + ret = media_filter_set_order(media_filter, MEDIA_CONTENT_ORDER_ASC, "MEDIA_TIMELINE, MEDIA_DISPLAY_NAME", MEDIA_CONTENT_COLLATE_NOCASE); + if (ret != MEDIA_CONTENT_ERROR_NONE) + { + MSG_ERROR("media_filter_set_order is failed, err = %s", _strerror_db(ret)); + goto SET_FILTER_ERROR; + } + + free(condition); + + MSG_MED("ivug_db_set_filter success"); + return true; + +SET_FILTER_ERROR: + free(condition); + return false; +} + bool ivug_db_set_filter_offset(filter_handle filter, int stp, int endp) { filter_h media_filter = (filter_h)filter; @@ -276,7 +322,7 @@ bool ivug_db_set_filter_offset(filter_handle filter, int stp, int endp) int ret = MEDIA_CONTENT_ERROR_NONE; ret = media_filter_set_offset(media_filter, stp, endp-stp+1); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_filter_set_offset is failed, err = %s", _strerror_db(ret)); return false; @@ -292,12 +338,14 @@ media_handle ivug_db_insert_file_to_DB(const char* filepath) int ret = MEDIA_CONTENT_ERROR_NONE; if (ivug_is_web_uri(filepath) == true) + { return NULL; + } media_handle m_handle = NULL; ret = media_info_insert_to_db(filepath, (media_info_h *)&m_handle); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_info_insert_to_db is failed, err = %s", _strerror_db(ret)); return NULL; @@ -322,19 +370,19 @@ media_handle ivug_db_get_file_handle(const char* filepath) int ret = MEDIA_CONTENT_ERROR_NONE; filter_handle media_filter = NULL; - if (ivug_is_web_uri(filepath) == true) + if (ivug_is_web_uri(filepath) == true) { return NULL; + } - char buf[1024] = {0,}; - snprintf(buf, sizeof(buf), "MEDIA_PATH=\"%s\"", filepath); + char buf[IVUG_MAX_FILE_PATH_LEN+256] = {0,}; + snprintf(buf, sizeof(buf), "((MEDIA_PATH=\"%s\") AND "DB_QUERY_STORAGE_ALL")", filepath); media_handle m_handle = NULL; ivug_db_create_filter(&media_filter); ivug_db_set_filter_condition(media_filter, buf); ret = media_info_foreach_media_from_db(media_filter, _media_item_cb, &m_handle); - if(ret != MEDIA_CONTENT_ERROR_NONE) - { + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_info_foreach_media_from_db is failed, err = %s", _strerror_db(ret)); goto GET_ITEM_ERROR; } @@ -343,20 +391,23 @@ media_handle ivug_db_get_file_handle(const char* filepath) return m_handle; GET_ITEM_ERROR: - if(media_filter) + if (media_filter) ivug_db_destroy_filter(media_filter); + if (m_handle) + ivug_db_destroy_file_handle(m_handle); + return NULL; } -media_handle ivug_db_get_file_handle_from_media_id(const char* media_id) +media_handle ivug_db_get_file_handle_from_media_id(UUID media_id) { IV_ASSERT(media_id != NULL); media_handle m_handle = NULL; int ret = media_info_get_media_from_db(media_id, (media_info_h*)&m_handle); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_info_get_media_from_db is failed, err = %s", _strerror_db(ret)); return NULL; @@ -381,16 +432,15 @@ media_handle ivug_db_get_folder_handle(const char* folderpath) int ret = MEDIA_CONTENT_ERROR_NONE; filter_handle media_filter = NULL; - char buf[1024] = {0,}; - snprintf(buf, sizeof(buf), "FOLDER_PATH=\"%s\"", folderpath); + char buf[IVUG_MAX_FILE_PATH_LEN+256] = {0,}; + snprintf(buf, sizeof(buf), "((FOLDER_PATH=\"%s\") AND "DB_QUERY_STORAGE_ALL")", folderpath); media_handle m_handle = NULL; ivug_db_create_filter(&media_filter); ivug_db_set_filter_condition(media_filter, buf); ret = media_folder_foreach_folder_from_db(media_filter, _media_folder_item_cb, &m_handle); - if(ret != MEDIA_CONTENT_ERROR_NONE) - { + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_folder_foreach_folder_from_db is failed, err = %s", _strerror_db(ret)); goto GET_ITEM_ERROR; } @@ -399,7 +449,7 @@ media_handle ivug_db_get_folder_handle(const char* folderpath) return m_handle; GET_ITEM_ERROR: - if(media_filter) + if (media_filter) ivug_db_destroy_filter(media_filter); return NULL; @@ -409,7 +459,7 @@ static bool _media_folder_list_cb(media_folder_h item, void *user_data) { Ivug_DB *iv_db = (Ivug_DB *)user_data; - if(iv_db->callback) + if (iv_db->callback) { iv_db->callback((media_handle)item, iv_db->data); } @@ -423,6 +473,7 @@ bool ivug_db_get_all_folder_list(ivug_db_cb callback, void *data) filter_handle media_filter = NULL; Ivug_DB *iv_db = calloc(1, sizeof(Ivug_DB)); + IV_ASSERT(iv_db != NULL); iv_db->callback = callback; iv_db->data = data; @@ -431,7 +482,7 @@ bool ivug_db_get_all_folder_list(ivug_db_cb callback, void *data) free(iv_db); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_folder_foreach_folder_from_db is failed, err = %s", _strerror_db(ret)); goto GET_ITEM_ERROR; @@ -441,7 +492,7 @@ bool ivug_db_get_all_folder_list(ivug_db_cb callback, void *data) return true; GET_ITEM_ERROR: - if(media_filter) + if (media_filter) ivug_db_destroy_filter(media_filter); return false; @@ -457,12 +508,12 @@ char *ivug_db_get_file_path(media_handle media) return name; } -char *ivug_db_get_file_id(media_handle media) +UUID ivug_db_get_file_id(media_handle media) { media_info_h file_item = (media_info_h)media; - char *id = NULL; + UUID id = NULL; - media_info_get_media_id(file_item, &id); + media_info_get_media_id(file_item, (char **)&id); return id; } @@ -487,12 +538,12 @@ char *ivug_db_get_folder_name(media_handle media) return name; } -char *ivug_db_get_folder_id(media_handle media) +UUID ivug_db_get_folder_id(media_handle media) { media_folder_h folder_item = (media_folder_h)media; - char *id = NULL; + UUID id = NULL; - media_folder_get_folder_id(folder_item, &id); + media_folder_get_folder_id(folder_item, (char **)&id); return id; } @@ -507,11 +558,91 @@ char *ivug_db_get_folder_path(media_handle media) return path; } +bool ivug_db_get_folder_storage_type(media_handle media, Ivug_DB_Stroge_Type *type) +{ +// media_folder_h folder_item = (media_folder_h)media; +// +// int ret = MEDIA_CONTENT_ERROR_NONE; +// media_content_storage_ex_e storage_type = MEDIA_CONTENT_STORAGE_INTERNAL_EX; +// +// ret = media_folder_get_storage_type(folder_item, &storage_type); +// if (ret != MEDIA_CONTENT_ERROR_NONE) +// { +// MSG_ERROR("media_folder_get_storage_type is failed, err = %s", _strerror_db(ret)); +// return false; +// } +// +// switch (storage_type) +// { +// case MEDIA_CONTENT_STORAGE_INTERNAL_EX: +// *type = IV_STORAGE_TYPE_INTERNAL; +// MSG_HIGH("storage type is INTERNAL"); +// break; +// case MEDIA_CONTENT_STORAGE_EXTERNAL_EX: +// *type = IV_STORAGE_TYPE_EXTERNAL; +// MSG_HIGH("storage type is EXTERNAL"); +// break; +// case MEDIA_CONTENT_STORAGE_DROPBOX_EX: +// *type = IV_STORAGE_TYPE_CLOUD; +// MSG_HIGH("storage type is CLOUD"); +// break; +// case 121: //MEDIA_CONTENTC_STORAGE_FACEBOOK +// *type = IV_STORAGE_TYPE_WEB; +// MSG_HIGH("storage type is WEB"); +// break; +// default: +// MSG_ERROR("storage type is invalid %d", storage_type); +// break; +// } + + return false; +} + +bool ivug_db_get_file_storage_type(media_handle media, Ivug_DB_Stroge_Type *type) +{ +// media_info_h file_item = (media_info_h)media; +// +// int ret = MEDIA_CONTENT_ERROR_NONE; +// media_content_storage_ex_e storage_type = MEDIA_CONTENT_STORAGE_INTERNAL_EX; +// +// ret = media_info_get_storage_type(file_item, &storage_type); +// if (ret != MEDIA_CONTENT_ERROR_NONE) +// { +// MSG_ERROR("media_info_get_storage_type is failed, err = %s", _strerror_db(ret)); +// return false; +// } +// +// switch (storage_type) +// { +// case MEDIA_CONTENT_STORAGE_INTERNAL_EX: +// *type = IV_STORAGE_TYPE_INTERNAL; +// MSG_MED("storage type is INTERNAL"); +// break; +// case MEDIA_CONTENT_STORAGE_EXTERNAL_EX: +// *type = IV_STORAGE_TYPE_EXTERNAL; +// MSG_MED("storage type is EXTERNAL"); +// break; +// case MEDIA_CONTENT_STORAGE_DROPBOX_EX: +// *type = IV_STORAGE_TYPE_CLOUD; +// MSG_HIGH("storage type is CLOUD"); +// break; +// case 121: //MEDIA_CONTENTC_STORAGE_FACEBOOK +// *type = IV_STORAGE_TYPE_WEB; +// MSG_HIGH("storage type is WEB"); +// break; +// default: +// MSG_ERROR("storage type is invalid %d", storage_type); +// break; +// } + + return false; +} + static bool _media_tag_list_cb(media_tag_h item, void *user_data) { Ivug_DB *iv_db = (Ivug_DB *)user_data; - if(iv_db->callback) + if (iv_db->callback) { iv_db->callback((media_handle)item, iv_db->data); } @@ -525,6 +656,11 @@ bool ivug_db_get_all_tag_list(ivug_db_cb callback, void *data) filter_handle media_filter = NULL; Ivug_DB *iv_db = calloc(1, sizeof(Ivug_DB)); + + if (iv_db == NULL) { + return false; + } + iv_db->callback = callback; iv_db->data = data; @@ -533,7 +669,7 @@ bool ivug_db_get_all_tag_list(ivug_db_cb callback, void *data) free(iv_db); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_tag_foreach_tag_from_db is failed, err = %s", _strerror_db(ret)); goto GET_ITEM_ERROR; @@ -543,7 +679,7 @@ bool ivug_db_get_all_tag_list(ivug_db_cb callback, void *data) return true; GET_ITEM_ERROR: - if(media_filter) + if (media_filter) ivug_db_destroy_filter(media_filter); return false; @@ -574,16 +710,19 @@ bool ivug_db_create_tag(tag_handle *tag_h, const char *tag_name) media_tag_h *tag = (media_tag_h *)tag_h; int ret = media_tag_insert_to_db(tag_name, tag); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_tag_insert_to_db, err = %s", _strerror_db(ret)); + *tag = NULL; return false; } ret = media_tag_update_to_db(*tag); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_tag_update_to_db, err = %s", _strerror_db(ret)); + media_tag_destroy(*tag); + *tag = NULL; return false; } @@ -592,10 +731,10 @@ bool ivug_db_create_tag(tag_handle *tag_h, const char *tag_name) bool ivug_db_destroy_tag(tag_handle tag_h) { - media_tag_h tag = (media_tag_h )tag_h; + media_tag_h tag = (media_tag_h)tag_h; int ret = media_tag_destroy(tag); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_tag_destroy, err = %s", _strerror_db(ret)); return false; @@ -611,31 +750,36 @@ bool ivug_db_set_tag(media_handle m_handle, tag_handle t_handle) char *media_id = NULL; int ret = media_info_get_media_id(m_handle, &media_id); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_info_get_media_id, err = %s", _strerror_db(ret)); return false; } - if(media_id == NULL) + if (media_id == NULL) { MSG_ERROR("media_info_get_media_id, media_id = NULL"); return false; } ret = media_tag_add_media(tag, (const char *)media_id); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_tag_add_media, err = %s", _strerror_db(ret)); + if (media_id != NULL) { + free(media_id); + media_id = NULL; + } return false; } ret = media_tag_update_to_db(tag); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_tag_update_to_db, err = %s", _strerror_db(ret)); MSG_ERROR("or media tag already inserted"); } - + free(media_id); + media_id = NULL; return true; } @@ -644,7 +788,7 @@ bool ivug_db_update(media_handle media) media_info_h file_item = (media_info_h)media; int ret = media_info_update_to_db (file_item); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_info_update_to_db, err = %s", _strerror_db(ret)); return false; @@ -655,7 +799,7 @@ bool ivug_db_update(media_handle media) bool ivug_db_refresh(const char *media_id) { int ret = media_info_refresh_metadata_to_db(media_id); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_info_refresh_metadata_to_db, err = %s", _strerror_db(ret)); return false; @@ -687,7 +831,7 @@ tag_handle ivug_db_get_tag_handle(const char* tagname) ivug_db_create_filter(&media_filter); ivug_db_set_filter_condition(media_filter, buf); ret = media_tag_foreach_tag_from_db(media_filter, _media_tag_item_cb, &t_handle); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_tag_foreach_tag_from_db is failed, err = %s", _strerror_db(ret)); goto GET_ITEM_ERROR; @@ -697,7 +841,7 @@ tag_handle ivug_db_get_tag_handle(const char* tagname) return t_handle; GET_ITEM_ERROR: - if(media_filter) + if (media_filter) ivug_db_destroy_filter(media_filter); return NULL; @@ -708,14 +852,14 @@ bool ivug_db_set_favorite(media_handle media, bool set) media_info_h item = (media_info_h)media; int ret = media_info_set_favorite(item, set); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_info_set_favorite, err = %s", _strerror_db(ret)); return false; } ret = media_info_update_to_db(item); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_info_update_to_db, err = %s", _strerror_db(ret)); return false; @@ -724,12 +868,25 @@ bool ivug_db_set_favorite(media_handle media, bool set) return true; } +bool ivug_db_get_favorite(media_handle media, bool *bFavorite) +{ + media_info_h item = (media_info_h)media; + + int ret = media_info_get_favorite(item, bFavorite); + if (ret != MEDIA_CONTENT_ERROR_NONE) { + MSG_ERROR("media_info_get_favorite, err = %s", _strerror_db(ret)); + return false; + } + + return true; +} + bool ivug_db_get_file_size(media_handle media, unsigned long long *size) { media_info_h item = (media_info_h)media; int ret = media_info_get_size(item, size); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_info_get_size, err = %s", _strerror_db(ret)); return false; @@ -743,15 +900,16 @@ Ivug_DB_h * ivug_db_create_thumbnail(media_handle media, ivug_db_path_cb callbac media_info_h item = (media_info_h)media; Ivug_DB_h *db_h = (Ivug_DB_h *)calloc(1, sizeof(Ivug_DB_h)); + IV_ASSERT(db_h != NULL); db_h->m_handle = media; db_h->callback = callback; db_h->data = data; db_h->key = DB_KEY; int ret = media_info_create_thumbnail(item, _ivug_thumb_cb, db_h); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { - MSG_ERROR("media_info_get_size, err = %s", _strerror_db(ret)); + MSG_ERROR("media_info_create_thumbnail, err = %s", _strerror_db(ret)); free(db_h); return NULL; } @@ -764,7 +922,7 @@ bool ivug_db_cancel_thumbnail(Ivug_DB_h *db_h) media_info_h item = (media_info_h)db_h->m_handle; int ret = media_info_cancel_thumbnail(item); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_ERROR("media_info_cancel_thumbnail, err = %s", _strerror_db(ret)); return false; @@ -780,4 +938,380 @@ bool ivug_db_cancel_thumbnail(Ivug_DB_h *db_h) return true; } +bool ivug_db_get_modified_time(media_handle media, time_t *time) +{ + media_info_h item = (media_info_h)media; + + int ret = media_info_get_modified_time(item, time); + if (ret != MEDIA_CONTENT_ERROR_NONE) + { + MSG_ERROR("media_info_get_modified_time, err = %s", _strerror_db(ret)); + return false; + } + return true; +} + +bool ivug_db_get_time(media_handle media, time_t *time) +{ + media_info_h item = (media_info_h)media; + + int ret = media_info_get_timeline(item, time); + if (ret != MEDIA_CONTENT_ERROR_NONE) + { + MSG_ERROR("media_info_get_timeline, err = %s", _strerror_db(ret)); + return false; + } + return true; +} + +char *ivug_db_get_mime_type(media_handle media) +{ + media_info_h item = (media_info_h)media; + + char *mime = NULL; + + int ret = media_info_get_mime_type(item, &mime); + if (ret != MEDIA_CONTENT_ERROR_NONE) + { + MSG_ERROR("media_info_get_mime_type, err = %s", _strerror_db(ret)); + return NULL; + } + + MSG_MED("mime is %s", mime); + + return mime; +} + +bool ivug_db_get_video_duration(media_handle media, int *duration) +{ + IV_ASSERT(duration != NULL); + + media_info_h item = (media_info_h)media; + + video_meta_h video_meta = NULL; + + int ret = media_info_get_video(item, &video_meta); + if (ret != MEDIA_CONTENT_ERROR_NONE) + { + MSG_ERROR("media_info_get_video, err = %s", _strerror_db(ret)); + return false; + } + + ret = video_meta_get_duration(video_meta, duration); + video_meta_destroy(video_meta); + if (ret != MEDIA_CONTENT_ERROR_NONE) + { + MSG_ERROR("video_meta_get_duration, err = %s", _strerror_db(ret)); + return false; + } + + MSG_HIGH("duration is %d", *duration); + + return true; +} + +Ivug_DB_h *ivug_db_set_updated_callback(ivug_db_update_cb callback, void *data) +{ + Ivug_DB_h *db_h = (Ivug_DB_h *)calloc(1, sizeof(Ivug_DB_h)); + IV_ASSERT(db_h != NULL); + + db_h->update_cb = callback; + db_h->data = data; + db_h->key = DB_KEY; + + //media_content_noti_h noti_handle = NULL; + +// int ret = media_content_set_db_updated_multiple_cb(¬i_handle, _db_update_cb, db_h); +// +// if (ret != MEDIA_CONTENT_ERROR_NONE) +// { +// MSG_ERROR("media_content_set_db_updated_cb, err = %s", _strerror_db(ret)); +// return NULL; +// } +// +// MSG_ERROR("nhande 1 0x%08x, nhande 2 0x%08x", db_h->n_handle, noti_handle); +// +// db_h->n_handle = (void *)noti_handle; + + //return db_h; + + free(db_h); + return NULL; +} + +bool ivug_db_unset_updated_callback(Ivug_DB_h *db_h) +{ + MSG_ERROR("nhande 1 0x%08x", db_h->n_handle); + +// int ret = media_content_unset_db_updated_multiple_cb((media_content_noti_h)db_h->n_handle); +// if (ret != MEDIA_CONTENT_ERROR_NONE) +// { +// MSG_ERROR("media_content_unset_db_updated_cb, err = %s", _strerror_db(ret)); +// return false; +// } +// +// db_h->n_handle = NULL; +// db_h->m_handle = NULL; +// db_h->update_cb = NULL; +// db_h->callback = NULL; +// db_h->data = NULL; +// db_h->key = 0; +// +// free(db_h); + + return false; +} + +bool ivug_db_get_taken_time(media_handle media, char **taken_time) +{ + image_meta_h image_m = NULL; + media_info_h item = (media_info_h)media; + + int ret = media_info_get_image(item, &image_m); + if (ret != MEDIA_CONTENT_ERROR_NONE) + { + MSG_ERROR("media_info_get_image, err = %s", _strerror_db(ret)); + return false; + } + + ret = image_meta_get_date_taken(image_m, taken_time); + image_meta_destroy(image_m); + if (ret != MEDIA_CONTENT_ERROR_NONE || *taken_time == NULL) + { + MSG_ERROR("image_meta_get_date_taken, err = %s", _strerror_db(ret)); + return false; + } + + MSG_HIGH("taken time is %s", *taken_time); + + return true; +} + +bool ivug_db_get_location(media_handle media, char **location) +{ + MSG_ASSERT(location != NULL); + + media_info_h item = (media_info_h)media; + + int ret = media_info_get_location_tag(item, location); + if (ret != MEDIA_CONTENT_ERROR_NONE) + { + MSG_ERROR("ivug_db_get_location, err=%s", _strerror_db(ret)); + return false; + } + + if (*location == NULL) + { + MSG_WARN("Location is NULL for mHandle(0x%08x)", media); + return false; + } + + return true; +} + +bool ivug_db_get_get_longitude(media_handle media, double * longitude) +{ + media_info_h item = (media_info_h)media; + int ret = media_info_get_longitude(item, longitude); + if (ret != MEDIA_CONTENT_ERROR_NONE) + { + MSG_ERROR("ivug_db_get_get_longitude, err=%s",_strerror_db(ret)); + return false; + } + + return true; +} + +bool ivug_db_get_get_latitude(media_handle media, double * latitude) +{ + media_info_h item = (media_info_h)media; + int ret = media_info_get_latitude(item, latitude); + if (ret != MEDIA_CONTENT_ERROR_NONE) + { + MSG_ERROR("ivug_db_get_get_latitude, err=%s",_strerror_db(ret)); + return false; + } + + return true; +} + +bool ivug_db_set_best_photo(const char *filepath) +{ +// IV_ASSERT(filepath != NULL); +// +// MSG_SEC("bestphoto path is %s", filepath); +// +// int ret = media_info_set_mode(filepath, MEDIA_CONTENT_MODE_BEST_PHOTO); +// if (ret != MEDIA_CONTENT_ERROR_NONE) +// { +// MSG_ERROR("media_info_set_mode, err=%s", _strerror_db(ret)); +// return false; +// } + + return false; +} + +bool ivug_db_get_media_type(media_handle media, Ivug_Media_Type *type) +{ + IV_ASSERT(type != NULL); + +// media_info_h item = (media_info_h)media; +// +// media_content_mode_e mode; +// +// int ret = media_info_get_mode(item, &mode); +// if (ret != MEDIA_CONTENT_ERROR_NONE) +// { +// MSG_ERROR("media_info_get_mode, err=%s", _strerror_db(ret)); +// *type = IV_MEDIA_TYPE_NORMAL; +// return false; +// } +// +// MSG_MED("Media=0x%08x type is %d", media, mode); +// +// switch (mode) +// { +// case MEDIA_CONTENT_MODE_NORMAL: +// *type = IV_MEDIA_TYPE_NORMAL; +// break; +// case MEDIA_CONTENT_MODE_PANORAMA: +// *type = IV_MEDIA_TYPE_PANORAMA; +// break; +// case MEDIA_CONTENT_MODE_SOUNDNSHOT: +// *type = IV_MEDIA_TYPE_SOUNDNSHOT; +// break; +// case MEDIA_CONTENT_MODE_ANIMATED_PHOTO: +// *type = IV_MEDIA_TYPE_ANIMATED_PHOTO; +// break; +// case MEDIA_CONTENT_MODE_BEST_PHOTO: +// *type = IV_MEDIA_TYPE_BEST_PHOTO; +// break; +// case MEDIA_CONTENT_MODE_FACEBOOK: +// *type = IV_MEDIA_TYPE_FACEBOOK; +// break; +// default: +// *type = IV_MEDIA_TYPE_NORMAL; +// break; +// } + + return false; +} + +bool ivug_db_is_burstshot(media_handle media) +{ + if (media == NULL) + { + MSG_WARN("IsBurst : Media handle is NULL"); + return false; + } + + media_info_h item = (media_info_h)media; + + image_meta_h image_m = NULL; + + int ret = media_info_get_image(item, &image_m); + if (ret != MEDIA_CONTENT_ERROR_NONE) + { + MSG_ERROR("media_info_get_image, err = %s", _strerror_db(ret)); + return false; + } + + bool bBurstshot; + + ret = image_meta_is_burst_shot(image_m, &bBurstshot); + + if (ret != MEDIA_CONTENT_ERROR_NONE) + { + MSG_ERROR("image_meta_is_burstshot is failed. %s(0x%08x)", _strerror_db(ret), ret); + image_meta_destroy(image_m); + return false; + } + +// Example codes. + if (bBurstshot == true) + { +/* + Burst ID is start from "1". +*/ + char *burstID; + + if (image_meta_get_burst_id(image_m, &burstID) != MEDIA_CONTENT_ERROR_NONE) + { + MSG_ERROR("Cannot get burst ID"); + image_meta_destroy(image_m); + return false; + } + + MSG_HIGH("Burst ID=%s", burstID); + free(burstID); + } + + image_meta_destroy(image_m); + + return bBurstshot; + +} + +char *ivug_db_get_burstID(media_handle media) +{ + media_info_h item = (media_info_h)media; + + image_meta_h image_m = NULL; + char *burstID = NULL; + + int ret = media_info_get_image(item, &image_m); + if (ret != MEDIA_CONTENT_ERROR_NONE) + { + MSG_ERROR("media_info_get_image, err = %s", _strerror_db(ret)); + return NULL; + } + + ret = image_meta_get_burst_id(image_m, &burstID); + if (ret != MEDIA_CONTENT_ERROR_NONE) + { + MSG_ERROR("image_meta_get_burst_id is failed. %s(0x%08x)", _strerror_db(ret), ret); + image_meta_destroy(image_m); + return NULL; + } + + MSG_HIGH("Burst ID=%s", burstID); + + image_meta_destroy(image_m); + + return burstID; +} + +bool ivug_db_is_supported_file_type(media_handle media) +{ + bool ret = false; + char *mime_type = NULL; + mime_type = ivug_db_get_mime_type(media); + if (mime_type == NULL) + { + MSG_SDATA_WARN("mime is not vaild"); + return false; + } + + //image + if (strncmp(mime_type, "image/jpeg", strlen("image/jpeg")) == 0 + || strncmp(mime_type, "image/bmp", strlen("image/bmp")) == 0 + || strncmp(mime_type, "image/png", strlen("image/png")) == 0 + || strncmp(mime_type, "image/gif", strlen("image/gif")) == 0 + || strncmp(mime_type, "image/vnd.wap.wbmp", strlen("image/vnd.wap.wbmp")) == 0) + { + ret = true; + } + else if (strncmp(mime_type, "video/", strlen("video/")) == 0) + { + ret = true; + } + else + { + MSG_SDATA_WARN("not supported file type"); + ret = false; + } + + free(mime_type); + return ret; +} diff --git a/common/src/ivug-dir.cpp b/common/src/ivug-dir.cpp index c949973..a247121 100755 --- a/common/src/ivug-dir.cpp +++ b/common/src/ivug-dir.cpp @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 "ivug-dir.h" @@ -20,30 +21,27 @@ #include #include +#include "ivug-debug.h" #include bool EnumFilesInDir(const char *dir, EnumFilesCB pFunc, void *data) { + struct dirent ent_struct; struct dirent *dptr; DIR *dirp; - if((dirp=opendir(dir))==NULL) - { - printf("Cannot open dir : %s", dir); + if ((dirp = opendir(dir)) == NULL) { + MSG_UTIL_ERROR("Cannot open dir : %s", dir); return false; } - static char fullpath[PATH_MAX]; - - while( (dptr = readdir(dirp)) != NULL ) - { - if ( dptr->d_type == DT_REG ) // Only for gegular file - { - if ( pFunc ) - { - sprintf(fullpath, "%s/%s", dir, dptr->d_name); + char fullpath[PATH_MAX]; + while ((readdir_r(dirp, &ent_struct, &dptr) == 0) && dptr) { + if (dptr->d_type == DT_REG ) { // Only for gegular file + if (pFunc ) { + snprintf(fullpath, PATH_MAX, "%s/%s", dir, dptr->d_name); pFunc(fullpath, data); } } @@ -57,22 +55,19 @@ bool EnumFilesInDir(const char *dir, EnumFilesCB pFunc, void *data) int GetFilesCountInDir(const char *dir) { - + struct dirent ent_struct; struct dirent *dptr; DIR *dirp; - if( (dirp=opendir(dir)) == NULL) - { - printf("Cannot open dir : %s", dir); + if ((dirp = opendir(dir)) == NULL) { + MSG_UTIL_ERROR("Cannot open dir : %s", dir); return -1; } int nCount = 0; - while( (dptr = readdir(dirp)) != NULL ) - { - if ( dptr->d_type == DT_REG ) // Only for gegular file - { + while ((readdir_r(dirp, &ent_struct, &dptr) == 0) && dptr) { + if (dptr->d_type == DT_REG ) { // Only for gegular file nCount++; } } @@ -81,20 +76,3 @@ int GetFilesCountInDir(const char *dir) return nCount; } - - -#if 0 -void _MyCB(const char *fname, void *data) -{ - printf("%s\n", fname); -} - - -int main(int argc, char *argv[]) -{ - EnumFilesInDir("/home/rookie/slp2.0", _MyCB, NULL); -} -#endif - - - diff --git a/common/src/ivug-drm-common.c b/common/src/ivug-drm-common.c deleted file mode 100755 index ee7b658..0000000 --- a/common/src/ivug-drm-common.c +++ /dev/null @@ -1,387 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 // for g_strlcpy - -#include - -#include -#include -#include -#include -#include -#include -#include - -#include "ivug-define.h" -#include "ivug-debug.h" -#include "ivug-file-info.h" -#include "ivug-util.h" - -#include "ivug-drm-common.h" - - -#include //ecore_file_dir_is_empty - -#define IVUG_DRM_TEMP_DIR DATADIR"/ug-image-viewer-efl/.tmp" - -#define MOUNTH_COUNT 12 //used for drm file info, -#define DAY_COUNT 30 -#define HOUR_COUNT 24 - - -char* -ivug_drm_get_drm_vendor_info(const char *path) -{ - IV_ASSERT(path != NULL); - - drm_result_e ret = DRM_RETURN_INTERNAL_ERROR; - drm_content_info_s content_info; - memset(&content_info, 0x0, sizeof(drm_content_info_s)); - - ret = drm_get_content_info(path, &content_info); - if(ret != DRM_RETURN_SUCCESS) - { - MSG_IVUG_ERROR("drm_get_content_info Error. %s, ret = %d", path, ret); - return NULL; - } - - if(strlen(content_info.author) > 0) - { - return strdup(content_info.author); - } - - return NULL; -} - -bool -ivug_drm_get_forwarding_info(const char *path) -{ - IV_ASSERT(path != NULL); - - drm_bool_type_e is_allowed = DRM_UNKNOWN; - drm_action_type_e action = DRM_IS_FORWARDING_ALLOWED; - drm_action_allowed_data_s action_data; - int ret = -1; - - memset(&action_data, 0x00, sizeof(drm_action_allowed_data_s)); - - g_strlcpy(action_data.file_path, path, sizeof(action_data.file_path)); - - ret = drm_is_action_allowed(action, &action_data, &is_allowed); - if(ret != DRM_RETURN_SUCCESS) - { - MSG_IVUG_ERROR("drm_is_action_allowed failed: %d", ret); - return false; - } - - if(is_allowed == DRM_TRUE) - { - MSG_IVUG_ERROR("Possible to forwarding. file=%s", path); - return true; - } - else - { - MSG_IVUG_ERROR("Impossible to forwarding. file=%s", path); - return false; - } -} - -char * -ivug_drm_get_right_url(const char *path) -{ - drm_content_info_s content_info; - memset(&content_info,0x0,sizeof(drm_content_info_s)); - int ret = -1; - - ret = drm_get_content_info(path, &content_info); - if(ret != DRM_RETURN_SUCCESS) - { - MSG_IVUG_ERROR("drm_get_content_info Error. %s, ret = %d", path, ret); - return NULL; - } - - if('\0' == content_info.rights_url[0]) - { - MSG_IVUG_ERROR("rights_url is NULL. %s", path); - return NULL; - } - MSG_IVUG_HIGH("rights_url = %s", content_info.rights_url); - - return strdup(content_info.rights_url); -} - -char * -ivug_drm_get_mime(const char *path) -{ - drm_content_info_s content_info; - memset(&content_info,0x0,sizeof(drm_content_info_s)); - int ret = -1; - - ret = drm_get_content_info(path, &content_info); - if(ret != DRM_RETURN_SUCCESS) - { - MSG_IVUG_ERROR("drm_get_content_info Error. %s, ret = %d", path, ret); - return NULL; - } - - if('\0' == content_info.mime_type[0]) - { - MSG_IVUG_ERROR("mime_type is NULL. %s", path); - return NULL; - } - MSG_IVUG_HIGH("mime_type = %s", content_info.mime_type); - - return strdup(content_info.mime_type); -} - - -bool -ivug_drm_has_valid_ro(const char *path) -{ - IV_ASSERT(path != NULL); - - drm_result_e ret; - - drm_license_status_e status = DRM_LICENSE_STATUS_UNDEFINED; - - ret = drm_get_license_status(path, DRM_PERMISSION_TYPE_DISPLAY, &status); - if(ret != DRM_RETURN_SUCCESS) - { - MSG_IVUG_ERROR("drm_get_license_status Error. %s, ret = %d", path, ret); - return false; - } - - if(status != DRM_LICENSE_STATUS_VALID) - { - MSG_IVUG_ERROR("No valid right. %s, status = %d", path, status); - return false; - } - - return true; -} - -bool -ivug_drm_is_drm_file(const char* file_path) -{ - IV_ASSERT(file_path != NULL); - - drm_bool_type_e isDRM = DRM_FALSE; - - if(drm_is_drm_file(file_path, &isDRM) == DRM_RETURN_SUCCESS) - { - if(isDRM == DRM_TRUE) - { - MSG_IVUG_MED("DRM file. path=%s", file_path); - return true; - } - return false; - } - - return false; -} - -bool ivug_drm_is_possible_to_setas(const char* path, _ivug_drm_setas_type type) -{ - ivug_retvm_if(!path, false, "path is NULL"); - - drm_bool_type_e is_allowed = DRM_UNKNOWN; - drm_action_type_e action = DRM_HAS_VALID_SETAS_STATUS; - drm_action_allowed_data_s action_data; - int ret = -1; - - memset(&action_data, 0x00, sizeof(drm_action_allowed_data_s)); - - ret = drm_is_action_allowed(action, &action_data, &is_allowed); - if(ret != DRM_RETURN_SUCCESS) - { - MSG_IVUG_ERROR("drm_is_action_allowed failed: %d", ret); - return false; - } - - if(is_allowed == DRM_TRUE) - { - MSG_IVUG_ERROR("Possible to setas. file=%s", path); - return true; - } - else - { - MSG_IVUG_ERROR("Impossible to setas. file=%s", path); - return false; - } -} - - -drm_data_t * ivug_drm_check_constraint(const char* file_path) -{ - - drm_file_info_s info; - drm_constraint_info_s constraint_info; - drm_permission_type_e perm_type = DRM_PERMISSION_TYPE_DISPLAY; - drm_data_t *result = NULL; - int ret = -1; - - memset(&info, 0x0, sizeof(drm_file_info_s)); - - ret = drm_get_file_info(file_path, &info); - if(ret != DRM_RETURN_SUCCESS) - { - MSG_IVUG_ERROR("drm_get_file_info Failed!!, ret=0x%x", ret); - return NULL; - } - - if (info.oma_info.method == DRM_METHOD_TYPE_FORWARD_LOCK) - { - MSG_IVUG_HIGH("DRM_METHOD_TYPE_FORWARD_LOCK"); - result = calloc(1, sizeof(drm_data_t)); - result->constraints = IVUG_DRM_RESULT_UNLIMITED; - result->data = -1; - return result; - } - - memset(&constraint_info, 0x0, sizeof(drm_constraint_info_s)); - - ret = drm_get_constraint_info(file_path, perm_type, &constraint_info); - if(ret != DRM_RETURN_SUCCESS) - { - MSG_IVUG_ERROR("drm_get_constraint_info Failed!!, ret=0x%x", ret); - return NULL; - } - - result = calloc(1, sizeof(drm_data_t)); - - if(constraint_info.const_type.is_unlimited) - { - MSG_IVUG_HIGH("Unlimited:for permission=%d", perm_type); - - result->constraints = IVUG_DRM_RESULT_UNLIMITED; - result->data = -1; - return result; - } - - if(constraint_info.const_type.is_accumulated){ - MSG_IVUG_HIGH("Accumulated Constraint is present"); - MSG_IVUG_HIGH("accumulated_original_seconds=%d", - constraint_info.accumulated_original_seconds); - MSG_IVUG_HIGH("accumulated_remaining_seconds=%d", - constraint_info.accumulated_remaining_seconds); - - result->constraints = IVUG_DRM_RESULT_ACCUMULATED; - result->data = -1; - return result; - } - - if(constraint_info.const_type.is_count){ - MSG_IVUG_HIGH("Count Constraint is present"); - MSG_IVUG_HIGH("original_count=%d", - constraint_info.original_count); - MSG_IVUG_HIGH("remaining_count=%d", - constraint_info.remaining_count); - - result->constraints = IVUG_DRM_RESULT_COUNT; - result->data = constraint_info.remaining_count; - return result; - } - - if(constraint_info.const_type.is_datetime){ - MSG_IVUG_HIGH("DATETIME Constraint is present"); - MSG_IVUG_HIGH("start_time:" - "Year=%d,Month=%d,Day=%d,Hour=%d, minute=%d, Second=%d", - constraint_info.start_time.tm_year, - constraint_info.start_time.tm_mon, - constraint_info.start_time.tm_mday, - constraint_info.start_time.tm_hour, - constraint_info.start_time.tm_min, - constraint_info.start_time.tm_sec); - - MSG_IVUG_HIGH("end_time:" - "Year=%d,Month=%d,Day=%d,Hour=%d, minute=%d, Second=%d", - constraint_info.end_time.tm_year, - constraint_info.end_time.tm_mon, - constraint_info.end_time.tm_mday, - constraint_info.end_time.tm_hour, - constraint_info.end_time.tm_min, - constraint_info.end_time.tm_sec); - - result->constraints = IVUG_DRM_RESULT_DATETIME; - //result->data = constraint.curCount; - result->data = -1; - return result; - } - - if(constraint_info.const_type.is_individual){ - MSG_IVUG_HIGH("INDIVIDUAL Constraint is present"); - MSG_IVUG_HIGH("individual_identity_type=%d " - "individual_id=%s", - constraint_info.individual_identity_type, - constraint_info.individual_id); - - result->constraints = IVUG_DRM_RESULT_INDIVIDUAL; - result->data = -1; - return result; - } - - if(constraint_info.const_type.is_interval){ - MSG_IVUG_HIGH("INTERVAL Constraint is present"); - MSG_IVUG_HIGH("interval_time:" - "Year=%d,Month=%d,Day=%d,Hour=%d, minute=%d, Second=%d", - constraint_info.interval_time.tm_year, - constraint_info.interval_time.tm_mon, - constraint_info.interval_time.tm_mday, - constraint_info.interval_time.tm_hour, - constraint_info.interval_time.tm_min, - constraint_info.interval_time.tm_sec); - - result->constraints = IVUG_DRM_RESULT_INTERVAL_DAYS; - result->data = ((constraint_info.interval_time.tm_year*MOUNTH_COUNT+constraint_info.interval_time.tm_mon)* - DAY_COUNT+constraint_info.interval_time.tm_mday); - return result; - } - - if(constraint_info.const_type.is_system){ - MSG_IVUG_HIGH("SYSTEM Constraint is present"); - MSG_IVUG_HIGH("system_identity_type=%d " - "system_id=%s", - constraint_info.system_identity_type, - constraint_info.system_id); - - result->constraints = IVUG_DRM_RESULT_SYSTEM; - result->data = -1; - return result; - } - - if(constraint_info.const_type.is_timedcount){ - MSG_IVUG_HIGH("TIMED-COUNT Constraint is present"); - MSG_IVUG_HIGH("timed_original_count=%d", - constraint_info.timed_original_count); - - MSG_IVUG_HIGH("timed_remaining_count=%d", - constraint_info.timed_remaining_count); - - MSG_IVUG_HIGH("timed_count_timer=%d", - constraint_info.timed_count_timer); - - result->constraints = IVUG_DRM_RESULT_TIMED_COUNT; - result->data = -1; - return result; - } - - MSG_IVUG_WARN("Undefined constraints"); - free(result); - - return NULL; -} - diff --git a/common/src/ivug-exif.c b/common/src/ivug-exif.c index 484b10b..0930172 100755 --- a/common/src/ivug-exif.c +++ b/common/src/ivug-exif.c @@ -1,19 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - * - */ +* Copyright (c) 2000-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. +* +*/ /** @@ -60,6 +60,7 @@ #include "ivug-debug.h" #include "ivug-exif.h" +#include "ivug-file-util.h" #undef LOG_LVL #define LOG_LVL (DBG_MSG_LVL_HIGH | DBG_MSG_LVL_DEBUG) @@ -72,10 +73,12 @@ #define gl_dbg MSG_MED +#define gl_sdbgE MSG_SEC + #define GL_CHECK_VAL(expr, val) \ do { \ - if(!expr) { \ - MSG_ERROR("[%s] Return value %d", #expr, val );\ + if (!expr) { \ + MSG_ERROR("[%s] Return value %d", #expr, val);\ return (val); \ } \ } while (0) @@ -338,7 +341,7 @@ static int __gl_exif_add_header(FILE *fd, unsigned int *orientation) } /* Add exif to jfif , don't have exif */ -static int __gl_exif_add_exif_to_jfif(const char *file_path, unsigned int *orientation) +static int __gl_exif_add_exif_to_jfif (const char *file_path, unsigned int *orientation) { GL_CHECK_VAL(orientation, -1); GL_CHECK_VAL(file_path, -1); @@ -347,7 +350,7 @@ static int __gl_exif_add_exif_to_jfif(const char *file_path, unsigned int *orien int ret = -1; if ((fd = fopen(file_path, "rb+")) == NULL) { - gl_dbgE("Can't open %s!", file_path); + gl_sdbgE("Can't open %s!", file_path); return -1; } @@ -379,7 +382,7 @@ static int __gl_exif_add_exif_to_jfif(const char *file_path, unsigned int *orien fclose(fd); fd = fopen(file_path, "wb"); if (!fd) { - gl_dbgE("Error creating file %s!", file_path); + gl_sdbgE("Error creating file %s!", file_path); goto GL_EXIF_FAILED; } @@ -404,240 +407,16 @@ static int __gl_exif_add_exif_to_jfif(const char *file_path, unsigned int *orien fclose(tmp_fd); /* Delete tmp file */ - if (!ecore_file_unlink(tmp_file)) + if (!ivug_file_unlink(tmp_file)) gl_dbgE("Delete file failed"); gl_dbg("All done"); return ret; } -#if 0 -/* Add exif to jfif 1.00, to add exif for some cases */ -static int __gl_exif_rw_jfif_1dot00(char *file_path, unsigned int *orientation) -{ - GL_CHECK_VAL(orientation, -1); - GL_CHECK_VAL(file_path, -1); - unsigned char tmp[GL_EXIF_BUF_LEN_MAX] = { 0, }; - FILE *fd = NULL; - int ret = -1; - int tmp_exif = -1; - - if ((fd = fopen(file_path, "rb+")) == NULL) { - gl_dbgE("Can't open %s!", file_path); - return -1; - } - - char *tmp_file = GL_EXI_TMP_JPEG_FILE; - FILE *tmp_fd = NULL; - if ((tmp_fd = fopen(tmp_file, "wb+")) == NULL) { - gl_dbgE("Can't open %s!", tmp_file); - goto GL_EXIF_FAILED; - } - - /* Add raw EXIF header data */ - if (__gl_exif_add_header(tmp_fd, orientation) < 0) - goto GL_EXIF_FAILED; - - size_t r_size = 0; - /* Remove start of JPEG image data section, 20 bytes */ - r_size = fread(tmp, sizeof(char), 20, fd); - - memset(tmp, 0x00, GL_EXIF_BUF_LEN_MAX); - /* Write JPEG image data from first 0xFF to tmp file after EXIF header */ - while ((r_size = fread(tmp, 1, sizeof(tmp), fd)) > 0) { - gl_dbg("r_size: %ld", r_size); - if (fwrite(tmp, 1, r_size, tmp_fd) != r_size) - gl_dbgW("Write and read size are diff!"); - - memset(tmp, 0x00, GL_EXIF_BUF_LEN_MAX); - } - - fclose(fd); - fd = fopen(file_path, "wb"); - if (!fd) { - gl_dbgE("Error creating file %s!", file_path); - goto GL_EXIF_FAILED; - } - - memset(tmp, 0x00, GL_EXIF_BUF_LEN_MAX); - /* Write back tmp file after to JPEG image */ - fseek(tmp_fd, 0, SEEK_SET); - while ((r_size = fread(tmp, 1, sizeof(tmp), tmp_fd)) > 0) { - gl_dbg("r_size: %ld", r_size); - if (fwrite(tmp, 1, r_size, fd) != r_size) - gl_dbgW("Write and read size are diff!"); - - memset(tmp, 0x00, GL_EXIF_BUF_LEN_MAX); - } - - ret = 0; - - GL_EXIF_FAILED: - - if (fd) - fclose(fd); - if (tmp_fd) - fclose(tmp_fd); - - /* Delete tmp file */ - if (!ecore_file_unlink(tmp_file)) - gl_dbgE("Delete file failed"); - - gl_dbg("All done"); - return ret; -} - -/* Add exif to jfif 1.01, older version, don't have exif */ -static int __gl_exif_rw_jfif_1dot01(char *file_path, unsigned int *orientation) -{ - GL_CHECK_VAL(orientation, -1); - GL_CHECK_VAL(file_path, -1); - unsigned char tmp[GL_EXIF_BUF_LEN_MAX] = { 0, }; - FILE *fd = NULL; - int ret = -1; - - if ((fd = fopen(file_path, "rb+")) == NULL) { - gl_dbgE("Can't open %s!", file_path); - return -1; - } - - char *tmp_file = GL_EXI_TMP_JPEG_FILE; - FILE *tmp_fd = NULL; - if ((tmp_fd = fopen(tmp_file, "wb+")) == NULL) { - gl_dbgE("Can't open %s!", tmp_file); - goto GL_EXIF_FAILED; - } - - /* Add raw EXIF header data */ - if (__gl_exif_add_header(tmp_fd, orientation) < 0) - goto GL_EXIF_FAILED; - - size_t r_size = 0; - /* Remove start of JPEG image data section, 20 bytes */ - r_size = fread(tmp, sizeof(char), 20, fd); - - memset(tmp, 0x00, GL_EXIF_BUF_LEN_MAX); - /* Write JPEG image data to tmp file after EXIF header */ - while ((r_size = fread(tmp, 1, sizeof(tmp), fd)) > 0) { - gl_dbg("r_size: %ld", r_size); - if (fwrite(tmp, 1, r_size, tmp_fd) != r_size) - gl_dbgW("Write and read size are diff!"); - - memset(tmp, 0x00, GL_EXIF_BUF_LEN_MAX); - } - - fclose(fd); - fd = fopen(file_path, "wb"); - if (!fd) { - gl_dbgE("Error creating file %s!", file_path); - goto GL_EXIF_FAILED; - } - - memset(tmp, 0x00, GL_EXIF_BUF_LEN_MAX); - /* Write back tmp file after to JPEG image */ - fseek(tmp_fd, 0, SEEK_SET); - while ((r_size = fread(tmp, 1, sizeof(tmp), tmp_fd)) > 0) { - gl_dbg("r_size: %ld", r_size); - if (fwrite(tmp, 1, r_size, fd) != r_size) - gl_dbgW("Write and read size are diff!"); - - memset(tmp, 0x00, GL_EXIF_BUF_LEN_MAX); - } - - ret = 0; - - GL_EXIF_FAILED: - - if (fd) - fclose(fd); - if (tmp_fd) - fclose(tmp_fd); - - /* Delete tmp file */ - if (!ecore_file_unlink(tmp_file)) - gl_dbgE("Delete file failed"); - - gl_dbg("All done"); - return ret; -} - -/* Add exif to jfif 1.02, to add exif for some cases */ -static int __gl_exif_rw_jfif_1dot02(char *file_path, unsigned int *orientation) -{ - GL_CHECK_VAL(orientation, -1); - GL_CHECK_VAL(file_path, -1); - unsigned char tmp[GL_EXIF_BUF_LEN_MAX] = { 0, }; - FILE *fd = NULL; - int ret = -1; - int tmp_exif = -1; - - if ((fd = fopen(file_path, "rb+")) == NULL) { - gl_dbgE("Can't open %s!", file_path); - return -1; - } - - char *tmp_file = GL_EXI_TMP_JPEG_FILE; - FILE *tmp_fd = NULL; - if ((tmp_fd = fopen(tmp_file, "wb+")) == NULL) { - gl_dbgE("Can't open %s!", tmp_file); - goto GL_EXIF_FAILED; - } - - /* Add raw EXIF header data */ - if (__gl_exif_add_header(tmp_fd, orientation) < 0) - goto GL_EXIF_FAILED; - - size_t r_size = 0; - /* Remove start of JPEG image data section, 20 bytes */ - r_size = fread(tmp, sizeof(char), 20, fd); - memset(tmp, 0x00, GL_EXIF_BUF_LEN_MAX); - /* Write JPEG image data from first 0xFF to tmp file after EXIF header */ - while ((r_size = fread(tmp, 1, sizeof(tmp), fd)) > 0) { - gl_dbg("r_size: %ld", r_size); - if (fwrite(tmp, 1, r_size, tmp_fd) != r_size) - gl_dbgW("Write and read size are diff!"); - - memset(tmp, 0x00, GL_EXIF_BUF_LEN_MAX); - } - - fclose(fd); - fd = fopen(file_path, "wb"); - if (!fd) { - gl_dbgE("Error creating file %s!", file_path); - goto GL_EXIF_FAILED; - } - - memset(tmp, 0x00, GL_EXIF_BUF_LEN_MAX); - /* Write back tmp file after to JPEG image */ - fseek(tmp_fd, 0, SEEK_SET); - while ((r_size = fread(tmp, 1, sizeof(tmp), tmp_fd)) > 0) { - gl_dbg("r_size: %ld", r_size); - if (fwrite(tmp, 1, r_size, fd) != r_size) - gl_dbgW("Write and read size are diff!"); - - memset(tmp, 0x00, GL_EXIF_BUF_LEN_MAX); - } - - ret = 0; - - GL_EXIF_FAILED: - - if (fd) - fclose(fd); - if (tmp_fd) - fclose(tmp_fd); - /* Delete tmp file */ - if (!ecore_file_unlink(tmp_file)) - gl_dbgE("Delete file failed"); - - gl_dbg("All done"); - return ret; -} -#endif - /* Add orientation tag to jpegs which have exif tag but do not have orientation tag: include jfif and exif*/ static int __gl_exif_add_orientation_tag(const char *file_path, - unsigned int *orientation){ + unsigned int *orientation) { GL_CHECK_VAL(orientation, -1); GL_CHECK_VAL(file_path, -1); @@ -669,7 +448,7 @@ static int __gl_exif_add_orientation_tag(const char *file_path, }; if ((fd = fopen(file_path, "rb+")) == NULL) { - gl_dbgE("Can't open %s!", file_path); + gl_sdbgE("Can't open %s!", file_path); return -1; } @@ -681,7 +460,7 @@ static int __gl_exif_add_orientation_tag(const char *file_path, } /* Find APP1 */ bool b_tag_ff = false; - while(1) { + while (1) { tmp_exif = __gl_exif_read_1_byte(fd); if (tmp_exif < 0) goto GL_EXIF_FAILED; @@ -725,9 +504,9 @@ static int __gl_exif_add_orientation_tag(const char *file_path, /*modify the marker parameter length, orientation tag is 12*/ length += 12; gl_dbgW("modified length: %d", length); - tmp[0] =( length >> 8 )& 0xff ; + tmp[0] =(length >> 8)& 0xff ; tmp[1] = length & 0xff ; - for(i = 0; i < 2; i++){ + for (i = 0; i < 2; i++) { if (__gl_exif_write_1_byte(tmp_fd, tmp[i]) < 0) goto GL_EXIF_FAILED; } @@ -799,7 +578,8 @@ static int __gl_exif_add_orientation_tag(const char *file_path, } gl_dbg("offset: %d", offset); /*if offset >8, copy data from there to IFD start position*/ - if(offset > 8){ + if (offset > 8) { + unsigned int i; for (i = 0; i < (offset - 8); i++) { tmp_exif = __gl_exif_read_1_byte(fd); if (tmp_exif < 0) @@ -889,15 +669,15 @@ static int __gl_exif_add_orientation_tag(const char *file_path, orientation_tag[10] = 0x00; orientation_tag[11] = 0x00; } - /*if there is no other tag, then only insert orientation_tag,don't go to the while(1)*/ - if(tags_cnt == 1) { - for(j = 0; j < 12 ;j++) { + /*if there is no other tag, then only insert orientation_tag,don't go to the while (1)*/ + if (tags_cnt == 1) { + for (j = 0; j < 12 ;j++) { gl_dbg("orientation_tag- %02X", orientation_tag[j]); if (__gl_exif_write_1_byte(tmp_fd, orientation_tag[j]) < 0) goto GL_EXIF_FAILED; } } - while(1){ + while (1) { if (--tags_cnt == 0) { break; } @@ -924,9 +704,9 @@ static int __gl_exif_add_orientation_tag(const char *file_path, /* to find Orientation Tag position */ if (tag_num < 0x0112) { - } else if (tag_num > 0x0112){ - if(!b_found_position){ - for(j = 0; j < 12 ;j++){ + } else if (tag_num > 0x0112) { + if (!b_found_position) { + for (j = 0; j < 12 ;j++) { gl_dbg("orientation_tag- %02X", orientation_tag[j]); if (__gl_exif_write_1_byte(tmp_fd, orientation_tag[j]) < 0) goto GL_EXIF_FAILED; @@ -960,7 +740,7 @@ static int __gl_exif_add_orientation_tag(const char *file_path, } gl_dbgW("data_type %02X!" , data_type); gl_dbgW("unit_num %02X!" , unit_num); - if((data_type < 1) ||(data_type > 12)){ + if ((data_type < 1) ||(data_type > 12)) { gl_dbgE("Wrong data type!"); goto GL_EXIF_FAILED; } @@ -968,7 +748,7 @@ static int __gl_exif_add_orientation_tag(const char *file_path, data_length = ifd_data_format[data_type] * unit_num; gl_dbgW("data_length %02X!" , data_length); /*data_length >4 ,next 4 bytes store the offset, so need to modify the offset*/ - if(data_length > 4){ + if (data_length > 4) { if (is_motorola) { offset_value = tmp[8]; offset_value <<= 8; @@ -1016,7 +796,7 @@ static int __gl_exif_add_orientation_tag(const char *file_path, } } - for(i = 0; i < 12 ;i++){ + for (i = 0; i < 12 ;i++) { gl_dbg("- %02X", tmp[i]); if (__gl_exif_write_1_byte(tmp_fd,tmp[i]) < 0) goto GL_EXIF_FAILED; @@ -1038,7 +818,7 @@ static int __gl_exif_add_orientation_tag(const char *file_path, fd = NULL; fd = fopen(file_path, "wb"); if (!fd) { - gl_dbgE("Error creating file %s!", file_path); + gl_sdbgE("Error creating file %s!", file_path); goto GL_EXIF_FAILED; } @@ -1056,25 +836,25 @@ static int __gl_exif_add_orientation_tag(const char *file_path, GL_EXIF_FAILED: - if (fd){ + if (fd) { fclose(fd); fd = NULL; } - if (tmp_fd){ + if (tmp_fd) { fclose(tmp_fd); tmp_fd = NULL; } /* Delete tmp file */ - if (!ecore_file_unlink(tmp_file)) + if (!ivug_file_unlink(tmp_file)) gl_dbgE("Delete file failed"); gl_dbg("All done"); return ret; } -static int __gl_exif_rw_jfif(FILE *fd, const char *file_path, +static int __gl_exif_rw_jfif (FILE *fd, const char *file_path, unsigned int *orientation, bool b_write) { GL_CHECK_VAL(fd, -1); @@ -1131,7 +911,7 @@ static int __gl_exif_rw_jfif(FILE *fd, const char *file_path, /* Find APP1 */ bool b_tag_ff = false; - while(1) { + while (1) { tmp_exif = __gl_exif_read_1_byte(fd); if (tmp_exif < 0) goto GL_EXIF_FAILED; @@ -1161,22 +941,13 @@ static int __gl_exif_rw_jfif(FILE *fd, const char *file_path, if (!b_write) { /* Normal orientation = 0degree = 1 */ *orientation = 1; - return -1; - } - return __gl_exif_add_exif_to_jfif(file_path, orientation); -#if 0 - if (version == GL_EXIF_JFIF_00) { - return __gl_exif_rw_jfif_1dot00(file_path, orientation); - } else if (version == GL_EXIF_JFIF_01) { - return __gl_exif_rw_jfif_1dot01(file_path, orientation); - } else { - return __gl_exif_rw_jfif_1dot02(file_path, orientation); + return 0; } -#endif + return __gl_exif_add_exif_to_jfif (file_path, orientation); } /* Find Exif */ - while(1) { + while (1) { for (i = 0; i < 6; i++) { tmp_exif = __gl_exif_read_1_byte(fd); if (tmp_exif < 0) { @@ -1193,7 +964,10 @@ static int __gl_exif_rw_jfif(FILE *fd, const char *file_path, break; } else { gl_dbg("Not met Exif!"); - fseek(fd, -5, SEEK_CUR); + if (fseek(fd, -5, SEEK_CUR) < 0) { + gl_dbgE("fseek failed!"); + goto GL_EXIF_FAILED; + } continue; } } @@ -1275,7 +1049,7 @@ static int __gl_exif_rw_jfif(FILE *fd, const char *file_path, } else{ /* Normal orientation = 0degree = 1 */ *orientation = 1; - ret = -1; + ret = 0; } goto GL_EXIF_FAILED; } @@ -1317,7 +1091,7 @@ static int __gl_exif_rw_jfif(FILE *fd, const char *file_path, } else{ /* Normal orientation = 0degree = 1 */ *orientation = 1; - ret = -1; + ret = 0; } goto GL_EXIF_FAILED; } @@ -1379,7 +1153,7 @@ bool _gl_exif_check_img_type(char *file_path) bool ret = false; if ((fd = fopen(file_path, "rb")) == NULL) { - gl_dbgE("Can't open %s!", file_path); + gl_sdbgE("Can't open %s!", file_path); return -1; } @@ -1436,12 +1210,12 @@ static int __gl_exif_rw_orient(const char *file_path, unsigned int *orient, bool if (b_write) { if ((fd = fopen(file_path, "rb+")) == NULL) { - gl_dbgE("Can't open %s!", file_path); + gl_sdbgE("Can't open %s!", file_path); return -1; } } else { if ((fd = fopen(file_path, "rb")) == NULL) { - gl_dbgE("Can't open %s!", file_path); + gl_sdbgE("Can't open %s!", file_path); return -1; } } @@ -1499,13 +1273,14 @@ static int __gl_exif_rw_orient(const char *file_path, unsigned int *orient, bool goto GL_EXIF_FAILED; exif_data[i] = (unsigned char)tmp_exif; - gl_dbg("- %02X", exif_data[i]); } if (exif_data[0] != 0x45 || exif_data[1] != 0x78 || exif_data[2] != 0x69 || exif_data[3] != 0x66 || exif_data[4] != 0x00 || exif_data[5] != 0x00) { gl_dbgE("Not met Exif!"); + for (i = 0; i < 6; i++) + gl_dbg("- %02X", exif_data[i]); goto GL_EXIF_FAILED; } @@ -1601,7 +1376,7 @@ static int __gl_exif_rw_orient(const char *file_path, unsigned int *orient, bool } else{ /* Normal orientation = 0degree = 1 */ *orient = 1; - ret = -1; + ret = 0; } goto GL_EXIF_FAILED; } @@ -1678,10 +1453,13 @@ int ivug_exif_get_rotate(const char *file, int *degree) unsigned int orientation = 0; int ret = __gl_exif_rw_orient(file, &orientation, false); - if (-1 != ret && 0 != orientation) + if (-1 != ret) { switch (orientation) { + case 0: // Invalid. treat as 0 degree + *degree = 0; + break; case IVUG_EXIF_ROTATE_0: *degree = 0; break; @@ -1719,7 +1497,7 @@ int ivug_exif_set_rotate(const char *file, int degree) unsigned int orientation; - switch (degree){ + switch (degree) { case 0: case 360: orientation = IVUG_EXIF_ROTATE_0; @@ -1747,3 +1525,4 @@ int ivug_exif_set_rotate(const char *file, int degree) return ret; } + diff --git a/common/src/ivug-file-info.c b/common/src/ivug-file-info.c index f83b52a..a9187e2 100755 --- a/common/src/ivug-file-info.c +++ b/common/src/ivug-file-info.c @@ -1,33 +1,33 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 "ivug-define.h" - #include "ivug-file-info.h" #include "ivug-debug.h" -#include "ivug-drm-common.h" #include "ivug-util.h" +#include "ivug-file-util.h" -#include //for exif +//#include //for exif #include #include #include #include +#include // file get #include -#include #include @@ -35,7 +35,7 @@ static const char *_conver_error(int err) { - switch(err) + switch (err) { case METADATA_EXTRACTOR_ERROR_NONE: return "Successful"; @@ -50,25 +50,25 @@ static const char *_conver_error(int err) default: { static char error[128]; - sprintf(error, "Unknow Error : %d(0x%08x)", err, err); + snprintf(error, 128, "Unknow Error : %d(0x%08x)", err, err); return error; } } return NULL; } - +/*sri static bool _get_exif_string(ExifData *ed, ExifTag tag, const char *buf, int buf_len) { ExifEntry *entry = NULL; - /** get exifentry*/ + //get exifentry entry = exif_data_get_entry(ed, tag); if (!entry) { return false; } - /** get value of the entry*/ - if(exif_entry_get_value(entry, (char *)buf, buf_len) == NULL) + // get value of the entry + if (exif_entry_get_value(entry, (char *)buf, buf_len) == NULL) { return false; } @@ -78,19 +78,19 @@ static bool _get_exif_string(ExifData *ed, ExifTag tag, const char *buf, int buf static bool _get_exif_short(ExifData *ed, ExifTag tag, int *value) { ExifEntry *entry = NULL; - /** get exifentry*/ + // get exifentry/ entry = exif_data_get_entry(ed, tag); if (!entry) { return false; } - /** get value of the entry*/ + // get value of the entry *value = exif_get_short(entry->data, exif_data_get_byte_order(entry->parent->parent)); return true; } - +*/ bool _get_video_gps_info(const char *filepath, double *latitude, double *longitude) { @@ -101,22 +101,20 @@ bool _get_video_gps_info(const char *filepath, double *latitude, double *longitu int ret = METADATA_EXTRACTOR_ERROR_NONE; metadata_extractor_h metadata; - char *latitude_str; - char *longitude_str; + char *latitude_str = NULL; + char *longitude_str = NULL; *latitude = 0.0; *longitude = 0.0; ret = metadata_extractor_create(&metadata); - if(ret != METADATA_EXTRACTOR_ERROR_NONE) - { + if (ret != METADATA_EXTRACTOR_ERROR_NONE) { MSG_UTIL_ERROR("Fail metadata_extractor_create [%s]", _conver_error(ret)); return false; } ret = metadata_extractor_set_path(metadata, filepath); - if(ret != METADATA_EXTRACTOR_ERROR_NONE) - { + if (ret != METADATA_EXTRACTOR_ERROR_NONE) { MSG_UTIL_ERROR("Fail metadata_extractor_set_path [%s]", _conver_error(ret)); ret = metadata_extractor_destroy(metadata); MSG_UTIL_HIGH("metadata_extractor_destroy [%s]", _conver_error(ret)); @@ -124,37 +122,55 @@ bool _get_video_gps_info(const char *filepath, double *latitude, double *longitu } ret = metadata_extractor_get_metadata(metadata, METADATA_LATITUDE, &latitude_str); - if(ret != METADATA_EXTRACTOR_ERROR_NONE) - { + if (ret != METADATA_EXTRACTOR_ERROR_NONE) { MSG_UTIL_ERROR("Fail metadata_extractor_get_metadata [%s]", _conver_error(ret)); ret = metadata_extractor_destroy(metadata); MSG_UTIL_HIGH("metadata_extractor_destroy [%s]", _conver_error(ret)); + if (latitude_str != NULL) { + free(latitude_str); + latitude_str = NULL; + } return false; } ret = metadata_extractor_get_metadata(metadata, METADATA_LONGITUDE, &longitude_str); - if(ret != METADATA_EXTRACTOR_ERROR_NONE) - { + if (ret != METADATA_EXTRACTOR_ERROR_NONE) { MSG_UTIL_ERROR("Fail metadata_extractor_get_metadata [%s]", _conver_error(ret)); ret = metadata_extractor_destroy(metadata); MSG_UTIL_HIGH("metadata_extractor_destroy [%s]", _conver_error(ret)); + if (longitude_str != NULL) { + free(longitude_str); + longitude_str = NULL; + } + if (latitude_str != NULL) { + free(latitude_str); + latitude_str = NULL; + } return false; } - MSG_UTIL_LOW("lat = %s, longi = %s", latitude_str, longitude_str); - *latitude = ivug_atod(latitude_str); - *longitude = ivug_atod(longitude_str); + if (latitude_str && longitude_str) { + MSG_UTIL_LOW("lat = %s, longi = %s", latitude_str, longitude_str); + *latitude = ivug_atod(latitude_str); + *longitude = ivug_atod(longitude_str); + } ret = metadata_extractor_destroy(metadata); - if(ret != METADATA_EXTRACTOR_ERROR_NONE) - { + if (ret != METADATA_EXTRACTOR_ERROR_NONE) { MSG_UTIL_ERROR("Fail metadata_extractor_destroy [%s]", _conver_error(ret)); } - + if (longitude_str != NULL) { + free(longitude_str); + longitude_str = NULL; + } + if (latitude_str != NULL) { + free(latitude_str); + latitude_str = NULL; + } return true; } -/* LATITUDE : -90 ~ +90, LONGITUDE : -180 ~ +180) */ +/* LATITUDE : -90 ~ +90, LONGITUDE : -180 ~ +180) *//* bool _get_gps_info_from_exifdata(ExifData *ed, double *latitude, double *longitude) { IV_ASSERT(ed != NULL); @@ -171,19 +187,19 @@ bool _get_gps_info_from_exifdata(ExifData *ed, double *latitude, double *longitu ifd = EXIF_IFD_GPS; tag = EXIF_TAG_GPS_LATITUDE_REF; - if(_get_exif_string(ed, tag, buf, BUF_LEN) == false) + if (_get_exif_string(ed, tag, buf, BUF_LEN) == false) { return false; } - if(buf[0] == 'S') /* SOUTH */ + if (buf[0] == 'S') // SOUTH { multiplier = -1.0; } tag = EXIF_TAG_GPS_LATITUDE; - if(_get_exif_string(ed, tag, buf, BUF_LEN) == false) + if (_get_exif_string(ed, tag, buf, BUF_LEN) == false) { return false; } @@ -193,15 +209,15 @@ bool _get_gps_info_from_exifdata(ExifData *ed, double *latitude, double *longitu double tmp_arr[3] = { 0.0, 0.0, 0.0 }; int count = 0; char* p = strtok(buf, ", "); - /** split the buf by , */ - while(p != NULL) + // split the buf by , + while (p != NULL) { tmp_arr[count] = ivug_atod(p); count++; p=strtok(NULL, ", "); } - if( count != 3 ) + if (count != 3) { MSG_UTIL_ERROR("Cannot get latitude info : %s", p); return false; @@ -212,19 +228,19 @@ bool _get_gps_info_from_exifdata(ExifData *ed, double *latitude, double *longitu multiplier = 1.0; tag = EXIF_TAG_GPS_LONGITUDE_REF; - if(_get_exif_string(ed, tag, buf, BUF_LEN) == false) + if (_get_exif_string(ed, tag, buf, BUF_LEN) == false) { return false; } - if(buf[0] == 'W') /* WEST */ + if (buf[0] == 'W') // WEST { multiplier = -1.0; } tag = EXIF_TAG_GPS_LONGITUDE; - if(_get_exif_string(ed, tag, buf, BUF_LEN) == false) + if (_get_exif_string(ed, tag, buf, BUF_LEN) == false) { return false; } @@ -234,15 +250,15 @@ bool _get_gps_info_from_exifdata(ExifData *ed, double *latitude, double *longitu double tmp_arr[3] = { 0.0, 0.0, 0.0 }; int count = 0; char* p = strtok(buf, ", "); - /** split the buf by , */ - while(p != NULL) + // split the buf by , + while (p != NULL) { tmp_arr[count] = ivug_atod(p); count++; p=strtok(NULL, ", "); } - if( count != 3 ) + if (count != 3) { MSG_UTIL_ERROR("Cannot get Longitude info : %s", p); return false; @@ -262,14 +278,14 @@ bool _get_image_gps_info(const char* filepath, double *latitude, double *longitu ExifData *ed = NULL; - /** get exifdata*/ + // get exifdata ed = exif_data_new_from_file(filepath); if (!ed) { return false; } - if(_get_gps_info_from_exifdata(ed, latitude, longitude) == false) + if (_get_gps_info_from_exifdata(ed, latitude, longitude) == false) { exif_data_unref(ed); return false; @@ -280,7 +296,7 @@ bool _get_image_gps_info(const char* filepath, double *latitude, double *longitu return true; } -bool _get_orientation_from_exifdata(ExifData *ed, /*OUT*/int *orient) +bool _get_orientation_from_exifdata(ExifData *ed, int *orient) { MSG_DETAIL_HIGH("_get_orientation_from_exifdata"); ExifIfd ifd; @@ -289,25 +305,25 @@ bool _get_orientation_from_exifdata(ExifData *ed, /*OUT*/int *orient) ifd = EXIF_IFD_EXIF; tag = EXIF_TAG_ORIENTATION; - if(_get_exif_short(ed, tag, orient) == false) + if (_get_exif_short(ed, tag, orient) == false) { return false; } MSG_DETAIL_HIGH("orientation = %d", *orient); - /* 1 : top left - 2 : top right - 3 : bottom right - 4 : bottom left - 5 : left top - 6 : right top - 7 : right bottom - 8 : left bottom */ + // 1 : top left + // 2 : top right + // 3 : bottom right + // 4 : bottom left + // 5 : left top + // 6 : right top + // 7 : right bottom + // 8 : left bottom return true; } -/* out value must be freed */ -static bool _get_maker_from_exifdata(ExifData *ed, /*OUT*/char **maker) +// out value must be freed +static bool _get_maker_from_exifdata(ExifData *ed, char **maker) { MSG_DETAIL_HIGH("_get_maker_from_exifdata"); ExifIfd ifd; @@ -318,7 +334,7 @@ static bool _get_maker_from_exifdata(ExifData *ed, /*OUT*/char **maker) ifd = EXIF_IFD_EXIF; tag = EXIF_TAG_MAKE; - if(_get_exif_string(ed, tag, buf, BUF_LEN) == false) + if (_get_exif_string(ed, tag, buf, BUF_LEN) == false) { return false; } @@ -328,8 +344,8 @@ static bool _get_maker_from_exifdata(ExifData *ed, /*OUT*/char **maker) return true; } -/* out value must be freed */ -static bool _get_model_from_exifdata(ExifData *ed, /*OUT*/char **model) +//out value must be freed +static bool _get_model_from_exifdata(ExifData *ed, char **model) { MSG_DETAIL_HIGH("_get_model_from_exifdata"); ExifIfd ifd; @@ -340,7 +356,7 @@ static bool _get_model_from_exifdata(ExifData *ed, /*OUT*/char **model) ifd = EXIF_IFD_EXIF; tag = EXIF_TAG_MODEL; - if(_get_exif_string(ed, tag, buf, BUF_LEN) == false) + if (_get_exif_string(ed, tag, buf, BUF_LEN) == false) { return false; } @@ -350,7 +366,7 @@ static bool _get_model_from_exifdata(ExifData *ed, /*OUT*/char **model) return true; } -bool _get_flash_from_exifdata(ExifData *ed, /*OUT*/int *status) +bool _get_flash_from_exifdata(ExifData *ed, int *status) { MSG_DETAIL_HIGH("_get_flash_from_exifdata"); ExifIfd ifd; @@ -359,20 +375,20 @@ bool _get_flash_from_exifdata(ExifData *ed, /*OUT*/int *status) ifd = EXIF_IFD_EXIF; tag = EXIF_TAG_FLASH; - if(_get_exif_short(ed, tag, status) == false) + if (_get_exif_short(ed, tag, status) == false) { return false; } MSG_DETAIL_HIGH("Flash status = %d", *status); - /* LSB - 0b : Flash did not fire - 1b : Flash fired */ + // LSB + // 0b : Flash did not fire + // 1b : Flash fired return true; } -/* out value must be freed */ -static bool _get_focal_length_from_exifdata(ExifData *ed, /*OUT*/char **length) +//out value must be freed +static bool _get_focal_length_from_exifdata(ExifData *ed, char **length) { MSG_DETAIL_HIGH("_get_focal_length_from_exifdata"); ExifIfd ifd; @@ -383,7 +399,7 @@ static bool _get_focal_length_from_exifdata(ExifData *ed, /*OUT*/char **length) ifd = EXIF_IFD_EXIF; tag = EXIF_TAG_FOCAL_LENGTH; - if(_get_exif_string(ed, tag, buf, BUF_LEN) == false) + if (_get_exif_string(ed, tag, buf, BUF_LEN) == false) { return false; } @@ -402,18 +418,18 @@ bool _get_white_balance_from_exifdata(ExifData *ed, int *white_balance) ifd = EXIF_IFD_EXIF; tag = EXIF_TAG_WHITE_BALANCE; - if(_get_exif_short(ed, tag, white_balance) == false) + if (_get_exif_short(ed, tag, white_balance) == false) { return false; } MSG_DETAIL_HIGH("White balance = %d", *white_balance); - /* 0 : auto white balance - 1 : menual white balance */ + // 0 : auto white balance + // 1 : menual white balance return true; } -bool _get_aperture_from_exifdata(ExifData *ed, /*OUT*/char **aperture) +bool _get_aperture_from_exifdata(ExifData *ed, char **aperture) { MSG_DETAIL_HIGH("_get_aperture_from_exifdata"); ExifIfd ifd; @@ -424,7 +440,7 @@ bool _get_aperture_from_exifdata(ExifData *ed, /*OUT*/char **aperture) ifd = EXIF_IFD_EXIF; tag = EXIF_TAG_APERTURE_VALUE; - if(_get_exif_string(ed, tag, buf, BUF_LEN) == false) + if (_get_exif_string(ed, tag, buf, BUF_LEN) == false) { return false; } @@ -434,7 +450,7 @@ bool _get_aperture_from_exifdata(ExifData *ed, /*OUT*/char **aperture) return true; } -bool _get_exposure_time_from_exifdata(ExifData *ed, /*OUT*/char **exposure) +bool _get_exposure_time_from_exifdata(ExifData *ed, char **exposure) { MSG_DETAIL_HIGH("_get_exposure_time_from_exifdata"); ExifIfd ifd; @@ -445,7 +461,7 @@ bool _get_exposure_time_from_exifdata(ExifData *ed, /*OUT*/char **exposure) ifd = EXIF_IFD_EXIF; tag = EXIF_TAG_EXPOSURE_TIME; - if(_get_exif_string(ed, tag, buf, BUF_LEN) == false) + if (_get_exif_string(ed, tag, buf, BUF_LEN) == false) { return false; } @@ -455,7 +471,7 @@ bool _get_exposure_time_from_exifdata(ExifData *ed, /*OUT*/char **exposure) return true; } -bool _get_iso_from_exifdata(ExifData *ed, /*OUT*/int *iso) +bool _get_iso_from_exifdata(ExifData *ed, int *iso) { MSG_DETAIL_HIGH("_get_iso_from_exifdata"); ExifIfd ifd; @@ -464,7 +480,7 @@ bool _get_iso_from_exifdata(ExifData *ed, /*OUT*/int *iso) ifd = EXIF_IFD_EXIF; tag = EXIF_TAG_ISO_SPEED_RATINGS; - if(_get_exif_short(ed, tag, iso) == false) + if (_get_exif_short(ed, tag, iso) == false) { return false; } @@ -472,9 +488,9 @@ bool _get_iso_from_exifdata(ExifData *ed, /*OUT*/int *iso) return true; } - - -static bool _get_image_resolution(const char *path, int * /* OUT */ pWidth, int * /* OUT */pHeight) +*/ +/* +static bool _get_image_resolution(const char *path, int * pWidth, int *pHeight) { IV_ASSERT(path != NULL); @@ -493,14 +509,17 @@ static bool _get_image_resolution(const char *path, int * /* OUT */ pWidth, int canvas = ecore_evas_get(ee); + evas_image_cache_set(canvas, 0); + Evas_Object *img = evas_object_image_add(canvas); evas_object_image_file_set(img, NULL, NULL); + //evas_object_image_load_orientation_set(img, EINA_TRUE); evas_object_image_load_scale_down_set(img, 0); evas_object_image_file_set(img, path, NULL); Evas_Load_Error error = evas_object_image_load_error_get(img); - if ( error != EVAS_LOAD_ERROR_NONE) + if (error != EVAS_LOAD_ERROR_NONE) { MSG_DETAIL_ERROR("Decoding Error(%d) : %s", error, path); evas_object_del(img); @@ -522,6 +541,7 @@ static bool _get_image_resolution(const char *path, int * /* OUT */ pWidth, int return true; } +*/ static bool _get_video_resolution(const char *path, int * /* OUT */ pWidth, int * /* OUT */pHeight) @@ -535,14 +555,14 @@ _get_video_resolution(const char *path, int * /* OUT */ pWidth, int * /* OUT */p char *height_str; ret = metadata_extractor_create(&metadata); - if(ret != METADATA_EXTRACTOR_ERROR_NONE) + if (ret != METADATA_EXTRACTOR_ERROR_NONE) { MSG_UTIL_ERROR("Fail metadata_extractor_create [%s]", _conver_error(ret)); return false; } ret = metadata_extractor_set_path(metadata, path); - if(ret != METADATA_EXTRACTOR_ERROR_NONE) + if (ret != METADATA_EXTRACTOR_ERROR_NONE) { MSG_UTIL_ERROR("Fail metadata_extractor_set_path [%s]", _conver_error(ret)); ret = metadata_extractor_destroy(metadata); @@ -551,200 +571,142 @@ _get_video_resolution(const char *path, int * /* OUT */ pWidth, int * /* OUT */p } ret = metadata_extractor_get_metadata(metadata, METADATA_VIDEO_WIDTH, &width_str); - if(ret != METADATA_EXTRACTOR_ERROR_NONE) + if (ret != METADATA_EXTRACTOR_ERROR_NONE) { MSG_UTIL_ERROR("Fail metadata_extractor_get_metadata [%s]", _conver_error(ret)); ret = metadata_extractor_destroy(metadata); MSG_UTIL_HIGH("metadata_extractor_destroy [%s]", _conver_error(ret)); + if (width_str != NULL) { + free(width_str); + width_str = NULL; + } return false; } ret = metadata_extractor_get_metadata(metadata, METADATA_VIDEO_HEIGHT, &height_str); - if(ret != METADATA_EXTRACTOR_ERROR_NONE) + if (ret != METADATA_EXTRACTOR_ERROR_NONE) { MSG_UTIL_ERROR("Fail metadata_extractor_get_metadata [%s]", _conver_error(ret)); ret = metadata_extractor_destroy(metadata); MSG_UTIL_HIGH("metadata_extractor_destroy [%s]", _conver_error(ret)); + if (height_str != NULL) { + free(height_str); + height_str = NULL; + } + if (width_str != NULL) { + free(width_str); + width_str = NULL; + } return false; } - MSG_UTIL_LOW("w = %s, h = %s", width_str, height_str); - *pWidth = ivug_atoi(width_str); - *pHeight = ivug_atoi(height_str); - + if (width_str && height_str) { + MSG_UTIL_LOW("w = %s, h = %s", width_str, height_str); + *pWidth = ivug_atoi(width_str); + *pHeight = ivug_atoi(height_str); + } ret = metadata_extractor_destroy(metadata); - if(ret != METADATA_EXTRACTOR_ERROR_NONE) + if (ret != METADATA_EXTRACTOR_ERROR_NONE) { MSG_UTIL_ERROR("Fail metadata_extractor_destroy [%s]", _conver_error(ret)); } - - return true; -} - - - -static char* -_get_drm_get_extension(const char* path) -{ -#define EXT_SIZE 128 -#define EXT_SPLITTER '.' - - IV_ASSERT(path != NULL ); - - char *mime_type = ivug_drm_get_mime(path); - MSG_IVUG_HIGH("mime_type: %s", mime_type); - - char **ext = NULL; - int length = -1; - int ret = -1; - char *result_ext = NULL; - - ret = mime_type_get_file_extension(mime_type, &ext, &length); - free(mime_type); - - if(ret != MIME_TYPE_ERROR_NONE) - { - MSG_IVUG_ERROR("mime_type_get_file_extension failed: %d", ret); - return NULL; + if (height_str != NULL) { + free(height_str); + height_str = NULL; } - if(length <= 0) - { - MSG_IVUG_ERROR("mime_type_get_file_extension length is invalid: %d", length); - if(ext) - free(ext); - return NULL; + if (width_str != NULL) { + free(width_str); + width_str = NULL; } - - int i; - for(i=0; id_name, &info) == 0 && (strcmp(dp->d_name, ".")) && (strcmp(dp->d_name, ".."))) { + closedir(dirp); + return 0; + } + } + closedir(dirp); + return 1; +} + +int ivug_mkdir(const char *dir) +{ + if (!dir) { + return 0; + } + + if (mkdir(dir, default_mode) < 0) + return 0; + else + return 1; +} + +static int +ivug_mkpath_if_not_exists(const char *path) +{ + struct stat st = {0,}; + if (!path) { + return 0; + } + + if (stat(path, &st) < 0) + return ivug_mkdir(path); + else if (!S_ISDIR(st.st_mode)) + return 0; + else + return 1; +} + +int ivug_mkpath(const char *path) +{ + char ss[PATH_MAX] = {0,}; + unsigned int i = 0; + if (!path) { + return 0; + } + + if (ivug_is_dir(path)) + return 1; + + for (i = 0; path[i] != '\0'; ss[i] = path[i], i++) { + if (i == sizeof(ss) - 1) + return 0; + + if ((path[i] == '/') && (i > 0)) { + ss[i] = '\0'; + if (!ivug_mkpath_if_not_exists(ss)) + return 0; + } + } + ss[i] = '\0'; + + return ivug_mkpath_if_not_exists(ss); +} + +char *ivug_strip_ext(const char *path) +{ + char *p = NULL; + char *file = NULL; + if (!path) { + return 0; + } + + p = strrchr(path, '.'); + if (!p) { + file = strdup(path); + } else if (p != path) { + file = malloc(((p - path) + 1) * sizeof(char)); + if (file) { + memcpy(file, path, (p - path)); + file[p - path] = 0; + } + } + + return file; +} + +int ivug_file_unlink (const char *filename) +{ + if (!filename) { + return 0; + } + + int status = unlink(filename); + if (status < 0) + return 0; + else + return 1; +} + +int ivug_file_size(const char *filename) +{ + struct stat info = {0,}; + if (!filename) { + return 0; + } + + if (stat(filename, &info) == 0) { + if (!S_ISDIR(info.st_mode)) + return info.st_size; + } + + return 0; +} + +int ivug_file_rmdir(const char *filename) +{ + if (!filename) { + return 0; + } + + int status = rmdir(filename); + if (status < 0) + return 0; + else + return 1; +} + +Eina_List *ivug_file_ls(const char *dir) +{ + char *f = NULL; + DIR *dirp = NULL; + struct dirent ent_struct; + struct dirent *dp = NULL; + Eina_List *list = NULL; + + if (!dir) { + return NULL; + } + + dirp = opendir(dir); + if (!dirp) + return NULL; + + while ((readdir_r(dirp, &ent_struct, &dp) == 0) && dp) { + if ((strcmp(dp->d_name , ".")) && (strcmp(dp->d_name , ".."))) { + f = strdup(dp->d_name); + list = eina_list_append(list, f); + } + } + closedir(dirp); + + list = eina_list_sort(list, eina_list_count(list), EINA_COMPARE_CB(strcoll)); + + return list; +} + +int ivug_file_recursive_rm(const char *dir) +{ + char buf[PATH_MAX_SIZE] = {0,}; + struct dirent ent_struct; + struct dirent *dp = NULL; + DIR *dirp = NULL; + + if (!dir) { + return 0; + } + + if (readlink(dir, buf, sizeof(buf)) > 0) { + return ivug_file_unlink(dir); + } + + int ret = ivug_is_dir(dir); + if (ret) { + ret = 1; + dirp = opendir(dir); + if (dirp) { + while ((readdir_r(dirp, &ent_struct, &dp) == 0) && dp) { + if ((strcmp(dp->d_name , ".")) && (strcmp(dp->d_name, ".."))) { + if (!ivug_file_recursive_rm(dp->d_name)) + ret = 0; + } + } + closedir(dirp); + } + + if (!ivug_file_rmdir(dir)) + ret = 0; + + return ret; + } else { + return ivug_file_unlink(dir); + } +} + +int ivug_file_cp(const char *src, const char *dst) +{ + FILE *f1 = NULL; + FILE *f2 = NULL; + char buf[BUF_MAX] = {0,}; //TODO: How about moving buf to heap instead of stack + char realpath1[PATH_MAX_SIZE] = {0,}; + char realpath2[PATH_MAX_SIZE] = {0,}; + size_t num; + int ret = 1; + + if (!src || !dst) { + return 0; + } + + if (!realpath(src, realpath1)) + return 0; + + if (realpath(dst, realpath2) && !strcmp(realpath1, realpath2)) + return 0; + + f1 = fopen(src, "rb"); + if (!f1) + return 0; + + f2 = fopen(dst, "wb"); + if (!f2) { + fclose(f1); + return 0; + } + + while ((num = fread(buf, 1, sizeof(buf), f1)) > 0) { + if (fwrite(buf, 1, num, f2) != num) + ret = 0; + } + + fclose(f1); + fclose(f2); + + return ret; +} + +int ivug_file_mv(const char *src, const char *dst) +{ + if (!src || !dst) { + return 0; + } + + struct stat info = {0,}; + if (stat(dst, &info) == 0) + return 0; + + if (rename(src, dst)) { + memset(&info, 0x00, sizeof(struct stat)); + if (stat(src, &info) == 0) { + return 0; + } + + if (S_ISREG(info.st_mode)) { + ivug_file_cp(src, dst); + chmod(dst, info.st_mode); + unlink(src); + return 1; + } + return 0; + } + return 1; +} + +int ivug_remove(const char *filename) +{ + if (!filename) { + return 0; + } + + int status = remove(filename); + if (status < 0) { + return 0; + } else { + return 1; + } +} diff --git a/common/src/ivug-language-mgr.c b/common/src/ivug-language-mgr.c new file mode 100755 index 0000000..17d38dc --- /dev/null +++ b/common/src/ivug-language-mgr.c @@ -0,0 +1,354 @@ +/* +* Copyright (c) 2000-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 "ivug-define.h" +#include "ivug-debug.h" +#include "ivug-util.h" +#include "ivug-db.h" + +#include + +#include "ivug-language-mgr.h" +#include + +#include + +#define LOG_LVL DBG_MSG_LVL_HIGH +#define LOG_CAT "IV-LANGUAGE" + +#define IVUG_TEXT_DOMAIN PACKAGE + +typedef struct +{ + Evas_Object *obj; + obj_type type; + const char *text_id; + const char *part; + void *data; +}obj_data; + +typedef struct +{ + Elm_Object_Item *obj_item; + const char *text_id; +}obj_item_data; + +typedef struct _lang_mgr *lang_mgr; +struct _lang_mgr{ + GList *objs; + GList *obj_items; + GList *glist_items; + GList *grid_items; +}_lang_mgr; + +#define G_LIST_FOREACH(list, l, data) \ + for (l = list, \ + data = g_list_nth_data(l, 0); \ + l; \ + l = g_list_next(l), \ + data = g_list_nth_data(l, 0)) + + +static void __obj_del_cb(void *data, Evas * e, Evas_Object * eo, void *event_info) +{ + obj_data *item = data; + lang_mgr mgr = (lang_mgr)item->data; + ivug_ret_if(mgr == NULL); + ivug_ret_if(item == NULL); + + MSG_MED("unregister obj : 0x%08x %s", item->obj, item->text_id); + + mgr->objs = + g_list_delete_link(mgr->objs, g_list_find(mgr->objs, item)); + + free(item); +} + +static void __glist_free(void *data) +{ + obj_data *item = data; + ivug_ret_if(item == NULL); + if (item->obj) + { + evas_object_event_callback_del(item->obj, EVAS_CALLBACK_DEL, __obj_del_cb); + } + free(item); +} + +static char *__get_text(const char *ID) +{ + ivug_retv_if(ID == NULL, NULL); + char *str; + + if (strstr(ID, "IDS_COM")) + str = dgettext("sys_string", ID); + else + str = dgettext(IVUG_TEXT_DOMAIN, ID);//gettext(ID); + + return str; +} + +static void __update_obj(void *data, void *userdata) +{ + char *text; + obj_data *item = data; + ivug_ret_if(item == NULL); + MSG_MED("handle: 0x%x, ID:%s",item->obj, item->text_id); + + text = __get_text(item->text_id); + + if (item->type == OBJ_TYPE_ELM_OBJECT) + { + if (item->part == NULL) + { + elm_object_text_set(item->obj, text); + } + else + { + elm_object_part_text_set(item->obj, item->part, text); + } + } + else if (item->type == OBJ_TYPE_EDJE_OBJECT) + edje_object_part_text_set(elm_layout_edje_get(item->obj), item->part, text); + else + MSG_WARN("Unhandled case"); +} + +static void __update_obj_item(void *data, void *userdata) +{ + char *text; + obj_item_data *item_data = data; + ivug_ret_if(item_data == NULL); + + MSG_MED("handle: 0x%x, ID:%s",item_data->obj_item, item_data->text_id); + text = __get_text(item_data->text_id); + elm_object_item_text_set(item_data->obj_item, text); +} + +static void __update_list(void *data, void *userdata) +{ + Elm_Object_Item *item = data; + ivug_ret_if(item == NULL); + MSG_MED("handle: 0x%x",item); + elm_genlist_item_update(item); +} + +static void __update_grid(void *data, void *userdata) +{ + Elm_Object_Item *item = data; + ivug_ret_if(item == NULL); + MSG_MED("handle: 0x%x",item); + elm_gengrid_item_update(item); +} + +int ivug_language_mgr_create(language_handle_t *handle) +{ + MSG_HIGH("ivug_language_mgr_create 0x%x", *handle); + + lang_mgr mgr = calloc(1, sizeof(_lang_mgr)); + if (!mgr) + { + MSG_WARN("Error: calloc"); + return -1; + } + *handle = (language_handle_t)mgr; + return 0; +} + +int ivug_language_mgr_destroy(language_handle_t handle) +{ + lang_mgr mgr = (lang_mgr)handle; + + ivug_retv_if(mgr == NULL, -1); + g_list_free_full(mgr->objs, __glist_free); + mgr->objs = NULL; + + g_list_free(mgr->glist_items); + mgr->glist_items = NULL; + + g_list_free(mgr->grid_items); + mgr->grid_items = NULL; + + free(mgr); + mgr = NULL; + + return 0; +} + +void ivug_language_mgr_register_object(language_handle_t handle, Evas_Object *obj, obj_type type, const char *part, const char *text_id) +{ + lang_mgr mgr = (lang_mgr)handle; + ivug_ret_if(mgr == NULL); + obj_data *item = calloc(1, sizeof(obj_data)); + ivug_ret_if(item == NULL); + + MSG_MED("register obj : 0x%08x %s", obj, text_id); + + item->type = type; + item->part = part; + item->text_id = text_id; + item->obj = obj; + item->data = handle; + + evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL, __obj_del_cb, item); + + mgr->objs = g_list_append(mgr->objs, item); +} + +void ivug_language_mgr_register_object_item(language_handle_t handle, Elm_Object_Item *object_item, const char *text_ID) +{ + lang_mgr mgr = (lang_mgr)handle; + ivug_ret_if(mgr == NULL); + obj_item_data *data = calloc(1, sizeof(obj_item_data)); + ivug_ret_if(data == NULL); + + MSG_MED("register obj item : 0x%08x %s", object_item, text_ID); + + data->obj_item = object_item; + data->text_id = text_ID; + + mgr->obj_items= g_list_append(mgr->obj_items, data); +} + +void ivug_language_mgr_unregister_object_item(language_handle_t handle, Elm_Object_Item *object_item) +{ + lang_mgr mgr = (lang_mgr)handle; + GList *l; + obj_item_data *data; + + G_LIST_FOREACH(mgr->obj_items, l, data) + { + if (data && data->obj_item == object_item) + { + MSG_MED("register obj item : 0x%08x %s", data->obj_item, data->text_id); + + mgr->obj_items = g_list_delete_link(mgr->obj_items, l); + if (data) + free(data); + break; + } + } +} + +void ivug_language_mgr_object_item_text_ID_set(language_handle_t handle, Elm_Object_Item *object_item, const char *text_ID) +{ + lang_mgr mgr = (lang_mgr)handle; + ivug_ret_if(mgr == NULL); + GList *l; + obj_item_data *data; + + G_LIST_FOREACH(mgr->obj_items, l, data) + { + if (data->obj_item == object_item) + { + MSG_MED("set ID: %s", text_ID); + data->text_id = text_ID; + break; + } + } +} + +void ivug_language_mgr_register_genlist_item(language_handle_t handle, Elm_Object_Item *item) +{ + lang_mgr mgr = (lang_mgr)handle; + ivug_ret_if(mgr == NULL); + mgr->glist_items = + g_list_append(mgr->glist_items, item); +} + +void ivug_language_mgr_unregister_genlist_item(language_handle_t handle, Elm_Object_Item *item) +{ + lang_mgr mgr = (lang_mgr)handle; + ivug_ret_if(mgr == NULL); + mgr->glist_items = + g_list_delete_link(mgr->glist_items, g_list_find(mgr->glist_items, item)); +} + +void ivug_language_mgr_register_gengrid_item(language_handle_t handle, Elm_Object_Item *item) +{ + lang_mgr mgr = (lang_mgr)handle; + ivug_ret_if(mgr == NULL); + mgr->grid_items = + g_list_append(mgr->grid_items, item); +} + +void ivug_language_mgr_unregister_gengrid_item(language_handle_t handle, Elm_Object_Item *item) +{ + lang_mgr mgr = (lang_mgr)handle; + ivug_ret_if(mgr == NULL); + mgr->grid_items = + g_list_delete_link(mgr->grid_items, g_list_find(mgr->grid_items, item)); +} + +void ivug_language_mgr_update(language_handle_t handle) +{ + lang_mgr mgr = (lang_mgr)handle; + MSG_HIGH("language changed. update text"); + ivug_ret_if(mgr == NULL); + g_list_foreach(mgr->objs, __update_obj, NULL); + g_list_foreach(mgr->obj_items, __update_obj_item, NULL); + g_list_foreach(mgr->glist_items, __update_list, NULL); + g_list_foreach(mgr->grid_items, __update_grid, NULL); +} + +void ivug_elm_object_text_set(language_handle_t handle, Evas_Object *obj, const char *text_id) +{ + char *text = __get_text(text_id); + elm_object_text_set(obj, text); + + ivug_language_mgr_register_object(handle, obj, OBJ_TYPE_ELM_OBJECT, NULL, text_id); +} + +void ivug_elm_object_item_text_set(language_handle_t handle, Elm_Object_Item *item, const char *text_id) +{ + char *text = __get_text(text_id); + elm_object_item_text_set(item, text); + + ivug_language_mgr_register_object_item(handle, item, text_id); +} + +void ivug_elm_object_part_text_set(language_handle_t handle, Evas_Object *obj, const char *part, const char *text_id) +{ + char *text = __get_text(text_id); + elm_object_part_text_set(obj, part, text); + + ivug_language_mgr_register_object(handle, obj, OBJ_TYPE_ELM_OBJECT, part, text_id); +} + +void ivug_edje_object_part_text_set(language_handle_t handle, Evas_Object *obj, const char *part, const char *text_id) +{ + char *text = __get_text(text_id); + edje_object_part_text_set(elm_layout_edje_get(obj), part, text); + + ivug_language_mgr_register_object(handle, obj, OBJ_TYPE_EDJE_OBJECT, part, text_id); +} + +char * GET_STR(const char *ID) +{ + return __get_text(ID); +} + +char * ivug_language_mgr_get_text_domain(const char *ID) +{ + ivug_retv_if(ID == NULL, NULL); + + if (strstr(ID, "IDS_COM")) + return "sys_string"; + else + return IVUG_TEXT_DOMAIN; +} + diff --git a/common/src/ivug-message.c b/common/src/ivug-message.c index ec0bce3..50061dd 100755 --- a/common/src/ivug-message.c +++ b/common/src/ivug-message.c @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 "ivug-message.h" @@ -36,9 +37,9 @@ #undef LOG_TAG #define LOG_TAG "UTT_MESSAGE" -#define MSG_ASSERT(expr) do { if( !(expr) ) { LOG(LOG_INFO, LOG_TAG, "[%s] ASSERT : " #expr, __func__ ); assert(0); } }while(0) +#define MSG_ASSERT(expr) do { if (!(expr)) { LOG(LOG_INFO, LOG_TAG, "[%s] ASSERT : " #expr, __func__); assert(0); } }while (0) -#define MSG_FATAL(...) do { LOG(LOG_INFO, LOG_TAG, ##__VA_ARGS__); assert(0); } while(0) +#define MSG_FATAL(...) do { LOG(LOG_INFO, LOG_TAG, ##__VA_ARGS__); assert(0); } while (0) #define MSG_WARN(...) LOG(LOG_INFO, LOG_TAG, ##__VA_ARGS__) #define MSG_ERROR(...) LOG(LOG_INFO, LOG_TAG, ##__VA_ARGS__) #define MSG_HIGH(...) LOG(LOG_INFO, LOG_TAG, ##__VA_ARGS__) @@ -93,13 +94,13 @@ typedef struct { int perr; \ perr = strerror_r(errno, szError, sizeof(szError)); \ \ - if ( perr ) { \ + if (perr) { \ MSG_ERROR(fmt " %s", ##arg, szError); \ } \ else { \ MSG_ERROR(fmt " Errno=%d", ##arg, errno); \ } \ - } while(0) + } while (0) RegisteredCallback *_find_callback(Eina_List *cb_list, FnMessage cb) @@ -109,7 +110,7 @@ RegisteredCallback *_find_callback(Eina_List *cb_list, FnMessage cb) EINA_LIST_FOREACH(cb_list,l, pCallback) { - if (( pCallback->callback == cb)) + if ((pCallback->callback == cb)) { return pCallback; } @@ -126,7 +127,7 @@ CommandList *_find_command(Eina_Inlist *command_list, const char *command) EINA_INLIST_FOREACH(command_list, l) { - if ( strncmp(l->command, command, MAX_COMMAND_LENGTH ) == 0 ) + if (strncmp(l->command, command, MAX_COMMAND_LENGTH) == 0) { return l; } @@ -148,7 +149,7 @@ static void _cleanup(_PMessageHandle pmessage) EINA_LIST_FOREACH_SAFE(pData->cblist, l, l_next, pCallback) { - if ( pCallback->delete_me == true ) + if (pCallback->delete_me == true) { pData->cblist = eina_list_remove_list(pData->cblist, l); pCallback->delete_me = false; @@ -157,7 +158,7 @@ static void _cleanup(_PMessageHandle pmessage) } } - if ( eina_list_count(pData->cblist) == 0 ) + if (eina_list_count(pData->cblist) == 0) { pmessage->command_list = eina_inlist_remove(pmessage->command_list, EINA_INLIST_GET(pData)); @@ -175,13 +176,13 @@ void pipe_cb(void *data, void *buffer, unsigned int nbyte) _PMessageHandle pmessage = (_PMessageHandle)data; MyData *mydata = buffer; - if ( nbyte != sizeof(MyData) ) + if (nbyte != sizeof(MyData)) { MSG_ERROR("Invalid command!!. pipe=0x%08x nByte=%d", pmessage->pipe, nbyte); return ; } - MSG_MED("Read from pipe. Pipe=0x%08x nByte=%d Cmd=%s Param1=%d", pmessage->pipe, nbyte , mydata->command, mydata->param1 ); + MSG_MED("Read from pipe. Pipe=0x%08x nByte=%d Cmd=%s Param1=%d", pmessage->pipe, nbyte , mydata->command, mydata->param1); // dump_message(pmessage); @@ -190,14 +191,14 @@ void pipe_cb(void *data, void *buffer, unsigned int nbyte) pData = _find_command(pmessage->command_list, mydata->command); // Clean up deleted callback - if ( pData != NULL ) // Add new command + if (pData != NULL) // Add new command { RegisteredCallback *pCallback = NULL; Eina_List *l; EINA_LIST_FOREACH(pData->cblist, l, pCallback) { - if ( pCallback->delete_me == false ) + if (pCallback->delete_me == false) { pCallback->callback(mydata->param1, mydata->param2, mydata->param3, mydata->param4, pCallback->client_data); // Call user function } @@ -213,19 +214,19 @@ void pipe_cb(void *data, void *buffer, unsigned int nbyte) MessageHandle create_message_handle() { - _PMessageHandle pmessage = (_PMessageHandle) malloc( sizeof(_MessageHandle) ); + _PMessageHandle pmessage = (_PMessageHandle) malloc(sizeof(_MessageHandle)); - if ( pmessage == NULL ) + if (pmessage == NULL) { MSG_FATAL("Cannot allocate memory. Size=%d", sizeof(_MessageHandle)); return NULL; } - memset(pmessage, 0x00, sizeof(_MessageHandle) ); + memset(pmessage, 0x00, sizeof(_MessageHandle)); - if ( pthread_mutex_init(&pmessage->pipe_mutex, NULL) != 0 ) // if falied, + if (pthread_mutex_init(&pmessage->pipe_mutex, NULL) != 0) // if falied, { - PRINT_ERRNO(errno, "Mutex init error" ); + PRINT_ERRNO(errno, "Mutex init error"); free(pmessage); return NULL; @@ -233,12 +234,12 @@ MessageHandle create_message_handle() pmessage->pipe = ecore_pipe_add(pipe_cb, pmessage); - if (pmessage->pipe == NULL ) + if (pmessage->pipe == NULL) { MSG_ERROR("Failed to creating ecore pipe"); - if ( pthread_mutex_destroy(&pmessage->pipe_mutex) != 0 ) + if (pthread_mutex_destroy(&pmessage->pipe_mutex) != 0) { - PRINT_ERRNO(errno, "Mutex destroy error" ); + PRINT_ERRNO(errno, "Mutex destroy error"); // Go through } @@ -254,22 +255,22 @@ bool remove_message_handle(MessageHandle handle) _PMessageHandle pmessage = (_PMessageHandle)handle; // this function can be called in signal handler. so assert() cannot be used in this function - if (pmessage == NULL ) + if (pmessage == NULL) { MSG_WARN("Message handle is NULL"); return true; } MSG_HIGH("Remove message handle. Handle=0x%08x", handle); - if (pmessage->pipe != NULL ) + if (pmessage->pipe != NULL) { ecore_pipe_del(pmessage->pipe); pmessage->pipe = NULL; } - if ( pthread_mutex_destroy(&pmessage->pipe_mutex) != 0 ) + if (pthread_mutex_destroy(&pmessage->pipe_mutex) != 0) { - PRINT_ERRNO(errno, "Mutex destroy error" ); + PRINT_ERRNO(errno, "Mutex destroy error"); // Go through } @@ -304,9 +305,9 @@ bool send_message(MessageHandle handle, const char *command, int param1, int pa { _PMessageHandle pmessage = (_PMessageHandle)handle; - if ( pthread_mutex_lock(&pmessage->pipe_mutex) != 0 ) + if (pthread_mutex_lock(&pmessage->pipe_mutex) != 0) { - PRINT_ERRNO(errno, "Mutex lock error" ); + PRINT_ERRNO(errno, "Mutex lock error"); return false; } @@ -324,13 +325,13 @@ bool send_message(MessageHandle handle, const char *command, int param1, int pa MSG_ASSERT(pmessage->pipe != NULL); - if ( ecore_pipe_write(pmessage->pipe, &data, sizeof(MyData)) == EINA_FALSE) + if (ecore_pipe_write(pmessage->pipe, &data, sizeof(MyData)) == EINA_FALSE) { MSG_ERROR("Writing to pipe is failed. pipe=0x%08x size=%d", pmessage->pipe, sizeof(MyData)); - if ( pthread_mutex_unlock(&pmessage->pipe_mutex) != 0 ) + if (pthread_mutex_unlock(&pmessage->pipe_mutex) != 0) { - PRINT_ERRNO(errno, "Mutex unlock error" ); + PRINT_ERRNO(errno, "Mutex unlock error"); // Go through } @@ -338,9 +339,9 @@ bool send_message(MessageHandle handle, const char *command, int param1, int pa return false; } - if ( pthread_mutex_unlock(&pmessage->pipe_mutex) != 0 ) + if (pthread_mutex_unlock(&pmessage->pipe_mutex) != 0) { - PRINT_ERRNO(errno, "Mutex unlock error" ); + PRINT_ERRNO(errno, "Mutex unlock error"); // Go through } @@ -361,15 +362,18 @@ bool register_message(MessageHandle handle, const char *command, FnMessage cb, pData = _find_command(pmessage->command_list, command); - if ( pData == NULL ) // Add new command + if (pData == NULL) // Add new command { pData = (CommandList *)calloc(1, sizeof(CommandList)); + if (pData) { + strncpy(pData->command, command, MAX_COMMAND_LENGTH - 1); + pmessage->command_list = eina_inlist_append(pmessage->command_list, EINA_INLIST_GET(pData)); + MSG_MED("Add new cmd slot for %s", command); + } else { + MSG_HIGH("cannot allocate memory"); + return false; + } - strncpy(pData->command, command, MAX_COMMAND_LENGTH - 1); - - pmessage->command_list = eina_inlist_append(pmessage->command_list, EINA_INLIST_GET(pData)); - - MSG_MED("Add new cmd slot for %s", command); } // Find callback list. @@ -377,23 +381,25 @@ bool register_message(MessageHandle handle, const char *command, FnMessage cb, pCallback = _find_callback(pData->cblist, cb); - if ( pCallback == NULL ) + if (pCallback == NULL) { pCallback = (RegisteredCallback *)calloc(1, sizeof(RegisteredCallback)); - pCallback->callback = cb; - pCallback->client_data = data; - pCallback->delete_me = false; + if (pCallback != NULL) { + pCallback->callback = cb; + pCallback->client_data = data; + pCallback->delete_me = false; - pData->cblist = eina_list_append(pData->cblist, pCallback); + pData->cblist = eina_list_append(pData->cblist, pCallback); + } } else { pCallback->delete_me = false; // Reuse slot. - if ( pCallback->client_data != data ) + if (pCallback->client_data != data) { - MSG_WARN("Already registered. CB is different. Old=0x%08x New=0x%08x", pCallback->client_data,data ); + MSG_WARN("Already registered. CB is different. Old=0x%08x New=0x%08x", pCallback->client_data,data); pCallback->client_data = data; // Overwirte callback data. return true; @@ -421,7 +427,7 @@ bool unregister_message(MessageHandle handle, const char *command, FnMessage cb) pData = _find_command(pmessage->command_list, command); - if ( pData == NULL ) + if (pData == NULL) { MSG_ERROR("Unknown command : %s cb=0x%08x", command, cb); return false; @@ -431,7 +437,7 @@ bool unregister_message(MessageHandle handle, const char *command, FnMessage cb) pCallback = _find_callback(pData->cblist, cb); - if ( pCallback != NULL ) + if (pCallback != NULL) { pCallback->callback = (FnMessage)0xDEADDEAD; pCallback->client_data = (void *)0xDEADBEAF; @@ -456,7 +462,7 @@ void dump_message(MessageHandle handle) EINA_INLIST_FOREACH(pmessage->command_list, pData) { - MSG_HIGH(" Command : \"%s\" 0x%08x", pData->command, pData ); + MSG_HIGH(" Command : \"%s\" 0x%08x", pData->command, pData); RegisteredCallback *pCallback = NULL; Eina_List *l; @@ -477,20 +483,20 @@ void dump_message(MessageHandle handle) void mycmd1(int param1, int param2, int param3, void *param4, void *client_data) { - printf("Received MyCmd1\n"); + MyPrintF("Received MyCmd1\n"); - printf("param1 = %s, param2 = %s, param3 = %s, param4 = %s\n", + MyPrintF("param1 = %s, param2 = %s, param3 = %s, param4 = %s\n", (char *)param1, (char *)param2, (char *)param3, (char *)param4); } void mycmd2(int param1, int param2, int param3, void *param4, void *client_data) { - printf("Received MyCmd2\n"); + MyPrintF("Received MyCmd2\n"); } void mycmd3(int param1, int param2, int param3, void *param4, void *client_data) { - printf("Received MyCmd3\n"); + MyPrintF("Received MyCmd3\n"); } @@ -507,7 +513,7 @@ static Eina_Bool _keydown_event(void *data, int type, void *event) { Ecore_Event_Key *ev = event; - printf("Key event : %s", ev->keyname); + MyPrintF("Key event : %s", ev->keyname); return true; } diff --git a/common/src/ivug-mouse-event.c b/common/src/ivug-mouse-event.c deleted file mode 100755 index 94c2172..0000000 --- a/common/src/ivug-mouse-event.c +++ /dev/null @@ -1,610 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ivug-debug.h" -#include "ivug-mouse-event.h" - - -// Click condition. -// Down Up duration under 300ms & Down pos, Up pos under 3 pixel - - -// Long pressed condition -// Down Up duration upper 1s & Down pos, Up pos under 5 pixel - -typedef enum { - MOUSE_DOWN_UNKNWON, - MOUSE_DOWN_NONE, - MOUSE_DOWN_1, - MOUSE_DOWN_2, - MOUSE_DOWN_3, - MOUSE_DOWN_4, // Invalid state. -} MouseState; - - - -#define INVALID_DEVICE_ID (-1) -#define MULTI_INDEX (9) -#define NUM_MAX_BUTTON (3) - -typedef struct _mouse_data_t{ - void *pClientData; - Evas_Object *obj; - - mouse_callback_t cb; - - MouseState m_state; - - bool bDown[NUM_MAX_BUTTON]; // For Mose down check before mouse move - bool bHold[NUM_MAX_BUTTON]; - - MouseEvent event[NUM_MAX_BUTTON]; - MouseEvent down[NUM_MAX_BUTTON]; - MouseEvent prve_up[NUM_MAX_BUTTON]; - - unsigned int prev_dist; - - int multi_min_idx; // multi min index is different in each target. Temp solution - - bool bSendPinchStart; - - MouseEvent center; - int pinch_dist; -// For debugging purpose, later will be removed. - char alias[100]; // -} mouse_data_t; - - -#ifndef __UNUSED__ -#define __UNUSED__ __attribute__((unused)) -#endif - -static unsigned int _get_distance(int prevX, int prevY, int X, int Y) -{ -#include - int dx = prevX - X; - int dy = prevY - Y; - - return sqrt(dx*dx + dy*dy); -} - -static void _on_mouse_down(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *event_info) -{ - if ( data == NULL ) - { - MSG_MOUSE_ERROR("Debug me!!!!"); - return; - } - - mouse_data_t *pData = (mouse_data_t *)data; - MouseEvent *ev = event_info; - - if ( ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) - { - MSG_MOUSE_HIGH("[%s] %s On Hold. Dev=%d", pData->alias, __func__, ev->device); - } - - int pressed = ev->device; - - if(pressed >= NUM_MAX_BUTTON) - { - MSG_MOUSE_FATAL("Invalid Pressed(%d)", pressed); - return; - } - - if ( pData->m_state == MOUSE_DOWN_UNKNWON ) - { - MSG_MOUSE_ERROR("[%s] Something wrong", pData->alias); - } - - if ( pData->bDown[pressed] == true ) - { - MSG_MOUSE_WARN("Mouse down is detected. but already pressed button. ignore"); - return; - } - - pData->m_state++; - pData->bDown[pressed] = true; - - if ( pData->m_state == MOUSE_DOWN_1 ) - { - MSG_MOUSE_HIGH("[%s] Callback Mouse Down : Dev=%d (%d,%d)", pData->alias, ev->device, ev->x, ev->y); - - if ( pData->cb.onMouseDown ) - { - (pData->cb.onMouseDown)(pData->obj, ev, pData->pClientData); - } - - MSG_MOUSE_MED("Func:%s Device=%d XY(%d,%d)", "_on_mouse_down", pressed, ev->x , ev->y ); - } - else if ( pData->m_state == MOUSE_DOWN_2 ) - { - MouseEvent *other = NULL; - - if ( pData->bDown[ (pressed + 1) % NUM_MAX_BUTTON] == true ) - { - other = &pData->event[(pressed + 1) % NUM_MAX_BUTTON]; - } - - if ( pData->bDown[(pressed + 2) % NUM_MAX_BUTTON] == true ) - { - if ( other != NULL ) - { - MSG_MOUSE_ERROR("Error!!!"); - } - other = &pData->event[(pressed + 2) % NUM_MAX_BUTTON]; - } - - if ( other == NULL ) - { - MSG_MOUSE_ERROR("[%s] Error! Pressed(%d,%d,%d)", pData->alias, - pData->bDown[0], - pData->bDown[1], - pData->bDown[2]); - - return ; // Fix for B/S - } - - int centerX = ( other->x + ev->x ) / 2; - int centerY = ( other->y + ev->y ) / 2; - - int dist = _get_distance(other->x, other->y, ev->x, ev->y); - - MSG_MOUSE_HIGH("[%s] Callback PinchStart : Dev=%d OtherDev=%d Center(%d,%d) Dist=%d", pData->alias, ev->device, other->device, centerX, centerY, dist); - - if ( pData->cb.onPinchStart ) - { - pData->center.x = centerX; - pData->center.y = centerY; - pData->center.timestamp = ev->timestamp; - pData->pinch_dist = dist; - - (pData->cb.onPinchStart)(pData->obj, &pData->center, dist, pData->pClientData); - } - - pData->prev_dist = dist; - - MSG_MOUSE_HIGH("[%s] Two fingure is clicked. Distance=%d", pData->alias, pData->prev_dist); - } - else - { - MSG_MOUSE_WARN("[%s] Ignore third finger! State=%d Dev=%d bPressed(%d,%d,%d)", pData->alias, pData->m_state, ev->device, - pData->bDown[0], - pData->bDown[1], - pData->bDown[2]); - - return ; - } - - pData->event[pressed] = *ev; - pData->down[pressed] = *ev; - - return ; -} - - -static void _on_mouse_up(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *event_info) -{ - - if ( data == NULL ) - { - MSG_MOUSE_ERROR("Debug me!!!!"); - return; - } - - mouse_data_t *pData = (mouse_data_t *)data; - MouseEvent *ev = event_info; - - int pressed = ev->device; - - if(pressed >= NUM_MAX_BUTTON) - { - MSG_MOUSE_FATAL("Invalid Pressed(%d)", pressed); - return; - } - - if ( pData->m_state == MOUSE_DOWN_UNKNWON ) - { - MSG_MOUSE_ERROR("[%s] Something wrong. Dev=%d", pData->alias, ev->device); - MSG_MOUSE_ERROR("[%s] Error! State=%d Dev=%d bPressed(%d,%d,%d)", pData->alias, pData->m_state, ev->device, - pData->bDown[0], - pData->bDown[1], - pData->bDown[2]); - - } - - if ( pData->m_state == MOUSE_DOWN_NONE ) - { - MSG_MOUSE_WARN("[%s] Mouse up is detected. but state is NONE.", pData->alias); - pData->bDown[0] = pData->bDown[1] = pData->bDown[2] = 0; - return; - } - - pData->m_state--; - - if ( pData->bDown[pressed] == false ) - { - MSG_MOUSE_ERROR("[%s] Something wrong", pData->alias); - MSG_MOUSE_ERROR("[%s] Error! State=%d Dev=%d bPressed(%d,%d,%d)", pData->alias, pData->m_state, ev->device, - pData->bDown[0], - pData->bDown[1], - pData->bDown[2]); - } - - if ( ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) - { - MSG_MOUSE_HIGH("[%s] %s On Hold. Dev=%d", pData->alias, __func__, ev->device); - pData->bHold[pressed] = true; - } - - pData->bDown[pressed] = false; - - if ( pData->m_state == MOUSE_DOWN_1 ) - { - MSG_MOUSE_HIGH("[%s] Callback Pinch End", pData->alias); - - if ( pData->cb.onPinchEnd ) - { - pData->bSendPinchStart = false; - (pData->cb.onPinchEnd)(pData->obj, ev, pData->pClientData); - } - } - else if ( pData->m_state == MOUSE_DOWN_NONE ) - { - MSG_MOUSE_HIGH("[%s] Callback Mouse Up : Dev=%d (%d,%d)", pData->alias, ev->device, ev->x, ev->y); - - if ( ev->button_flags & EVAS_BUTTON_DOUBLE_CLICK) - { - if ( pData->cb.onMouseDlbClick ) - { - (pData->cb.onMouseDlbClick)(pData->obj, ev, pData->pClientData); - } - MSG_MOUSE_HIGH("[%s] %s Double click detected. Dev=%d (%d,%d)", pData->alias, __func__, ev->device, ev->x, ev->y); - } - if ( pData->cb.onMouseUp ) - { - (pData->cb.onMouseUp)(pData->obj, ev, pData->pClientData); - } - - pData->prve_up[pressed] = *ev; - - MSG_MOUSE_MED("Func:%s State=%d Device=%d XY(%d,%d)", "_on_mouse_up", pData->m_state, pressed, ev->x , ev->y); - } - - return ; - -} - -static void _on_mouse_move(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *event_info) -{ - if ( data == NULL ) - { - MSG_MOUSE_ERROR("Debug me!!!!"); - return; - } - - mouse_data_t *pData = (mouse_data_t *)data; - MouseEvent *ev = event_info; - - int pressed = ev->device; - - if ( ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) - { - MSG_MOUSE_HIGH("[%s] %s On Hold. Dev=%d", pData->alias, __func__, ev->device); - } - - if(pressed >= NUM_MAX_BUTTON) - { - MSG_MOUSE_FATAL("Invalid Pressed(%d)", pressed); - return; - } - - if ( pData->bDown[pressed] == false) - { - // Move event prior down should be ignored - MSG_MOUSE_MED("Ignore move event before click"); - return ; - } - - switch ( pData->m_state ) - { - case MOUSE_DOWN_3: - // Ignore Mouse Event when all 3 buttons is pressed. - return ; - case MOUSE_DOWN_2: - { - MouseEvent *other = NULL; - - if ( pData->bDown[ (pressed + 1) % NUM_MAX_BUTTON] == true ) - { - other = &pData->event[(pressed + 1) % NUM_MAX_BUTTON]; - } - - if ( pData->bDown[(pressed + 2) % NUM_MAX_BUTTON] == true ) - { - if ( other != NULL ) - { - MSG_MOUSE_ERROR("Debug me!!!"); - } - other = &pData->event[(pressed + 2) % NUM_MAX_BUTTON]; - } - - if ( other == NULL ) - { - MSG_MOUSE_ERROR("[%s] Error! Pressed(%d,%d,%d)", pData->alias, - pData->bDown[0], - pData->bDown[1], - pData->bDown[2]); - - return; - } - - int centerX = ( other->x + ev->x ) / 2; - int centerY = ( other->y + ev->y ) / 2; - - int dist = _get_distance(other->x, other->y, ev->x, ev->y); - - if ( pData->cb.onPinchMove ) - { - MSG_MOUSE_MED("Callback Pinch : (%d,%d) dDistance=%d", centerX, centerY, dist - pData->prev_dist); - - pData->center.x = centerX; - pData->center.y = centerY; - pData->center.timestamp = ev->timestamp; - pData->pinch_dist = dist; - - (pData->cb.onPinchMove)(pData->obj, &pData->center, pData->pinch_dist , pData->pClientData); - } - - pData->prev_dist = dist; - - MSG_MOUSE_LOW("Pinch zoom. Pos1(%d,%d) Pos2(%d,%d) Delta=%d", other->x, other->y, ev->x, ev->y, pData->prev_dist); - - pData->event[pressed] = *ev; - - return ; - } - break; - case MOUSE_DOWN_1: - { - MSG_MOUSE_MED("Func:%s. Device=%d Old(%d,%d) Cur(%d,%d)", __FUNCTION__, pressed, - pData->event[pressed].x, pData->event[pressed].y, - ev->x , ev->y); - - if ( pData->cb.onMouseMove ) - { - MSG_MOUSE_MED("[%s] Callback Mouse Move : (%d,%d)", pData->alias, ev->x, ev->y); - (pData->cb.onMouseMove)(pData->obj, &pData->event[pressed], ev, pData->pClientData); - } - - pData->event[pressed] = *ev; - - break; - } - default: - MSG_MOUSE_ERROR("[%s] Something wrong. state=%d", pData->alias, pData->m_state); - break; - - } - - return ; -} - - - -static void _proxy_on_mouse_down(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *event_info) -{ - Evas_Event_Mouse_Down *ev = event_info; - - MouseEvent event; - - event.device = 0; - event.timestamp = ev->timestamp; - event.x = ev->canvas.x; - event.y = ev->canvas.y; - event.button_flags = ev->flags; - event.event_flags = ev->event_flags; - - MSG_MOUSE_MED("%s Dev=%d Button=%d Flags=%d Event=%d", __func__, (int)ev->dev, ev->button, ev->flags, ev->event_flags); - - _on_mouse_down(data, NULL, obj, (void *)&event); -} - -static void _proxy_on_mouse_up(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *event_info) -{ - Evas_Event_Mouse_Up *ev = event_info; - - MouseEvent event; - - event.device = 0; - event.timestamp = ev->timestamp; - event.x = ev->canvas.x; - event.y = ev->canvas.y; - event.button_flags = ev->flags; - event.event_flags = ev->event_flags; - - - MSG_MOUSE_MED("%s Dev=%d Button=%d Flags=%d Event=%d", __func__, (int)ev->dev, ev->button, ev->flags, ev->event_flags); - - - _on_mouse_up(data, NULL, obj, (void *)&event); -} - -static void _proxy_on_mouse_move(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *event_info) -{ - Evas_Event_Mouse_Move *ev = event_info; - - MouseEvent event; - - event.device = 0; - event.timestamp = ev->timestamp; - event.x = ev->cur.canvas.x; - event.y = ev->cur.canvas.y; - event.button_flags = 0; - event.event_flags = ev->event_flags; - - MSG_MOUSE_MED("%s Dev=%d Button=%d Event=%d Prev(%d,%d) Cur(%d,%d)", __func__, (int)ev->dev, ev->buttons, ev->event_flags, - ev->prev.canvas.x, ev->prev.canvas.y, ev->cur.canvas.x, ev->cur.canvas.y); - - _on_mouse_move(data, NULL, obj, (void *)&event); - -} - -static void _proxy_on_mouse_multi_down(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *event_info) -{ - Evas_Event_Multi_Down *ev = event_info; - mouse_data_t *pData = data; - - MouseEvent event; - - if ( pData->multi_min_idx == INVALID_DEVICE_ID) - { - MSG_MOUSE_HIGH("[%s] Min Device Index=%d", pData->alias, ev->device); - pData->multi_min_idx = ev->device -1; // Index start from 0. so -1 is needed - } - - event.device = ev->device - pData->multi_min_idx; // ev->device is 10(for second), 11(3rd), 12(4th) finger - event.timestamp = ev->timestamp; - event.x = ev->canvas.x; - event.y = ev->canvas.y; - event.button_flags = 0; - event.event_flags = ev->event_flags; - - - if(event.device >= NUM_MAX_BUTTON) - { - MSG_MOUSE_FATAL("[%s] Invalid Device. Dev=%d Min=%d", pData->alias, event.device, pData->multi_min_idx); - return; - } - - MSG_MOUSE_MED("%s Dev=%d", __func__, ev->device); - - _on_mouse_down(data, NULL, obj, (void *)&event); -} - -static void _proxy_on_mouse_multi_up(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *event_info) -{ - Evas_Event_Multi_Up *ev = event_info; - mouse_data_t *pData = data; - - MouseEvent event; - - if ( pData->multi_min_idx == INVALID_DEVICE_ID) - { - // Sometimes Multi up came ealry - MSG_MOUSE_HIGH("[%s] Min Device Index=%d", pData->alias, ev->device); - pData->multi_min_idx = ev->device -1; // Index start from 0. so -1 is needed - } - - event.device = ev->device - pData->multi_min_idx; - event.timestamp = ev->timestamp; - event.x = ev->canvas.x; - event.y = ev->canvas.y; - event.button_flags = 0; - event.event_flags = ev->event_flags; - - if(event.device >= NUM_MAX_BUTTON) - { - MSG_MOUSE_FATAL("[%s] Invalid Device. Dev=%d Min=%d", pData->alias, event.device, pData->multi_min_idx); - return; - } - - MSG_MOUSE_MED("%s Dev=%d", __func__, ev->device); - - _on_mouse_up(data, NULL, obj, (void *)&event); - -} - -static void _proxy_on_mouse_multi_move(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *event_info) -{ - Evas_Event_Multi_Move *ev = event_info; - mouse_data_t *pData = data; - - MouseEvent event; - - if ( pData->multi_min_idx == INVALID_DEVICE_ID) - { - // Mouse Move come faster than Mouse down - MSG_MOUSE_HIGH("[%s] Min Device Index=%d", pData->alias, ev->device); - pData->multi_min_idx = ev->device -1; - } - - event.device = ev->device - pData->multi_min_idx; - event.timestamp = ev->timestamp; - event.x = ev->cur.canvas.x; - event.y = ev->cur.canvas.y; - event.button_flags = 0; - event.event_flags = ev->event_flags; - - if(event.device >= NUM_MAX_BUTTON) - { - MSG_MOUSE_FATAL("[%s] Invalid Device. Dev=%d Min=%d", pData->alias, event.device, pData->multi_min_idx); - return; - } - - MSG_MOUSE_MED("%s Dev=%d", __func__, ev->device); - - _on_mouse_move(data, NULL, obj, (void *)&event); -} - -Ivug_Event_Handle -ivug_mouse_event_add(Evas_Object *obj, mouse_callback_t *pCallback, void *client_data, const char *alias) -{ - mouse_data_t *pData = NULL; - - pData = calloc(1, sizeof(mouse_data_t)); - - pData->obj = obj; - pData->pClientData = client_data; - pData->m_state = MOUSE_DOWN_NONE; - pData->multi_min_idx = INVALID_DEVICE_ID; - strncpy(pData->alias, alias, sizeof(pData->alias) -1); - - memcpy(&pData->cb, pCallback, sizeof(mouse_callback_t)); - - evas_object_event_callback_add(pData->obj, EVAS_CALLBACK_MOUSE_DOWN, _proxy_on_mouse_down, pData); - evas_object_event_callback_add(pData->obj, EVAS_CALLBACK_MOUSE_UP, _proxy_on_mouse_up, pData); - evas_object_event_callback_add(pData->obj, EVAS_CALLBACK_MOUSE_MOVE, _proxy_on_mouse_move, pData); - evas_object_event_callback_add(pData->obj, EVAS_CALLBACK_MULTI_DOWN, _proxy_on_mouse_multi_down, pData); - evas_object_event_callback_add(pData->obj, EVAS_CALLBACK_MULTI_UP, _proxy_on_mouse_multi_up, pData); - evas_object_event_callback_add(pData->obj, EVAS_CALLBACK_MULTI_MOVE, _proxy_on_mouse_multi_move, pData); - - MSG_MOUSE_HIGH("Mouse Event Handler Add : Alias(%s) 0x%08x for Object(0x%08x)", alias, pData, obj); - - return (Ivug_Event_Handle *)pData; -} - - -void ivug_mouse_event_del(Ivug_Event_Handle handle) -{ - mouse_data_t *pData = handle; - - evas_object_event_callback_del(pData->obj, EVAS_CALLBACK_MOUSE_DOWN, _proxy_on_mouse_down); - evas_object_event_callback_del(pData->obj, EVAS_CALLBACK_MOUSE_UP, _proxy_on_mouse_up); - evas_object_event_callback_del(pData->obj, EVAS_CALLBACK_MOUSE_MOVE, _proxy_on_mouse_move); - evas_object_event_callback_del(pData->obj, EVAS_CALLBACK_MULTI_DOWN, _proxy_on_mouse_multi_down); - evas_object_event_callback_del(pData->obj, EVAS_CALLBACK_MULTI_UP, _proxy_on_mouse_multi_up); - evas_object_event_callback_del(pData->obj, EVAS_CALLBACK_MULTI_MOVE, _proxy_on_mouse_multi_move); - - MSG_MOUSE_HIGH("Mouse Event Handler Remove : 0x%08x", pData); - - free(handle); -} - - - diff --git a/common/src/ivug-util.c b/common/src/ivug-util.c index ed78bbf..e23a4a0 100755 --- a/common/src/ivug-util.c +++ b/common/src/ivug-util.c @@ -1,46 +1,39 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 "ivug-define.h" #include "ivug-uuid.h" #include "ivug-util.h" +#include "ivug-file-util.h" #include "ivug-debug.h" #include "ivug-file-info.h" - #include "ivug-db.h" #include #include - #include - -#include #include - -#include // mkdir -#include // mkdir - +#include +#include #include -#include -#include - -#include +#include #include #include @@ -49,6 +42,7 @@ #include #include + /* If filepath is web url, return TRUE. @@ -67,12 +61,9 @@ bool ivug_is_web_uri(const char* uri) }; int i = 0; - while (web_protocal_name[i] != NULL) - { - if ( strlen(uri) > strlen(web_protocal_name[i]) ) - { - if (strncmp(uri, web_protocal_name[i], strlen(web_protocal_name[i])) == 0) - { + while (web_protocal_name[i] != NULL) { + if (strlen(uri) > strlen(web_protocal_name[i])) { + if (strncmp(uri, web_protocal_name[i], strlen(web_protocal_name[i])) == 0) { return true; } } @@ -85,6 +76,32 @@ bool ivug_is_web_uri(const char* uri) return false; } +bool ivug_is_tel_uri(const char* uri) +{ +//check file url type. local , http, ftp. + IV_ASSERT(uri != NULL); + + static const char* tel_protocal_name[] = + { + "tel:", + NULL, + }; + + int i = 0; + while (tel_protocal_name[i] != NULL) { + if (strlen(uri) > strlen(tel_protocal_name[i])) { + if (strncmp(uri, tel_protocal_name[i], strlen(tel_protocal_name[i])) == 0) { + return true; + } + } + + i++; + } + + MSG_UTIL_MED("Not tel uri. %s", uri); + + return false; +} unsigned int get_distance(int prevX, int prevY, int X, int Y) { @@ -94,8 +111,6 @@ unsigned int get_distance(int prevX, int prevY, int X, int Y) return sqrt(dx*dx + dy*dy); } - - #define USE_ECORE_FILE #include @@ -107,24 +122,21 @@ unsigned int get_distance(int prevX, int prevY, int X, int Y) bool ivug_remove_file(const char *filepath) { char error_msg[256]; - if (ecore_file_exists(filepath) == EINA_FALSE) - { + if (ivug_file_exists(filepath) == EINA_FALSE) { MSG_UTIL_ERROR("Already removed.%s", filepath); return true; } #ifdef USE_ECORE_FILE - if ( ecore_file_unlink(filepath) == EINA_FALSE) - { - MSG_UTIL_ERROR("Cannot remove file : %s %s", filepath, strerror_r(errno, error_msg, sizeof(error_msg)) ); + if (ivug_file_unlink(filepath) == EINA_FALSE) { + MSG_UTIL_ERROR("Cannot remove file : %s %s", filepath, strerror_r(errno, error_msg, sizeof(error_msg))); return false; } return true; #else - if ( unlink(filepath) != 0 ) - { - MSG_UTIL_ERROR("Cannot remove file : %s %s", filepath, strerror_r(errno, error_msg, sizeof(error_msg)) ); + if (unlink(filepath) != 0) { + MSG_UTIL_ERROR("Cannot remove file : %s %s", filepath, strerror_r(errno, error_msg, sizeof(error_msg))); return false; } @@ -134,29 +146,30 @@ bool ivug_remove_file(const char *filepath) bool ivug_rename_file(const char *src, const char *dst) { - if (ecore_file_exists(src) == EINA_FALSE) - { - MSG_UTIL_ERROR("Source file is not exist : %s", src); + if (!src) { + MSG_UTIL_ERROR("source path is NULL"); return false; } - if (ecore_file_exists(dst) == EINA_TRUE) - { - MSG_UTIL_ERROR("Destination file is exist : %s", dst); + if (!dst) { + MSG_UTIL_ERROR("Destination path is NULL"); return false; } - if (dst == NULL) - { - MSG_UTIL_ERROR("Destination file is NULL"); + if (ivug_file_exists(src) == EINA_FALSE) { + MSG_UTIL_ERROR("Source file is not exist : %s", src); return false; } - char error_msg[256]; + if (ivug_file_exists(dst) == EINA_TRUE) { + MSG_UTIL_ERROR("Destination file is exist : %s", src); + return false; + } - if ( rename(src, dst) < 0) - { - MSG_UTIL_ERROR("Cannot rename from %s to %s : %s", src, dst, strerror_r(errno, error_msg, sizeof(error_msg)) ); + char error_msg[256] = {0,}; + + if (rename(src, dst) < 0) { + MSG_UTIL_ERROR("Cannot rename from %s to %s : %s", src, dst, strerror_r(errno, error_msg, sizeof(error_msg))); return false; } @@ -166,22 +179,19 @@ bool ivug_rename_file(const char *src, const char *dst) bool ivug_copy_file(const char *filename, const char *dest) { #define DIR_MASK_DEFAULT 0775 - if ( filename == NULL) - { + if (filename == NULL) { MSG_MAIN_ERROR("File does not existfilepath=%s", filename); return false; } - if(ecore_file_cp(filename, dest) == EINA_FALSE) - { - MSG_MAIN_ERROR("ecore_file_cp failed. From %s To %s", filename, dest); + if (ivug_file_cp(filename, dest) == EINA_FALSE) { + MSG_MAIN_ERROR("ivug_file_cp failed. From %s To %s", filename, dest); return false; } return true; } - char * ivug_mktemp(char* filepath, char*ext) { @@ -193,18 +203,17 @@ ivug_mktemp(char* filepath, char*ext) snprintf(tempname, sizeof(tempname), "%s_0.%s",filepath, ext); int i = 1; - while(ecore_file_exists(tempname) == EINA_TRUE ) - { +// TODO : Will implement with another algorithm + while (ivug_file_exists(tempname) == EINA_TRUE) { snprintf(tempname, sizeof(tempname),"%s_%d.%s", filepath, i, ext); i++; } - MSG_IVUG_HIGH( " tempname %s, i %d", tempname, i); + MSG_IVUG_HIGH(" tempname %s, i %d", tempname, i); return strdup(tempname); } - /* Check whether given filepath file exists @@ -214,8 +223,7 @@ bool ivug_is_file_exist(const char* filepath) { IV_ASSERT(filepath != NULL); - if ( ecore_file_exists(filepath) == EINA_TRUE) - { + if (ivug_file_exists(filepath) == EINA_TRUE) { return true; } @@ -228,45 +236,41 @@ bool ivug_is_file_exist(const char* filepath) */ char *ivug_get_directory(const char *filepath) { - if ( filepath == NULL ) - { + if (filepath == NULL) { MSG_UTIL_WARN("File path is NULL"); return "NULL"; } #ifdef USE_ECORE_FILE - return ecore_file_dir_get(filepath); + return ivug_dir_get(filepath); #else #error "Not implemented yet." #endif } - /* Returns start pointer of filename within filepath. No memory allocated in this function. so user do not free returned pointer. CAUTION : filepath cannot be NULL. */ -char * ivug_get_filename(const char *filepath) +const char * ivug_get_filename(const char *filepath) { - if ( filepath == NULL ) - { + if (filepath == NULL) { MSG_UTIL_WARN("File path is NULL"); return "NULL"; } #ifdef USE_ECORE_FILE - return ecore_file_file_get(filepath); + return ivug_file_get(filepath); #else #define DIRECORY_SPLITTER '/' - const char*pFileName = NULL; + const char *pFileName = NULL; pFileName = strrchr(filepath, DIRECORY_SPLITTER); - if ( pFileName == NULL) // If not found - { + if (pFileName == NULL) { // If not found return filepath; } @@ -278,13 +282,15 @@ char * ivug_get_filename(const char *filepath) bool ivug_prohibit_lcd_off(void) { MSG_UTIL_MED("START : Sleep disabled"); - return (power_lock_state(POWER_STATE_NORMAL, 0)==0 ? true : false); +// return (power_lock_state(POWER_STATE_NORMAL, 0)==0 ? true : false); + return false; } bool ivug_allow_lcd_off(void) { MSG_UTIL_MED("END : Sleep disabled"); - return (power_unlock_state(POWER_STATE_NORMAL)==0 ? true : false); +// return (power_unlock_state(POWER_STATE_NORMAL)==0 ? true : false); + return false; } long int ivug_atox(const char *number) @@ -296,15 +302,13 @@ long int ivug_atox(const char *number) val = strtoll(number, &endptr, 16); - if((errno == ERANGE && (val == LLONG_MAX || val == LLONG_MIN)) || (errno != 0 && val == 0)) - { + if ((errno == ERANGE && (val == LLONG_MAX || val == LLONG_MIN)) || (errno != 0 && val == 0)) { MSG_UTIL_ERROR("ERANGE = %d, LONG_MAX = %d, LONG_MIN = %d", ERANGE, LLONG_MAX, LLONG_MIN); MSG_UTIL_ERROR("strtol, val = %d, 0x%x, errno = %d, ", val, val, errno); return -1L; } - if(endptr == number) - { + if (endptr == number) { MSG_UTIL_ERROR("No digits were found, number = %s", number); return -1L; } @@ -321,14 +325,12 @@ int ivug_atoi(const char *number) val = strtol(number, &endptr, 10); - if((errno == ERANGE && (val == LONG_MAX || val == LONG_MIN)) || (errno != 0 && val == 0)) - { + if ((errno == ERANGE && (val == LONG_MAX || val == LONG_MIN)) || (errno != 0 && val == 0)) { MSG_UTIL_ERROR("strtol, val = %d", val); return -1; } - if(endptr == number) - { + if (endptr == number) { MSG_UTIL_ERROR("No digits were found, number = %s", number); return -1; } @@ -345,14 +347,12 @@ double ivug_atod(const char *number) val = strtod(number, &endptr); - if((errno == ERANGE && (val == -HUGE_VAL || val == HUGE_VAL)) || (errno != 0 && val == 0)) - { + if ((errno == ERANGE && (val == -HUGE_VAL || val == HUGE_VAL)) || (errno != 0 && val == 0)) { MSG_UTIL_ERROR("strtod, val = %d", val); return -1; } - if(endptr == number) - { + if (endptr == number) { MSG_UTIL_ERROR("No digits were found, number = %s", number); return -1; } @@ -360,7 +360,7 @@ double ivug_atod(const char *number) return val; } -char * ivug_generate_file_name(const char *filepath, const char *extension, const char *dest_dir) +char * ivug_generate_file_name(const char *filepath, const char *extension, const char *dest_dir, bool hide) { IV_ASSERT(filepath != NULL); @@ -368,55 +368,48 @@ char * ivug_generate_file_name(const char *filepath, const char *extension, cons char tempname[IVUG_MAX_FILE_PATH_LEN+1] = {0,}; char *ext = NULL; - char *filename = ecore_file_strip_ext(ecore_file_file_get(filepath)); + char *filename = ivug_strip_ext(ivug_file_get(filepath)); char *dir = NULL; - if(extension) - { + if (extension) { ext = strdup(extension); - } - else - { + } else { ext = ivug_fileinfo_get_file_extension(filepath); } - if(dest_dir) - { + if (dest_dir) { dir = strdup(dest_dir); - } - else - { - dir = ecore_file_dir_get(filepath); + } else { + dir = ivug_get_directory(filepath); } int i = 0; - for(i=1; i // for NULL #include // free #include // strdup -UUID uuid_assign(UUID id) +inline UUID uuid_assign(UUID id) { #ifdef _USE_MEDIAINFO_STRINGID_ - if ( id == NULL ) + if (id == NULL) return NULL; return strdup(id); @@ -32,16 +33,16 @@ UUID uuid_assign(UUID id) } -void uuid_free(UUID id) +inline void uuid_free(UUID id) { #ifdef _USE_MEDIAINFO_STRINGID_ - if ( id != NULL ) + if (id != NULL) free((void *)id); #endif } -int uuid_compare(UUID id1, UUID id2) +inline int uuid_compare(UUID id1, UUID id2) { #ifdef _USE_MEDIAINFO_STRINGID_ return strcmp(id1, id2); @@ -50,10 +51,10 @@ int uuid_compare(UUID id1, UUID id2) #endif } -const char *uuid_getchar(UUID id) +inline const char *uuid_getchar(UUID id) { #ifdef _USE_MEDIAINFO_STRINGID_ - if ( id == NULL ) + if (id == NULL) { return "NULL"; } @@ -63,7 +64,7 @@ const char *uuid_getchar(UUID id) { static char buffer[255]; - sprintf(buffer, "%d", id); + snprintf(buffer, 255, "%d", id); return buffer; } @@ -72,9 +73,9 @@ const char *uuid_getchar(UUID id) } -UUID uuid_getuuid(const char *szID) +inline UUID uuid_getuuid(const char *szID) { - if ( szID == NULL ) + if (szID == NULL) { return INVALID_UUID; } @@ -87,7 +88,7 @@ UUID uuid_getuuid(const char *szID) } -bool uuid_is_valid(UUID id) +inline bool uuid_is_valid(UUID id) { return (id != INVALID_UUID) ? true : false; } diff --git a/common/src/statistics.c b/common/src/statistics.c index 3ea152a..746b71e 100755 --- a/common/src/statistics.c +++ b/common/src/statistics.c @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 // gettimeofday @@ -74,7 +75,7 @@ static void PrintLog(const char *file, int line, const char *msg, ...) va_end(va); } -#define MyPrintf(...) PrintLog(__FILE__, __LINE__, ##__VA_ARGS__ ) +#define MyPrintf(...) PrintLog(__FILE__, __LINE__, ##__VA_ARGS__) // internal func. @@ -96,8 +97,8 @@ int IV_PERF_INIT(void) return 0; } - g_accums = (iv_ta_accum_item **) malloc ( MM_TA_MAX_ACCUM * sizeof(iv_ta_accum_item *) ); - if(!g_accums) + g_accums = (iv_ta_accum_item **) malloc (MM_TA_MAX_ACCUM * sizeof(iv_ta_accum_item *)); + if (!g_accums) { assert(0); return -1; @@ -112,7 +113,7 @@ int IV_PERF_INIT(void) int IV_PERF_DEINIT(void) { - if ( ! g_accums ) + if (! g_accums) { return 0; } @@ -132,9 +133,9 @@ static int __get_accum_index(int lvl, const char* name) assert(name); // find index - for ( i = 0; i < g_accum_index; i++ ) + for (i = 0; i < g_accum_index; i++) { - if ( (lvl == g_accums[i]->lvl) && (strcmp( name, g_accums[i]->name ) == 0) ) + if ((lvl == g_accums[i]->lvl) && (strcmp(name, g_accums[i]->name) == 0)) return i; } @@ -145,17 +146,17 @@ static void __free_accums(void) { int i = 0; - if ( ! g_accums ) + if (! g_accums) return; - for ( i = 0; i < g_accum_index; i++ ) + for (i = 0; i < g_accum_index; i++) { - if ( g_accums[i] ) + if (g_accums[i]) { - if ( g_accums[i]->name ) - free ( g_accums[i]->name ); + if (g_accums[i]->name) + free (g_accums[i]->name); - free ( g_accums[i] ); + free (g_accums[i]); g_accums[i] = NULL; } @@ -164,7 +165,7 @@ static void __free_accums(void) g_accum_index = 0; g_accum_longest_name = 0; - free ( g_accums ); + free (g_accums); g_accums = NULL; } @@ -180,28 +181,28 @@ int iv_ta_accum_item_begin(int lvl, const char* name, bool show, const char* fil if (!g_accums) return 0; - if ( g_accum_index == MM_TA_MAX_ACCUM ) + if (g_accum_index == MM_TA_MAX_ACCUM) return -1; - if ( !name ) + if (!name) return -1; name_len = strlen(name) + (lvl * 2); - if( name_len == 0 ) + if (name_len == 0) return -1; // if 'name' is new one. create new item. - if ( (index = __get_accum_index(lvl, name)) == -1 ) + if ((index = __get_accum_index(lvl, name)) == -1) { - accum = ( iv_ta_accum_item * ) malloc( sizeof( iv_ta_accum_item ) ); - if ( !accum ) + accum = (iv_ta_accum_item *) malloc(sizeof(iv_ta_accum_item)); + if (!accum) { assert(0); return -1; } // clear first. - memset( accum, 0, sizeof (iv_ta_accum_item) ); + memset(accum, 0, sizeof (iv_ta_accum_item)); accum->elapsed_min = MAX_UINT64; accum->name = strdup(name); @@ -210,7 +211,7 @@ int iv_ta_accum_item_begin(int lvl, const char* name, bool show, const char* fil g_accums[g_accum_index] = accum; g_accum_index++; - if ( g_accum_longest_name < name_len ) + if (g_accum_longest_name < name_len) g_accum_longest_name = name_len; } @@ -230,21 +231,21 @@ int iv_ta_accum_item_begin(int lvl, const char* name, bool show, const char* fil accum->on_estimate = 1; // get timestamp - gettimeofday( &t, NULL ); - accum->timestamp = t.tv_sec * 1000000UL + t.tv_usec; + gettimeofday(&t, NULL); + accum->timestamp = t.tv_sec * 1000000ULL + t.tv_usec; - if ( accum->first_start == 0 ) + if (accum->first_start == 0) { // assum that timestamp never could be zero. accum->first_start = accum->timestamp; - if ( g_accum_first_time > accum->first_start ) + if (g_accum_first_time > accum->first_start) { g_accum_first_time = accum->first_start ; } } - if ( show ) - MyPrintf("[ACCUM BEGIN] %s : %ld ---(%s:%d)\n", name, accum->timestamp, filename, line ); + if (show) + MyPrintf("[ACCUM BEGIN] %s : %ld ---(%s:%d)\n", name, accum->timestamp, filename, line); accum->num_calls++; @@ -261,17 +262,17 @@ int iv_ta_accum_item_end(int lvl, const char* name, bool show, const char* filen if (!g_accums) return 0; - if ( g_accum_index == MM_TA_MAX_ACCUM ) + if (g_accum_index == MM_TA_MAX_ACCUM) return -1; - if ( !name ) + if (!name) return -1; - if( strlen ( name ) == 0 ) + if (strlen (name) == 0) return -1; // varify the 'name' is already exist. - if ( (index = __get_accum_index(lvl, name)) == -1 ) + if ((index = __get_accum_index(lvl, name)) == -1) { MyPrintf("[%s] is not added before!\n", name); return -1; @@ -288,19 +289,12 @@ int iv_ta_accum_item_end(int lvl, const char* name, bool show, const char* filen } // get time first for more accuracy. - gettimeofday( &t, NULL ); - tval = t.tv_sec*1000000UL + t.tv_usec; + gettimeofday(&t, NULL); + tval = t.tv_sec*1000000ULL + t.tv_usec; // update last_end accum->last_end = tval; -#if 0 - if ( accum->first_start > accum->last_end ) - { - MyPrintf("Invalied timestamp:%s. Start:%lu End=%lu\n", accum->name, accum->first_start , accum->last_end); - } -#endif - // make get elapsed time. tval = tval - accum->timestamp; @@ -308,8 +302,8 @@ int iv_ta_accum_item_end(int lvl, const char* name, bool show, const char* filen accum->elapsed_max = tval > accum->elapsed_max ? tval : accum->elapsed_max; accum->elapsed_min = tval < accum->elapsed_min ? tval : accum->elapsed_min; - if ( show ) - MyPrintf("[ACCUM END] %s : %llu + %llu ---(%s:%d)\n", name, accum->elapsed_accum, tval, filename, line ); + if (show) + MyPrintf("[ACCUM END] %s : %llu + %llu ---(%s:%d)\n", name, accum->elapsed_accum, tval, filename, line); // add elapsed time accum->elapsed_accum = accum->elapsed_accum + tval; @@ -332,15 +326,15 @@ void __print_some_info(FILE* fp) // time and date time(&t_val); - fprintf(fp, "Date : %s", ctime(&t_val) ); + fprintf(fp, "Date : %s", ctime(&t_val)); // system - if ( gethostname(hostname, 255) == 0 ) + if (gethostname(hostname, 255) == 0) { fprintf(fp, "Hostname : %s\n", hostname); } #ifdef LINUX - if ( uname(&uts) >= 0 ) + if (uname(&uts) >= 0) { fprintf(fp, "System : %s\n", uts.sysname); fprintf(fp, "Machine : %s\n", uts.machine); @@ -350,12 +344,12 @@ void __print_some_info(FILE* fp) } // process info. - fprintf(fp, "Process priority : %d\n", getpriority(PRIO_PROCESS, getpid()) ); + fprintf(fp, "Process priority : %d\n", getpriority(PRIO_PROCESS, getpid())); getrusage(RUSAGE_SELF, &r_usage); fprintf(fp, "CPU usage : User = %ld.%06ld, System = %ld.%06ld\n", r_usage.ru_utime.tv_sec, r_usage.ru_utime.tv_usec, - r_usage.ru_stime.tv_sec, r_usage.ru_stime.tv_usec ); + r_usage.ru_stime.tv_sec, r_usage.ru_stime.tv_usec); #endif } @@ -366,7 +360,7 @@ void __print_some_info(FILE* fp) char** env = environ; fprintf(fp, "\n[[ Host environment variables ]]\n"); - while(*env) + while (*env) { fprintf(fp, "%s\n", *env); env++; @@ -383,7 +377,7 @@ void __print_some_info(FILE* fp) void iv_ta_accum_show_result_fp(FILE *fp) { int i = 0; - char format[256]; + char format[256] = {0,}; __print_some_info(fp); @@ -397,55 +391,40 @@ void iv_ta_accum_show_result_fp(FILE *fp) snprintf(format, (size_t)sizeof(format), "[%%3d] [%%3d] %%-%ds %%10llu %%10llu %%6lu %%10llu %%10llu %%4s \n", g_accum_longest_name); - for ( i = 0; i < g_accum_index; i++ ) + for (i = 0; i < g_accum_index; i++) { // prevent 'devide by zero' error if (g_accums[i]->num_calls == 0) g_accums[i]->num_calls = 1; - static char space[256]; + char space[256] = {0,}; int j; - for ( j = 0; j < g_accums[i]->lvl * 2; j++) + for (j = 0; j < g_accums[i]->lvl * 2; j++) { space[j] = '_'; } - space[g_accums[i]->lvl*2] = '\0'; - - fprintf(fp, - format, - i, - g_accums[i]->lvl, - strcat(space, g_accums[i]->name), - (g_accums[i]->elapsed_accum == 0)?0:(g_accums[i]->elapsed_accum / g_accums[i]->num_calls), // Fix it! : devide by zero. - g_accums[i]->elapsed_accum, - g_accums[i]->num_calls, - g_accums[i]->elapsed_min, - g_accums[i]->elapsed_max, - g_accums[i]->num_unpair == 1 ? "F" : "T" ); + space[g_accums[i]->lvl * 2] = '\0'; + + if (strlen(g_accums[i]->name) < 256) { + fprintf(fp, + format, + i, + g_accums[i]->lvl, + strncat(space, g_accums[i]->name, strlen(g_accums[i]->name)), + (g_accums[i]->elapsed_accum == 0) ? 0 : (g_accums[i]->elapsed_accum / g_accums[i]->num_calls), // Fix it! : devide by zero. + g_accums[i]->elapsed_accum, + g_accums[i]->num_calls, + g_accums[i]->elapsed_min, + g_accums[i]->elapsed_max, + g_accums[i]->num_unpair == 1 ? "F" : "T"); + } } fprintf(fp, "============================ END RESULT ACCUM ============================\n"); } -#if 0 -#define _CONSTRUCTOR __attribute__ ((constructor)) -#define _DESTRUCTOR __attribute__ ((destructor)) - -static void _CONSTRUCTOR _DLLInit(void) -{ - IV_PERF_INIT(); -} - -static void _DESTRUCTOR _DLLExit(void) -{ - IV_PERF_DEINIT(); - -} -#endif - - #ifdef STANDALONE int main(int argc, char* argv[]) { @@ -454,15 +433,15 @@ int main(int argc, char* argv[]) PERF_CHECK_BEGIN(LVL1, "Test 1"); - for ( a = 0 ; a < 10; a++) + for (a = 0 ; a < 10; a++) { - printf("AAA=%d\n", a); + MyPrintF("AAA=%d\n", a); usleep(1*10E6); } PERF_CHECK_END(LVL1, "Test 1"); - printf("Test 111\n"); + MyPrintF("Test 111\n"); return 0; } #endif diff --git a/feature/CMakeLists.txt b/feature/CMakeLists.txt index 92b6dc0..e04dd39 100755 --- a/feature/CMakeLists.txt +++ b/feature/CMakeLists.txt @@ -5,12 +5,20 @@ SET(PREFIX ${CMAKE_INSTALL_PREFIX}) SET(VERSION 0.1.0) SET(SRCS - src/ivug-ext-ug.c + src/ivug-player.cpp + src/ivug-motion.cpp + src/ivug-vibration.c + src/ivug-transcoder.cpp + + src/exif/jpeg.cpp + + src/ivug-comment.cpp ) INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/include ${IVUG_SOURCE_COMMON_DIR}/include + ${IVUG_SOURCE_RESOURCE_DIR}/include include ) @@ -21,8 +29,14 @@ pkg_check_modules(${PROJECT_NAME}_pkgs REQUIRED ecore-x elementary dlog - ui-gadget-1 # Motion + ui-gadget-1 + deviced + #gstreamer-0.10 capi-system-sensor + capi-media-player + capi-appfw-app-manager + capi-media-image-util + capi-content-media-content ) FOREACH(flag ${${PROJECT_NAME}_pkgs_CFLAGS}) diff --git a/feature/include/ivug-comment.h b/feature/include/ivug-comment.h new file mode 100755 index 0000000..374f192 --- /dev/null +++ b/feature/include/ivug-comment.h @@ -0,0 +1,42 @@ +/* +* Copyright (c) 2000-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 __IVUG_COMMENT_H__ +#define __IVUG_COMMENT_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef void * Handle ; + +Handle ivug_comment_loadfile(const char *fname); + +void ivug_comment_set(Handle handle, const char *comment); + +const char *ivug_comment_get(Handle handle); + +void ivug_comment_savefile(Handle handle, const char *fname); + +void ivug_comment_closefile(Handle handle); + +#ifdef __cplusplus +} +#endif + +#endif // __IVUG_COMMENT_H__ + diff --git a/feature/include/ivug-ext-ug.h b/feature/include/ivug-ext-ug.h deleted file mode 100755 index 86cb243..0000000 --- a/feature/include/ivug-ext-ug.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 __IVUG_EXT_UG_H__ -#define __IVUG_EXT_UG_H__ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef void (*ug_destroy_cb)(ui_gadget_h ug, void *data); -typedef void (*ug_result_cb)(ui_gadget_h ug, service_h service, void *data); - -#define OPERATION_NAME_CALL "http://tizen.org/appcontrol/operation/call" - -/* - Launch extern module. -*/ -bool ivug_ext_launch_videoplayer_simple(const char *filepath); -bool ivug_ext_launch_videoplayer(const char *uri); - -ui_gadget_h ivug_ext_launch_wifi_file_transfer(const char *uri, ug_destroy_cb func, void *data); -ui_gadget_h ivug_ext_launch_bluetooth_print(const char *uri, ug_destroy_cb func, void *data); -ui_gadget_h ivug_ext_launch_bluetooth_send(const char *uri, ug_destroy_cb func, void *data); - -ui_gadget_h ivug_ext_launch_contact(const char *uri, ug_destroy_cb func, void *data); -ui_gadget_h ivug_ext_launch_message(const char *uri, ug_destroy_cb func, void *data); - -ui_gadget_h ivug_ext_launch_select_contact(ug_result_cb result_func, ug_destroy_cb destroy_func, void *data); - -bool ivug_ext_launch_browser(const char *uri); -bool ivug_ext_launch_email(const char *uri); -bool ivug_ext_launch_print(const char *uri); - -bool ivug_ext_launch_default(const char *uri, const char *operation, const char *pkg, void *data); -bool ivug_ext_launch_to_send(const char *uri, const char *pkg, ug_destroy_cb func, void *data, ui_gadget_h ug); - -#ifdef __cplusplus -} -#endif - -#endif //__IVUG_EXT_UG_H__ - diff --git a/feature/include/ivug-motion.h b/feature/include/ivug-motion.h new file mode 100755 index 0000000..1bedb79 --- /dev/null +++ b/feature/include/ivug-motion.h @@ -0,0 +1,44 @@ +/* +* Copyright (c) 2000-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 __IVUG_MOTION_H__ +#define __IVUG_MOTION_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum +{ + IV_MOTION_TILT, + IV_MOTION_PANNING, + IV_MOTION_MAX +}motion_type_e; + +typedef void *motion_handle_t; + +typedef void (*motion_callback_t) (motion_handle_t handle, int dx, int dy, void *data); + +motion_handle_t ivug_motion_register_sensor(motion_type_e type, motion_callback_t cb_func, void *data); +void ivug_motion_unregister_sensor(motion_type_e type, motion_handle_t); + +#ifdef __cplusplus +} +#endif + +#endif // __IVUG_MOTION_H__ +//! End of a file diff --git a/feature/include/ivug-player.h b/feature/include/ivug-player.h new file mode 100755 index 0000000..e28919c --- /dev/null +++ b/feature/include/ivug-player.h @@ -0,0 +1,107 @@ +/* +* Copyright (c) 2000-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 __IVUG_PLAYER_H__ +#define __IVUG_PLAYER_H__ + +#include + +typedef void * PlayerHandle; + +typedef enum { + IVUG_PLAYER_SURFACE_NONE, + IVUG_PLAYER_SURFACE_EVAS, + IVUG_PLAYER_SURFACE_X11, +} PlayerSurface; + +typedef struct { + bool bLooping; + + PlayerSurface eSurface; + Evas_Object *pSurface; +} PlayerConfig; + +typedef enum { + IVUG_PLAYER_EVENT_ERROR, + IVUG_PLAYER_EVENT_PREPARED, + IVUG_PLAYER_EVENT_STARTED, // Playing + IVUG_PLAYER_EVENT_PAUSED, + IVUG_PLAYER_EVENT_EOS, +} PlayerEvent; + +typedef enum { + IVUG_PLAYER_STATE_NONE, + IVUG_PLAYER_STATE_CREATED, + IVUG_PLAYER_STATE_PLAYING, + IVUG_PLAYER_STATE_PAUSED, +} PlayerState; + +typedef struct { + PlayerEvent type; + + union { + + struct { // IVUG_PLAYER_EVENT_STARTED + int w; + int h; + } started; + + struct { + int current; + } pos; + + struct { // IVUG_PLAYER_EVENT_ERROR + int error_code; + } error; + } param; +} PlayerParam; + +typedef void (*PlayerCallback)(PlayerParam *param, void *data); + +#ifdef __cplusplus +extern "C" { +#endif + +PlayerHandle ivug_player_create(); + +bool ivug_player_set_file(PlayerHandle hPlayer, const char *szPath); + +bool ivug_player_set_mem(PlayerHandle hPlayer, const void *buffer, int len); + +bool ivug_player_set_callback(PlayerHandle hPlayer, PlayerCallback cb, void *data); + +bool ivug_player_set_config(PlayerHandle hPlayer, PlayerConfig *pConfig); + +bool ivug_player_start(PlayerHandle hPlayer); + +bool ivug_player_pause(PlayerHandle hPlayer); + +bool ivug_player_resume(PlayerHandle hPlayer); + +bool ivug_player_stop(PlayerHandle hPlayer); + +bool ivug_player_delete(PlayerHandle hPlayer); + +bool ivug_player_state_get(PlayerHandle hPlayer, PlayerState * /* INOUT */ state); + +#ifdef __cplusplus +} +#endif + + +#endif // __IVUG_PLAYER_H__ + diff --git a/feature/include/ivug-transcoder.h b/feature/include/ivug-transcoder.h new file mode 100755 index 0000000..0bb40e1 --- /dev/null +++ b/feature/include/ivug-transcoder.h @@ -0,0 +1,51 @@ +/* +* Copyright (c) 2000-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 __IFUG_TRANSCODER_H__ +#define __IFUG_TRANSCODER_H__ + +/* +gst-launch multifilesrc location="341410.jpg" caps="image/jpeg,framerate=1/1" num-buffers=10 ! jpegdec ! savsenc_mp4 ! mp4mux name=mux ! filesink location=kk.mp4 sync=false + filesrc location="deltio.mp3" ! mp3parse ! mux. +*/ + +typedef struct { + int inWidth; + int inHeight; + + int inOrientation; + int inSizeLimit; + + int outOutsize; + +} IVTransConfig; + +#ifdef __cplusplus +extern "C" { +#endif + +bool ivug_trancoder_convert_video(const char *jpg, const char *wav, const char *outfile, IVTransConfig *config); + + +#ifdef __cplusplus +} +#endif + + +#endif // __IFUG_TRANSCODER_H__ + + diff --git a/feature/include/ivug-vibration.h b/feature/include/ivug-vibration.h new file mode 100755 index 0000000..20bb460 --- /dev/null +++ b/feature/include/ivug-vibration.h @@ -0,0 +1,52 @@ +/* +* Copyright (c) 2000-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 __IVUG_VIBRATION_H__ +#define __IVUG_VIBRATION_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +#define INVALID_HAPTIC_HANDLE (NULL) +#define VIBRATION_DURATION (500) // 500 ms + +typedef void * vibration_h; + +/* + If success, returns handle. otherwise NULL. +*/ +vibration_h ivug_vibration_create(void); + +/* + duration in ms +*/ +bool ivug_vibration_play(vibration_h handle, int duration); + +bool ivug_vibration_stop(vibration_h handle); + +bool ivug_vibration_delete(vibration_h handle); + + +#ifdef __cplusplus +} +#endif + +#endif // __IVUG_VIBRATION_H__ + diff --git a/feature/src/exif/File.h b/feature/src/exif/File.h new file mode 100755 index 0000000..ebb8794 --- /dev/null +++ b/feature/src/exif/File.h @@ -0,0 +1,135 @@ +/* +* Copyright (c) 2000-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. +* +*/#pragma once + +#include +#include + +class CFile { +public: + enum { + eSet = SEEK_SET, + eCur = SEEK_CUR, + eEnd = SEEK_END, + }; + + enum { + eModeRead, + eModeWrite, + eModeRW, + }; + + CFile() : fp(NULL), fname(NULL), offset(0) {}; + ~CFile() { + Close(); + }; + + bool Open(const char *fname, int mode = eModeRead) { + const char *szMode[] = { + "rb", "wb", "rb+" + }; + + fp = fopen(fname, szMode[mode]); + + if ( fp == NULL ) + { + return false; + } + + fseek(fp, 0L, SEEK_END); + fsize = ftell(fp); + +// Reset to head + fseek(fp, 0L, SEEK_SET); + + this->fname = strdup(fname); + return true; + }; + + bool Close() { + if ( fp ) + fclose(fp); + fp = NULL; + + if ( fname) + free(fname); + fname = NULL; + + return true; + }; + + int GetChar() const { + if ( fp == NULL) + { + return EOF; + } + + return fgetc(fp); + }; + + int Seek(long offset, int whence ) { + return fseek(fp, offset, whence); + }; + + long Tell() { + return ftell(fp); + }; + + int Read(void *buffer, int n) { + return fread(buffer, 1, n, fp); + }; + + int SetBookmark(long offset) { + + return -1; + }; + + int GetBookmark(int bookmark) + { + return -1; + }; + + int Write(void *buffer, int n) { + return fwrite(buffer, n, 1, fp); + }; + + bool IsLoaded() { + return fp == NULL ? false : true; + }; + + size_t GetSize() { + if ( fp == NULL ) + { + return 0; + } + + return fsize; + }; + + const char *GetFilename() { + return fname; + } + +private: + FILE *fp; + + char *fname; + + int offset; + + size_t fsize; // File size + +}; diff --git a/feature/src/exif/exif.h b/feature/src/exif/exif.h new file mode 100644 index 0000000..081de2f --- /dev/null +++ b/feature/src/exif/exif.h @@ -0,0 +1,175 @@ +/* +* Copyright (c) 2000-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. +* +*/ +#pragma once + +#include "global.h" + +#include +#include + +#define TIFF_TAG_IMAGEWIDTH (0x0100) +#define TIFF_TAG_IMAGELENGTH (0x0101) +#define TIFF_TAG_IMAGDESCRIPTION (0x010E) +#define TIFF_TAG_ORIENTATION (0x0112) +#define TIFF_TAG_MAKE (0x010F) + +#define TIFF_TAG_MODEL (0x0110) +#define TIFF_TAG_SOFTWARE (0x0131) + +#define TAG_EXIF_IFD (0x8769) +#define TAG_GPS_IFD (0x8825) +#define TAG_INTEROPERABILITY_IFD (0xA005) + +/* + Table 4 in specification +*/ +#define EXIF_IFD_TAG_VERSION (0x9000) +#define EXIF_IFD_TAG_FLASHPIXVER (0xA000) +#define EXIF_IFD_TAG_COLORSPACE (0xA001) +#define EXIF_IFD_TAG_COMPONENT_CONFIG (0x9101) +#define EXIF_IFD_TAG_COMPRESSED_BPP (0x9102) +#define EXIF_IFD_TAG_PIXEL_XDIM (0xA002) +#define EXIF_IFD_TAG_PIXEL_YDIM (0xA003) +#define EXIF_IFD_TAG_MAKER_NOTE (0x927C) +#define EXIF_IFD_TAG_USER_COMMENT (0x9286) +#define EXIF_IFD_TAG_RELATED_SOUND_FILE (0xA004) +#define EXIF_IFD_TAG_DATATIME_ORIGINAL (0x9003) +#define EXIF_IFD_TAG_DATATIME_DIGITIZED (0x9004) +#define EXIF_IFD_TAG_SUBSECTIME (0x9290) +#define EXIF_IFD_TAG_SUBSECTIME_ORIGNAL (0x9291) +#define EXIF_IFD_TAG_SUBSECTIME_DIGITIZED (0x9292) +#define EXIF_IFD_TAG_UNIQUE_IMAGE_ID (0xA420) + +/* + Table 5 in specification +*/ +#define EXIF_IFD_TAG_EXPOSURE_TIME (0x829A) +#define EXIF_IFD_TAG_FNUMBER (0x829D) + +namespace iv { + +class CExif { + const char *GetTagName(int tag); + + class CExifTag + { + public: + CExifTag(short tag, short type, int count, int voffset) + { + m_tag = tag; + m_type = type; + m_count = count; + m_voffset = voffset; + } + + private: + short m_tag; + short m_type; + int m_count; + int m_voffset; + }; + + class CIFD { + CIFD() : count(0) {}; + ~CIFD() {}; + public: + + private: + int count; // Entry count + + byte *data; + int len; + }; + + inline int GetBytes(int T) { + static char Tsize[] = { 1 /* Inavalid */, 1, 1, 2, 4, 8, 1, 1, 2, 4, 8, 4, 8 }; + + return Tsize[T]; + }; + +private: + int ParseUSerComment(byte *buf, int len) + { + // ID(8) | Comment(Any) + m_usercomment.assign((const char *)buf + 8, len - 8); + return 0; + } + + int Get16(byte *buffer) { + if ( blendian == true ) + { + return buffer[0] | (buffer[1] << 8); + } + + return buffer[1] | (buffer[0] << 8); + }; + + int Get32(byte *buffer) { + if ( blendian == true ) + { + return buffer[0] | (buffer[1] << 8) | (buffer[2] << 16) | (buffer[3] << 24); + } + + return (buffer[0] << 24) | (buffer[1] << 16) | (buffer[2] << 8) | buffer[3]; + }; + +/* + | IFD DATA | Value of IFD | + |----------------------| + buffer len + + We cannot get end offset of 'Value of IFD' +*/ + int ParseIFD(byte *buffer, int len, byte *offsetbase, int lvl); + +public: + CExif() { + verbose = false; + }; + + bool Parse(byte *buffer, int len, int offset); + + const char *GetUserComment() { + return m_usercomment.c_str(); + }; + +private: + std::string m_usercomment; + + bool blendian; // Is little endinan? + + long header_offset; + byte *header; + +// For inplace edit. + bool bFoundExifIFD; + bool bFoundUserComment; + + struct { + long offset; + int len; + int adjust; // Adjusted length. + } UserComment; + + bool verbose; +// IDF list + std::list m_ifdlist; + +}; + +}; + diff --git a/feature/src/exif/global.h b/feature/src/exif/global.h new file mode 100755 index 0000000..c59c16a --- /dev/null +++ b/feature/src/exif/global.h @@ -0,0 +1,30 @@ +/* +* Copyright (c) 2000-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. +* +*/ +#pragma once + +typedef unsigned char byte; + +#undef LOG_CAT +#define LOG_CAT "IV-EXIF" + +#undef LOG_LVL +//#define LOG_LVL DBG_MSG_LVL_LOW | DBG_MSG_LVL_DEBUG +#define LOG_LVL DBG_MSG_LVL_HIGH + +#include "ivug-debug.h" + +#include "File.h" diff --git a/feature/src/exif/jpeg.cpp b/feature/src/exif/jpeg.cpp new file mode 100755 index 0000000..65de5a8 --- /dev/null +++ b/feature/src/exif/jpeg.cpp @@ -0,0 +1,461 @@ +/* +* Copyright (c) 2000-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. +* +*/ + +/* +Orientation. + Load + JFIF format --> 0 + + EXIF format -> Check 0th IFD + if found orientation : return value. + if not : return 0. + +// Impossible because MakerNote offset +// Save +// JFIF format. +// Write FFD8 +// Create TIFF Header. Make 0th IFD. +// Save SOI ~ End +// +// EXIF format +// if found : just replace value itself. +// not found : add interopebility and resize 0th IFD. Adjust all offset. +// + + +Comment. + Load + JFIF format --> check JFIF comment + + EXIF format --> Find UserComment + if found + use this value. + else if not found + find JFIF comment + else + No Comment + +// Impossible because MakerNote offset +// Save +// JFIF format +// Create basic EXIF header & User comment +// +// EXIF format. +// Offset Modified : Next IFD, StripOffset, GPS IFD Pointer + +*/ + +#include // memcmp +#include +#include + +#include "File.h" +#include "exif.h" +#include "jpeg.h" + +#include +#include + +using namespace std; +using namespace iv; + + +int CJPEG::ReadAppN(CFile &file, int marker, int len) +{ + int size; + + size = len; + + MSG_DEBUG("marker=0x%02x Size=%d", marker, size); + + switch(marker) + { + case M_APP0: // JFIF or JFXX + { + byte *buffer; + + buffer = (byte *)malloc(size); + + if (buffer == NULL) return -1; + + if (file.Read(buffer, size) != size ) + { + MSG_ERROR("Cannot read file. size=%u", size); + free(buffer); + return -1; + } + + if (memcmp(buffer, "JFIF", sizeof("JFIF")) == 0 ) + { + int vMajor = buffer[5]; + int vMinor = buffer[6]; + + int unit = buffer[7]; + int Xdensity = buffer[8] << 8 | buffer[9]; + int Ydensity = buffer[10] << 8 | buffer[11]; + + int Xthumbnail = buffer[12]; + int Ythumbnail = buffer[13]; + + MSG_DEBUG("JFIF v%1d.%02d Unit=%d XYDensity(%d,%d), XYThumbnail(%d,%d)", vMajor, vMinor, unit, Xdensity, Ydensity, Xthumbnail, Ythumbnail); + } + else if (memcmp(buffer, "JFXX", sizeof("JFXX")) == 0 ) + { + MSG_DEBUG("JFXX"); + } + else + { + MSG_DEBUG("Invalid APP0"); + } + free(buffer); + } + + break; + case M_APP1: // EXIF or XMP + { + // Read 6 bytes. + char header[6]; + int bytes; + + bytes = file.Read(header, 6); + + if (bytes < 6 ) + { + MSG_ERROR("Not a vaild EXIF"); + return -1; + } + + int read; + + if (memcmp(header, "Exif\00", sizeof("Exif\00") - 1) == 0 ) + { + if (m_exif != NULL) + { + // There is jpeg has 2 Exifs segment. we ignore that. + MSG_WARN("M_APP1 appears two times. Ignore this"); + break; + } + + int offset = file.Tell(); + + byte *buffer = (byte *)malloc(size); + + if (buffer == NULL) return -1; + + read = file.Read(buffer, size); + + if (read != size ) + { + MSG_ERROR("Try to read %d bytes but %d bytes read", size, read); + free(buffer); + break; + } + + m_exif = new CExif; + + if (m_exif->Parse(buffer, size, offset) == false ) + { + MSG_ERROR("EXIF Parse Error. Size=%d bytes offset=%d",size, offset ); + } + + free(buffer); + } + else if (memcmp(header, "http:", sizeof("http:") -1 ) == 0 ) + { + MSG_WARN("XMP parser is not implemented"); + // XMP + } + + } + + break; + default: + MSG_DEBUG("Unknown marker(0x%02X)", marker); + break; + } + + return 0; +} + +int CJPEG::ReadSegment(CFile &file) +{ +// SOI - APP1 - (APP2) - DQT - DHT - (DRI) - SOF - SOS - ... - EOI - Sound&Image Data + int f = file.GetChar(); + + if (f != 0xFF || file.GetChar() != M_SOI) + { + MSG_DEBUG("Not a valid jpeg file"); + return -1; + } + + m_seglist.push_back(CSegment(M_SOI, 0, 0, "SOI") ); + + int marker; + int len; + + for(int a = file.GetChar(); a == 0xFF; a = file.GetChar()) + { + marker = file.GetChar(); + +// MSG_DEBUG("Found Segment 0x%02X", marker); + len = readLength(file) - 2; // JPEG Len include 2byte for size itself + + if ((marker & 0xF0 ) == 0xE0 ) + { + char buf[10]; + + snprintf(buf, 10, "APP%d", marker & 0x0F); + + int offset = file.Tell(); + + MSG_DEBUG("Found %s(0x%02X) - Off(%d) Len(%d)", buf, marker, offset, len); + + m_seglist.push_back(CSegment(marker, len, offset, buf )); + +// TODO : Read whole section. + if (marker == M_APP0 || marker == M_APP1) + { + if (ReadAppN(file, marker, len) < 0 ) + { + MSG_ERROR("Parse Error. but ignore. %s", file.GetFilename()); + } + } + + if (offset > -1) { + file.Seek(offset, CFile::eSet); // Reset + } + file.Seek(len, CFile::eCur); // skip to next segment. - 2 is segment header + continue; + } + + switch(marker) { + case M_DHT: + m_seglist.push_back(CSegment(marker, len, file.Tell(),"DHT") ); + break; + case M_DQT: + m_seglist.push_back(CSegment(marker, len, file.Tell(),"DQT") ); + break; + + case M_SOS: + m_seglist.push_back(CSegment(marker, len, file.Tell(),"SOS") ); + break; + + case M_SOF0: + m_seglist.push_back(CSegment(marker, len, file.Tell(),"SOSF0") ); + break; + + case M_EOI: + // Never reached here. because we cannot get compressed data len. + m_seglist.push_back(CSegment(marker, len, file.Tell(),"EOI") ); + break; + + case M_DRI: + m_seglist.push_back(CSegment(marker, len, file.Tell(),"DRI") ); + break; + + case M_COM: + { + // Read Comment & Store. + char *buf = (char *)malloc(len); + if (buf == NULL) + break; + int offset = file.Tell(); + + if (buf != NULL && offset > 0) { + file.Read(buf, len); + + file.Seek(offset, CFile::eSet); + + m_comment.assign(buf, len); + + MSG_HIGH("Found Comment in JPEG. %s", m_comment.c_str()); + + m_seglist.push_back(CSegment(marker, len, file.Tell(),"COM") ); + } + free(buf); + } + break; + default: + MSG_WARN("Unhandled Marker=0x%02X", marker); + m_seglist.push_back(CSegment(marker, len, file.Tell(),"NOTPARSED") ); + break; + }; + + file.Seek(len, CFile::eCur); // - 2 is segment header len + } + +// Save remainder of file. + long offset = file.Tell() - 1; // -1 is GetChar() in for statement. + + size_t size = file.GetSize(); + + m_seglist.push_back(CSegment(0xFF, size - offset, offset, "DATA") ); + + return 0; +} + + +bool CJPEG::WriteJPEG(const char *fname) { + + if (bModified == false ) + { + MSG_ERROR("Jpeg does not changed. "); + return false; + } + + MSG_DEBUG("Write to file. %s", fname); + string dfile; + string sfile; + + bool bSamedest = false; + +// Make tmp and Rename + dfile = fname; + + if (strcmp( file.GetFilename(), fname ) == 0 ) + { + MSG_ERROR("Source file & Dst file name are same."); + + bSamedest = true; + dfile += ".tmp"; + } + + sfile = file.GetFilename(); + + CFile dst; + +// dst.Open(fname, CFile::eModeWrite); + dst.Open(dfile.c_str(), CFile::eModeWrite); + + try { + +// TODO : If needed, make APP1 segment for EXIF + for(list::iterator itor = m_seglist.begin(); itor != m_seglist.end(); itor++) + { + CSegment &seg = *itor; + + // MSG_DEBUG("%s(0x%02X) Length=%d", (*itor).name_.c_str(), (*itor).T_, (*itor).L_); + + switch(seg.T_) { + case M_SOI: + { + byte buf[2] = { 0xFF, 0xD8 }; + dst.Write(buf, 2); + } + break; + case 0xFF: // Compresssed image Data + { + // Read from src. + if (file.Seek(seg.offset_, CFile::eSet) < 0 ) + { + MSG_ERROR("Cannot seek. Offset=0x%u", seg.offset_); + throw "Cannot parse"; + } + + byte *buffer; + + buffer = (byte *)malloc(seg.L_); + if (buffer) { + int cnt = file.Read(buffer, seg.L_); + if (cnt < seg.L_ ) + { + MSG_DEBUG("Read fail. %d, %d", cnt, seg.L_); + free(buffer); + throw "Invalid Src"; + } + dst.Write(buffer, cnt); + free(buffer); + } + } + + break; + default: + { + byte buf[4]; + int size = seg.L_ + 2; // +2 for size storage + + buf[0] = 0xFF; + buf[1] = (byte)seg.T_; + buf[2] = (0xFF00 & size) >> 8; + buf[3] = 0x00FF & size; + + dst.Write(buf, 4); // Tag(2), Size(2) + + if (seg.buf == NULL) + { + // Read from src & write to dst. + if (file.Seek(seg.offset_, CFile::eSet) < 0 ) + { + MSG_ERROR("Invalid offset. 0x%08x", seg.offset_); + throw "Invalid Offset"; + } + + byte *buffer; + + buffer = (byte *)malloc(seg.L_); + + if (buffer != NULL) { + int cnt = file.Read(buffer, seg.L_); + + if (cnt < seg.L_ ) + { + MSG_DEBUG("Read fail. %d, %d", cnt, seg.L_); + free(buffer); + throw "Invalid Src"; + } + + dst.Write(buffer, cnt); + + free(buffer); + } + } + else + { + dst.Write(seg.buf, seg.L_); + } + } + break; + } + } + + } + catch(...) + { + dst.Close(); + + unlink(dfile.c_str()); // Remove tmp file + + return false; + } + + dst.Close(); + +// Remove src & rename dst to src. + if (bSamedest == true ) + { + file.Close(); + unlink(sfile.c_str()); + + if (rename (dfile.c_str(), sfile.c_str()) != 0 ) + { + MSG_ERROR("Rename failed. from %s to %s", dfile.c_str(), sfile.c_str()); + } + + } + + return true; +} diff --git a/feature/src/exif/jpeg.h b/feature/src/exif/jpeg.h new file mode 100755 index 0000000..aad2b6b --- /dev/null +++ b/feature/src/exif/jpeg.h @@ -0,0 +1,231 @@ +/* +* Copyright (c) 2000-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. +* +*/ +#pragma once + + +#include "global.h" + +#include "exif.h" +#include +#include +#include + +using namespace std; + +namespace iv { + +class CJPEG { + enum { + // JPEG Marker + M_SOF0 = 0xC0, // Start Of Frame N + M_SOF1 = 0xC1, // N indicates which compression process + M_SOF2 = 0xC2, // Only SOF0-SOF2 are now in common use + M_SOF3 = 0xC3, + M_SOF5 = 0xC5, // NB: codes C4 and CC are NOT SOF markers + M_SOF6 = 0xC6, + M_SOF7 = 0xC7, + M_SOF9 = 0xC9, + M_SOF10 = 0xCA, + M_SOF11 = 0xCB, + M_SOF13 = 0xCD, + M_SOF14 = 0xCE, + M_SOF15 = 0xCF, + + M_SOI = 0xD8, // Start Of Image (beginning of datastream) + M_EOI = 0xD9, // End Of Image (end of datastream) + M_SOS = 0xDA, // Start Of Scan (begins compressed data) + + M_APP0 = 0xE0, // "JFIF\x00", "JFXX\x00" + M_APP1 = 0xE1, // "EXIF\x00\x00" or "EXIF\x00\xFF", or XMP("http://ns.adobe.com/xap/1.0/\x00") + M_APP2 = 0xE2, // "ICC_PROFILE\x00" + M_APP3 = 0xE3, // "META\x00\x00" or "Meta\x00\x00" + M_APP4 = 0xE4, + M_APP5 = 0xE5, + M_APP6 = 0xE6, + M_APP7 = 0xE7, + M_APP8 = 0xE8, + M_APP9 = 0xE9, + M_APP10 = 0xEA, + M_APP11 = 0xEB, + M_APP12 = 0xEC, // Picture info, or Ducky + M_APP13 = 0xED, // "Photoshop 3.0\x00" + M_APP14 = 0xEE, // "Adobe\x00" + M_APP15 = 0xEF, + + M_COM = 0xFE, // COMment + M_DQT = 0xDB, // Define Quantization Table + M_DHT = 0xC4, // Define Huffmann Table + M_DRI = 0xDD, + M_IPTC = 0xED, // IPTC marker + }; + + class CSegment { + enum { + eModeUnknown, + eModeBuffer, + eModeOffset, + }; + + public: + CSegment(int type, int len, int offset, string name) : T_(type), L_(len), offset_(offset), buf(NULL), name_(name) {}; + + CSegment(int type, byte *buffer, int len, string name) : T_(type), L_(len), offset_(0), buf(buffer), name_(name) {}; + private: + int T_; // JPEG Marker + int L_; // Length. only Data length not whole segment + + int offset_; // Data offset in file base. + +// TODO : Who freed buf??? + byte *buf; + + string name_; // Readable segment name + + void SetData(byte *buffer, int n) { + L_ = n; + buf = buffer; + }; + + friend class CJPEG; + }; +public: + CJPEG() : bModified(false), m_exif(NULL) {}; + ~CJPEG() { + if ( file.IsLoaded() == true ) + { + // Close previous file. + file.Close(); + } + + if ( m_exif ) + { + MSG_WARN("Remove ~CEXIF()"); + delete m_exif; + m_exif = NULL; + } + }; + +private: + inline int readLength(const CFile &file) { + int ta, tb; + + ta = file.GetChar(); + tb = file.GetChar(); + + return (ta << 8) | tb; + }; + + int ReadSegment(CFile &file); // Read JPEG marker segment + int ReadAppN(CFile &file, int marker, int len); // Read APPn segment + +public: + bool ParseJPEG(const char *fname) { + MSG_DEBUG("Parse JPEG - %s", fname); + + if ( file.IsLoaded() == true ) + { + // Close previous file. + file.Close(); + } + + if ( m_exif ) + { + delete m_exif; + m_exif = NULL; + } + + if ( file.Open(fname) == true ) + { + ReadSegment(file); + } + + return true; + }; + + void PrintInfo() { + MSG_DEBUG("*****************************************\n"); + for(list::iterator itor = m_seglist.begin(); itor != m_seglist.end(); itor++) + { + MSG_DEBUG("%s(0x%02X) Offset=0x%08x Length=%d\n", (*itor).name_.c_str(), (*itor).T_, (*itor).offset_ ,(*itor).L_); + } + MSG_DEBUG("*****************************************\n"); + }; + + bool WriteJPEG(const char *fname); + +// EXIF Infomation getter/setter +public: + const char *GetUserComment() { + { + // Try to find Comment from M_COM + return m_comment.c_str(); + } + return NULL; + }; + void SetUserComment(const char *comment) { + bModified = true; + + list::iterator litor = m_seglist.begin(); // M_SOI + +// Find last APPn + list::iterator itor; + for (itor = m_seglist.begin(); itor != m_seglist.end(); itor++) + { + CSegment &seg = *itor; + + if ( seg.T_ == M_COM ) + { + // Found. Modify Segment + seg.SetData((byte *)comment, strlen(comment)); + break; + } + + if ( (seg.T_ & 0xF0 ) == 0xE0 ) + { + // If found APPn, store segment. + litor = itor; + } + } + + if ( itor == m_seglist.end() ) + { +// Insert M_COM after itor. + m_seglist.insert(litor, CSegment(M_COM, (byte *)comment, strlen(comment), "COM")); + } + + PrintInfo(); + + } + +private: + CFile file; + + bool bModified; // Is metadata changed? + + list m_seglist; + + string m_comment; // Comment from m_comment + + string m_comment_new; // + +// Status + CExif *m_exif; + +}; + +}; + diff --git a/feature/src/ivug-comment.cpp b/feature/src/ivug-comment.cpp new file mode 100755 index 0000000..e6ddb03 --- /dev/null +++ b/feature/src/ivug-comment.cpp @@ -0,0 +1,75 @@ +/* +* Copyright (c) 2000-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 "ivug-comment.h" + +#include "exif/jpeg.h" + +using namespace iv; + +extern "C" Handle ivug_comment_loadfile(const char *fname) +{ + MSG_ASSERT(fname != NULL); + + CJPEG *pJpeg = new CJPEG(); + + if (pJpeg->ParseJPEG(fname) == false ) + { + delete pJpeg; + return NULL; + } + + return (Handle)pJpeg; +} + + +extern "C" const char *ivug_comment_get(Handle handle) +{ + MSG_ASSERT(handle != NULL); + + return ((CJPEG *)handle)->GetUserComment(); +} + + +extern "C" void ivug_comment_set(Handle handle, const char *comment) +{ + MSG_ASSERT(handle != NULL); + + CJPEG *pJpeg = (CJPEG *)handle; + + pJpeg->SetUserComment(comment); +} + + +extern "C" void ivug_comment_savefile(Handle handle, const char *fname) +{ + MSG_ASSERT(handle != NULL); + + CJPEG *pJpeg = (CJPEG *)handle; + + pJpeg->WriteJPEG(fname); +} + + +extern "C" void ivug_comment_closefile(Handle handle) +{ + MSG_ASSERT(handle != NULL); + + CJPEG *pJpeg = (CJPEG *)handle; + + delete pJpeg; +} diff --git a/feature/src/ivug-ext-ug.c b/feature/src/ivug-ext-ug.c deleted file mode 100755 index 8f24655..0000000 --- a/feature/src/ivug-ext-ug.c +++ /dev/null @@ -1,1100 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ivug-ext-ug.h" -#include "ivug-util.h" -#include "ivug-debug.h" - - -//definition -#define MESSAGE_UG_NAME "msg-composer-efl" -#define EMAIL_UG_NAME "email-composer-efl" -#define CONTACT_UG_NAME "contacts-list-efl" -#define MYFILE_DETAIL_UG_NAME "myfile-detail-efl" -#define BLUETOOTH_UG_NAME "ug-bluetooth-efl" -#define MYFILE_UG_NAME "myfile-efl" - -#define CONTACT_SELECT_UG_NAME "contacts-tabui-efl" -#define BLUETOOTH_SETTING_NAME "setting-bluetooth-efl" - -#define VIDEOPLAYER_PKG_NAME "org.tizen.video-player" -#define BLUETOOTH_PKG_NAME "org.tizen.bluetooth" -#define BROWSER_PKG_NAME "org.tizen.browser" -#define MESSAGE_PKG_NAME "org.tizen.message" -#define EMAIL_PKG_NAME "org.tizen.email" - -#define WIFI_FILE_TRANSFER_UG_NAME "fileshare-efl" - -#define PRINT_PKG_NAME "org.tizen.mobileprint" - -#define OPERATION_NAME_PRINT "http://tizen.org/appcontrol/operation/PRINT" - -#define SERVICE_PRINT_FILES_TYPE "service_print_files_type" - -#define MIME_TYPE_LEN 255 - -typedef struct { - ug_destroy_cb destroy_func; - ug_result_cb result_func; - void *cb_data; -}ext_ug_t; -#if 0 -static void -_bundle_print(const char *key, const char *val, void *data) -{ - MSG_IVUG_HIGH(" %s:%s", key, val); -} -#endif - -static bool _data_print(service_h service, const char *key, void *user_data) -{ - char *value; - - char **value_array; - int array_len = 1; - int i; - bool array = false; - - service_is_extra_data_array(service, key, &array); - if(array == false) - { - service_get_extra_data(service, key, &value); - MSG_IVUG_HIGH(" %s : %s", key, value); - free(value); - } - else - { - service_get_extra_data_array(service, key, &value_array, &array_len); - MSG_IVUG_HIGH(" %s :", key); - for(i=0; iresult_func) - ug_struct->result_func(ug, result, ug_struct->cb_data); -} - - -static void -_ivug_ext_ug_destroy_cb(ui_gadget_h ug, void *priv) -{ - if (!ug ) return; - - ext_ug_t *ug_struct = (ext_ug_t *)priv; - - MSG_IMAGEVIEW_HIGH("Destroy ug"); - ug_destroy(ug); - - ug_struct->destroy_func(ug, ug_struct->cb_data); - - free(ug_struct); -} - -ui_gadget_h _ivug_ext_launch_ug(const char *pkgname, service_h service, ug_destroy_cb func, void *data) -{ - ui_gadget_h ug = NULL; - struct ug_cbs cbs = {0, }; - - ext_ug_t *ug_struct = calloc(1, sizeof(ext_ug_t)); - ug_struct->result_func = NULL; - ug_struct->destroy_func = func; - ug_struct->cb_data = data; - - cbs.layout_cb = _ivug_ext_ug_layout_cb; - cbs.result_cb = _ivug_ext_ug_result_cb; - cbs.destroy_cb = _ivug_ext_ug_destroy_cb; - cbs.priv = ug_struct; - - ug = ug_create( NULL, pkgname, UG_MODE_FULLVIEW, service, &cbs ); - - return ug; -} - -ui_gadget_h _ivug_ext_launch_ug_with_result(const char *pkgname, - service_h service, ug_result_cb result_func, ug_destroy_cb destroy_func, void *data) -{ - ui_gadget_h ug = NULL; - struct ug_cbs cbs = {0, }; - - ext_ug_t *ug_struct = calloc(1, sizeof(ext_ug_t)); - ug_struct->result_func = result_func; - ug_struct->destroy_func = destroy_func; - ug_struct->cb_data = data; - - cbs.layout_cb = _ivug_ext_ug_layout_cb; - cbs.result_cb = _ivug_ext_ug_result_cb; - cbs.destroy_cb = _ivug_ext_ug_destroy_cb; - cbs.priv = ug_struct; - - ug = ug_create( NULL, pkgname, UG_MODE_FULLVIEW, service, &cbs ); - - return ug; -} - - -void ivug_ext_service_reply_cb(service_h request, service_h reply, service_result_e result, void *user_data) -{ - MSG_IMAGEVIEW_HIGH("ivug_ext_service_reply_cb"); - switch(result) - { - case SERVICE_RESULT_SUCCEEDED: - MSG_IMAGEVIEW_HIGH("SERVICE_RESULT_SUCCEEDED"); - break; - case SERVICE_RESULT_FAILED: - MSG_IMAGEVIEW_HIGH("SERVICE_RESULT_FAILED"); - break; - case SERVICE_RESULT_CANCELED: - MSG_IMAGEVIEW_HIGH("SERVICE_RESULT_CANCELED"); - break; - default: - MSG_IMAGEVIEW_ERROR("unhandled value %d", result); - break; - } -} - -ui_gadget_h ivug_ext_launch_wifi_file_transfer(const char *uri, ug_destroy_cb func, void *data) -{ - MSG_IMAGEVIEW_HIGH("%s. URI=%s", __func__, uri); - - int ret = -1; - int destroy_ret = -1; - - service_h handle; - ui_gadget_h ug = NULL; - - ret = service_create(&handle); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_create failed, %d", ret); - return NULL; - } - - /*ret = service_set_operation(handle, SERVICE_OPERATION_VIEW); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_operation failed, %d", ret); - goto WIFI_TRANSFER_END; - }*/ - - ret = service_set_uri (handle, uri); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_uri failed, %d", ret); - goto WIFI_TRANSFER_END; - } - - ret = service_add_extra_data(handle, "filecount", "1"); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_add_extra_data failed, %d", ret); - goto WIFI_TRANSFER_END; - } - - ret = service_add_extra_data(handle, "files", uri); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_add_extra_data failed, %d", ret); - goto WIFI_TRANSFER_END; - } - - /*const char *pkgname = WIFI_FILE_TRANSFER_UG_NAME; - - ret = service_set_package(handle, pkgname); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_uri failed, %d", ret); - goto WIFI_TRANSFER_END; - }*/ - - ug = _ivug_ext_launch_ug(WIFI_FILE_TRANSFER_UG_NAME, handle, func, data); - -WIFI_TRANSFER_END: - destroy_ret = service_destroy(handle); - if(destroy_ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_destroy failed, %d", destroy_ret); - return NULL; - } - - return (ret == SERVICE_ERROR_NONE ? ug : NULL); -} - -ui_gadget_h ivug_ext_launch_message(const char *uri, ug_destroy_cb func, void *data) -{ - MSG_IMAGEVIEW_HIGH("%s. URI=%s", __func__, uri); - - int ret = -1; - int destroy_ret = -1; - - service_h handle; - ui_gadget_h ug = NULL; - - ret = service_create(&handle); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_create failed, %d", ret); - return NULL; - } - - /*ret = service_set_operation(handle, SERVICE_OPERATION_VIEW); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_operation failed, %d", ret); - goto MESSAGE_END; - }*/ - - ret = service_set_uri (handle, uri); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_uri failed, %d", ret); - goto MESSAGE_END; - } - - if (ivug_is_web_uri(uri) == true) - { - ret = service_add_extra_data(handle, "BODY", uri); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_add_extra_data failed, %d", ret); - goto MESSAGE_END; - } - } - else - { - ret = service_add_extra_data(handle, "ATTACHFILE", uri); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_add_extra_data failed, %d", ret); - goto MESSAGE_END; - } - } - - /*const char *pkgname = MESSAGE_UG_NAME; - - ret = service_set_package(handle, pkgname); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_uri failed, %d", ret); - goto MESSAGE_END; - }*/ - - ug = _ivug_ext_launch_ug(MESSAGE_UG_NAME, handle, func, data); - -MESSAGE_END: - destroy_ret = service_destroy(handle); - if(destroy_ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_destroy failed, %d", destroy_ret); - return NULL; - } - return (ret == SERVICE_ERROR_NONE ? ug : NULL); -} - -bool ivug_ext_launch_email(const char *uri) -{ - MSG_IMAGEVIEW_HIGH("%s. URI=%s", __func__, uri); - - int ret = -1; - int destroy_ret = -1; - - service_h handle; - - ret = service_create(&handle); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_create failed, %d", ret); - return false; - } - - ret = service_set_operation(handle, SERVICE_OPERATION_SEND); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_operation failed, %d", ret); - goto EMAIL_END; - } - - ret = service_set_uri(handle, uri); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_uri failed, %d", ret); - goto EMAIL_END; - } - - Ecore_X_Window win_id = elm_win_xwindow_get(ug_get_window()); - ret = service_set_window(handle, win_id); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_add_extra_data failed, %d", ret); - goto EMAIL_END; - } - - ret = service_add_extra_data(handle, "RUN_TYPE", "5"); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_add_extra_data failed, %d", ret); - goto EMAIL_END; - } - - if (ivug_is_web_uri(uri) == true) - { - ret = service_add_extra_data(handle, "BODY", uri); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_add_extra_data failed, %d", ret); - goto EMAIL_END; - } - } - else - { - ret = service_add_extra_data(handle, "ATTACHMENT", uri); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_add_extra_data failed, %d", ret); - goto EMAIL_END; - } - } - - const char *pkgname = EMAIL_UG_NAME; - - ret = service_set_package(handle, pkgname); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_package failed, %d", ret); - goto EMAIL_END; - } - - ret = service_send_launch_request(handle, ivug_ext_service_reply_cb, NULL); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_send_launch_request failed, %d", ret); - goto EMAIL_END; - } - -EMAIL_END: - destroy_ret = service_destroy(handle); - if(destroy_ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_destroy failed, %d", destroy_ret); - return false; - } - - return (ret == SERVICE_ERROR_NONE ? true : false); -} - -ui_gadget_h ivug_ext_launch_contact(const char *uri, ug_destroy_cb func, void *data) -{ - MSG_IMAGEVIEW_HIGH("%s. URI=%s", __func__, uri); - - int ret = -1; - int destroy_ret = -1; - - service_h handle; - ui_gadget_h ug = NULL; - - ret = service_create(&handle); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_create failed, %d", ret); - return NULL; - } - - /*ret = service_set_operation(handle, SERVICE_OPERATION_VIEW); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_operation failed, %d", ret); - goto MESSAGE_END; - }*/ - - ret = service_set_uri (handle, uri); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_uri failed, %d", ret); - goto CONTACT_END; - } - - ret = service_add_extra_data(handle, "type", "41"); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_add_extra_data failed, %d", ret); - goto CONTACT_END; - } - - ret = service_add_extra_data(handle, "ct_path", uri); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_add_extra_data failed, %d", ret); - goto CONTACT_END; - } - - /*const char *pkgname = CONTACT_UG_NAME; - - ret = service_set_package(handle, pkgname); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_uri failed, %d", ret); - goto CONTACT_END; - }*/ - - ug = _ivug_ext_launch_ug(CONTACT_UG_NAME, handle, func, data); - -CONTACT_END: - destroy_ret = service_destroy(handle); - if(destroy_ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_destroy failed, %d", destroy_ret); - return NULL; - } - - return (ret == SERVICE_ERROR_NONE ? ug : NULL); -} - -ui_gadget_h ivug_ext_launch_bluetooth_send(const char *uri, ug_destroy_cb func, void *data) -{ - MSG_IMAGEVIEW_HIGH("%s. URI=%s", __func__, uri); - - int ret = -1; - int destroy_ret = -1; - - service_h handle; - ui_gadget_h ug = NULL; - - ret = service_create(&handle); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_create failed, %d", ret); - return NULL; - } - - /*ret = service_set_operation(handle, SERVICE_OPERATION_VIEW); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_operation failed, %d", ret); - goto BT_END; - }*/ - - ret = service_set_uri (handle, uri); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_uri failed, %d", ret); - goto BT_END; - } - - ret = service_add_extra_data(handle, "launch-type", "send"); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_add_extra_data failed, %d", ret); - goto BT_END; - } - - ret = service_add_extra_data(handle, "filecount", "1"); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_add_extra_data failed, %d", ret); - goto BT_END; - } - - ret = service_add_extra_data(handle, "files", uri); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_add_extra_data failed, %d", ret); - goto BT_END; - } - - /*const char *pkgname = BLUETOOTH_UG_NAME; - - ret = service_set_package(handle, pkgname); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_uri failed, %d", ret); - goto BT_END; - }*/ - - ug = _ivug_ext_launch_ug(BLUETOOTH_SETTING_NAME, handle, func, data); - -BT_END: - destroy_ret = service_destroy(handle); - if(destroy_ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_destroy failed, %d", destroy_ret); - return NULL; - } - - return (ret == SERVICE_ERROR_NONE ? ug : NULL); -} - -ui_gadget_h ivug_ext_launch_bluetooth_print(const char *uri, ug_destroy_cb func, void *data) -{ - MSG_IMAGEVIEW_HIGH("%s. URI=%s", __func__, uri); - - int ret = -1; - int destroy_ret = -1; - - service_h handle; - ui_gadget_h ug = NULL; - - ret = service_create(&handle); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_create failed, %d", ret); - return NULL; - } - - /*ret = service_set_operation(handle, SERVICE_OPERATION_VIEW); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_operation failed, %d", ret); - goto BT_END; - }*/ - - ret = service_set_uri (handle, uri); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_uri failed, %d", ret); - goto BT_PRINT_END; - } - - ret = service_add_extra_data(handle, "launch-type", "print"); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_add_extra_data failed, %d", ret); - goto BT_PRINT_END; - } - - ret = service_add_extra_data(handle, "filecount", "1"); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_add_extra_data failed, %d", ret); - goto BT_PRINT_END; - } - - ret = service_add_extra_data(handle, "files", uri); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_add_extra_data failed, %d", ret); - goto BT_PRINT_END; - } - - /*const char *pkgname = BLUETOOTH_UG_NAME; - - ret = service_set_package(handle, pkgname); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_uri failed, %d", ret); - goto BT_PRINT_END; - }*/ - - ug = _ivug_ext_launch_ug(BLUETOOTH_UG_NAME, handle, func, data); - -BT_PRINT_END: - destroy_ret = service_destroy(handle); - if(destroy_ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_destroy failed, %d", destroy_ret); - return NULL; - } - - return (ret == SERVICE_ERROR_NONE ? ug : NULL); -} - - -bool ivug_ext_launch_videoplayer(const char *uri) -{ - MSG_IMAGEVIEW_HIGH("%s. URI=%s", __func__, uri); - - int ret = -1; - int destroy_ret = -1; - - service_h handle; - - ret = service_create(&handle); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_create failed, %d", ret); - return false; - } - - ret = service_set_operation(handle, SERVICE_OPERATION_VIEW); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_operation failed, %d", ret); - goto VIDEO_PLAYER_END; - } - - ret = service_set_uri (handle, uri); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_uri failed, %d", ret); - goto VIDEO_PLAYER_END; - } - - ret = service_add_extra_data(handle, "path", uri); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_add_extra_data failed, %d", ret); - goto VIDEO_PLAYER_END; - } - - ret = service_add_extra_data(handle, "launching_application", "image_viewer"); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_add_extra_data failed, %d", ret); - goto VIDEO_PLAYER_END; - } - - const char *pkgname = VIDEOPLAYER_PKG_NAME; - - ret = service_set_package(handle, pkgname); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_uri failed, %d", ret); - goto VIDEO_PLAYER_END; - } - - ret = service_send_launch_request(handle, ivug_ext_service_reply_cb, NULL); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_send_launch_request failed, %d", ret); - goto VIDEO_PLAYER_END; - } - -VIDEO_PLAYER_END: - destroy_ret = service_destroy(handle); - if(destroy_ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_destroy failed, %d", destroy_ret); - return false; - } - - return (ret == SERVICE_ERROR_NONE ? true : false); -} - -bool ivug_ext_launch_videoplayer_simple(const char *uri) -{ - MSG_IMAGEVIEW_HIGH("%s. URI=%s", __func__, uri); - - int ret = -1; - int destroy_ret = -1; - - service_h handle; - - ret = service_create(&handle); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_create failed, %d", ret); - return false; - } - - ret = service_set_operation(handle, SERVICE_OPERATION_VIEW); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_operation failed, %d", ret); - goto VIDEO_PLAYER_SIMPLE_END; - } - - ret = service_set_uri (handle, uri); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_uri failed, %d", ret); - goto VIDEO_PLAYER_SIMPLE_END; - } - - ret = service_add_extra_data(handle, "path", uri); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_add_extra_data failed, %d", ret); - goto VIDEO_PLAYER_SIMPLE_END; - } - - // Camera -> Image Viewer -> Video player, In this case, launching_application bundle's value should be "light_play_view" - ret = service_add_extra_data(handle, "launching_application", "light_play_view"); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_add_extra_data failed, %d", ret); - goto VIDEO_PLAYER_SIMPLE_END; - } - - const char *pkgname = VIDEOPLAYER_PKG_NAME; - - ret = service_set_package(handle, pkgname); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_uri failed, %d", ret); - goto VIDEO_PLAYER_SIMPLE_END; - } - - ret = service_send_launch_request(handle, ivug_ext_service_reply_cb, NULL); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_send_launch_request failed, %d", ret); - goto VIDEO_PLAYER_SIMPLE_END; - } - -VIDEO_PLAYER_SIMPLE_END: - destroy_ret = service_destroy(handle); - if(destroy_ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_destroy failed, %d", destroy_ret); - return false; - } - - return (ret == SERVICE_ERROR_NONE ? true : false); -} - -bool ivug_ext_launch_browser(const char *uri) -{ - MSG_IMAGEVIEW_HIGH("%s. URI=%s", __func__, uri); - - int ret = -1; - int destroy_ret = -1; - - service_h handle; - - ret = service_create(&handle); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_create failed, %d", ret); - return false; - } - - ret = service_set_operation(handle, SERVICE_OPERATION_VIEW); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_operation failed, %d", ret); - goto BROWSER_END; - } - - ret = service_add_extra_data(handle, "url", uri); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_add_extra_data failed, %d", ret); - goto BROWSER_END; - } - - const char *pkgname = BROWSER_PKG_NAME; - - ret = service_set_package(handle, pkgname); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_uri failed, %d", ret); - goto BROWSER_END; - } - - ret = service_send_launch_request(handle, ivug_ext_service_reply_cb, NULL); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_send_launch_request failed, %d", ret); - goto BROWSER_END; - } - -BROWSER_END: - destroy_ret = service_destroy(handle); - if(destroy_ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_destroy failed, %d", destroy_ret); - return false; - } - - return (ret == SERVICE_ERROR_NONE ? true : false); -} - -ui_gadget_h ivug_ext_launch_select_contact(ug_result_cb result_func, ug_destroy_cb destroy_func, void *data) -{ - MSG_IMAGEVIEW_HIGH("%s", __func__); - - int ret = -1; - int destroy_ret = -1; - - service_h handle; - ui_gadget_h ug = NULL; - - ret = service_create(&handle); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_create failed, %d", ret); - return NULL; - } - - /*ret = service_set_operation(handle, SERVICE_OPERATION_VIEW); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_operation failed, %d", ret); - goto SELECT_CONTACT_END; - }*/ - - ret = service_add_extra_data(handle, "type", "11"); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_add_extra_data failed, %d", ret); - goto SELECT_CONTACT_END; - } - - /*const char *pkgname = CONTACT_SELECT_UG_NAME; - - ret = service_set_package(handle, pkgname); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_uri failed, %d", ret); - goto SELECT_CONTACT_END; - }*/ - - char xwin_id_str[12] = {0,}; - Ecore_X_Window xwin_id = elm_win_xwindow_get(ug_get_window()); - eina_convert_itoa(xwin_id, xwin_id_str); - ret = service_add_extra_data(handle, "XWINDOW_ID", xwin_id_str); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_add_extra_data failed, %d", ret); - goto SELECT_CONTACT_END; - } - - ug = _ivug_ext_launch_ug_with_result(CONTACT_SELECT_UG_NAME, handle, result_func, destroy_func, data); - -SELECT_CONTACT_END: - destroy_ret = service_destroy(handle); - if(destroy_ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_destroy failed, %d", destroy_ret); - return NULL; - } - - return (ret == SERVICE_ERROR_NONE ? ug : NULL); -} - -bool ivug_ext_launch_default(const char *uri, const char *operation, const char *pkg, void *data) -{ - MSG_IMAGEVIEW_HIGH("%s.", __func__); - - int ret = -1; - int destroy_ret = -1; - - service_h handle; - - ret = service_create(&handle); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_create failed, %d", ret); - return false; - } - - ret = service_set_operation(handle, operation); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_operation %s failed, %d", operation, ret); - goto LAUNCH_END; - } - - ret = service_set_uri (handle, uri); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_uri %s failed, %d", uri, ret); - goto LAUNCH_END; - } - - if(pkg) - { - ret = service_set_package(handle, pkg); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_package %s failed, %d", pkg, ret); - goto LAUNCH_END; - } - } - - ret = service_send_launch_request(handle, ivug_ext_service_reply_cb, NULL); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_send_launch_request failed, %d", ret); - goto LAUNCH_END; - } - -LAUNCH_END: - destroy_ret = service_destroy(handle); - if(destroy_ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_destroy failed, %d", destroy_ret); - return false; - } - - return (ret == SERVICE_ERROR_NONE ? true : false); -} - -bool ivug_ext_launch_to_send(const char *uri, const char *pkg, ug_destroy_cb func, void *data, ui_gadget_h ug) -{ - MSG_IMAGEVIEW_HIGH("%s: %s %s", __func__, uri, pkg); - - bool ret = false; - ug = NULL; - - if (!strcmp(pkg, MESSAGE_UG_NAME)) - { - ug = ivug_ext_launch_message(uri, func, data); - ret = ug ? true : false; - } - else if (!strcmp(pkg, EMAIL_UG_NAME)) - { - ret = ivug_ext_launch_email(uri); - } - else if (!strcmp(pkg, BLUETOOTH_PKG_NAME) || !strcmp(pkg, BLUETOOTH_UG_NAME)) - { - ug = ivug_ext_launch_bluetooth_send(uri, func, data); - ret = ug ? true : false; - } - else - { - /* Use default launch for other execs but bluetooth, that always requires settings */ - ret = ivug_ext_launch_default(uri, SERVICE_OPERATION_SEND, pkg, data); - } - - return ret; -} - -bool ivug_ext_launch_print(const char *uri) -{ - MSG_IMAGEVIEW_HIGH("%s. URI=%s", __func__, uri); - - int ret = -1; - int destroy_ret = -1; - const char *pkgname = PRINT_PKG_NAME; - - if(uri == NULL) - { - MSG_IMAGEVIEW_ERROR("URI is NULL"); - return false; - } - - service_h handle; - - ret = service_create(&handle); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_create failed, %d", ret); - return false; - } - - ret = service_set_operation(handle, OPERATION_NAME_PRINT); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_operation failed, %d", ret); - goto PRINT_END; - } - - ret = service_set_package(handle, pkgname); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_package failed, %d", ret); - goto PRINT_END; - } - - ret = service_set_uri (handle, uri); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_set_uri failed, %d", ret); - goto PRINT_END; - } - - ret = service_add_extra_data(handle, SERVICE_PRINT_FILES_TYPE, "IMG"); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_add_extra_data failed, %d", ret); - goto PRINT_END; - } - - ret = service_send_launch_request(handle, ivug_ext_service_reply_cb, NULL); - if(ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_send_launch_request failed, %d", ret); - goto PRINT_END; - } - -PRINT_END: - destroy_ret = service_destroy(handle); - if(destroy_ret != SERVICE_ERROR_NONE) - { - MSG_IMAGEVIEW_ERROR("service_destroy failed, %d", destroy_ret); - return false; - } - - return (ret == SERVICE_ERROR_NONE ? true : false); -} - diff --git a/feature/src/ivug-motion.cpp b/feature/src/ivug-motion.cpp new file mode 100755 index 0000000..b7d67da --- /dev/null +++ b/feature/src/ivug-motion.cpp @@ -0,0 +1,655 @@ +/* +* Copyright (c) 2000-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 "ivug-debug.h" +#include "ivug-motion.h" + +#include +#include +#include + +#include +#include + +#include +using namespace std; + +#undef TEST_SENSOR_ERROR + +#undef LOG_LVL +#define LOG_LVL DBG_MSG_LVL_HIGH + +#undef LOG_CAT +#define LOG_CAT "IV-MOTION" + +class CClient { + + private: + CClient() { + throw "Use CClient(motion_callback_t func, void *data)"; + }; + + public: + CClient(motion_callback_t func, void *data): cb_func(func), cb_data(data) { + }; + + ~CClient() { + }; + + void call(motion_handle_t handle, int dx, int dy) { + if (cb_func) { + cb_func(handle, dx, dy, cb_data); + } + }; + + bool operator==(const CClient & value) const { + if ((value.cb_func == cb_func) && (value.cb_data == cb_data)) + return true; + + return false; + }; + private: + motion_callback_t cb_func; + void *cb_data; +}; + +class CComparator { + public: + CComparator(const CClient & data): client(data) { + }; + + bool operator() (const CClient * value)const { + if (client == *value) + return true; + + return false; + }; + private: + + const CClient & client; +}; + +//#define USE_SENSOR_THREAD +class CMotion { + private: + static void thSensorStartBlockingTilt(void *data, Ecore_Thread *thread) + { + CMotion *thiz = (CMotion *)data; + + thiz->start_tilt(); + + MSG_HIGH("Tilt Sensor start in thread!"); + }; + + static void thSensorStartBlockingPanning(void *data, Ecore_Thread *thread) + { + CMotion *thiz = (CMotion *)data; + + thiz->start_panning(); + + MSG_HIGH("Panning Sensor start in thread!"); + }; + + static void thSensorStartCancel(void *data, Ecore_Thread *thread) + { + MSG_HIGH("Sensor start cancelled!."); + }; + + static void thSensorStartEnd(void *data, Ecore_Thread *thread) + { + MSG_HIGH("Sensor start end!."); + }; + + static void on_motion(unsigned long long timestamp, int x, int y, void *data); + +public: + bool start_tilt() { + if (bInit_tilt == false ) + { + MSG_ERROR("Tilt Sensor already started"); + return false; + } + +// int ret = -1; + + /*PERF_CHECK_BEGIN(LVL5, "sensor_start"); + ret = sensor_start(mhandle_tilt, SENSOR_MOTION_TILT); + PERF_CHECK_END(LVL5, "sensor_start"); + if(ret != SENSOR_ERROR_NONE) + { + MSG_ERROR("sensor_start SENSOR_MOTION_TILT fail. %d", ret); + bStarted_tilt = false; + return false; + }*/ + + bStarted_tilt = true; + + return true; + + } + + bool start_panning() { + if (bInit_panning == false ) + { + MSG_ERROR("Panning Sensor already started"); + return false; + } + +// int ret = -1; + +// PERF_CHECK_BEGIN(LVL5, "sensor_start"); +// ret = sensor_start(mhandle_panning, SENSOR_MOTION_PANNING_BROWSE); +// PERF_CHECK_END(LVL5, "sensor_start"); +// if(ret != SENSOR_ERROR_NONE) +// { +// MSG_ERROR("sensor_start SENSOR_MOTION_PANNING_BROWSE fail. %d", ret); +// bStarted_panning = false; +// return false; +// } + + bStarted_panning = true; + return true; + + } + + bool start_async_tilt() { + m_thread_tilt = ecore_thread_run(thSensorStartBlockingTilt, NULL, NULL, this); + MSG_WARN("thread func addr = 0x%08x, 0x%08x, 0x%08x", thSensorStartBlockingTilt, thSensorStartEnd, thSensorStartCancel); + return true; + } + + bool start_async_panning() { + m_thread_panning = ecore_thread_run(thSensorStartBlockingPanning, NULL, NULL, this); + MSG_WARN("thread func addr = 0x%08x, 0x%08x, 0x%08x", thSensorStartBlockingPanning, thSensorStartEnd, thSensorStartCancel); + return true; + } + + bool stop_async_tilt() + { + if (m_thread_tilt) { + ecore_thread_cancel(m_thread_tilt); + m_thread_tilt = NULL; + } + return true; + } + + bool stop_async_panning() + { + if (m_thread_panning) { + ecore_thread_cancel(m_thread_panning); + m_thread_panning = NULL; + } + return true; + } + + bool stop_tilt() { + if (bInit_tilt == false ) + { + MSG_ERROR("Tilt Sensor already stopped"); + return false; + } + +// int ret = -1; + + /*ret = sensor_stop(mhandle_tilt, SENSOR_MOTION_TILT); + if(ret != SENSOR_ERROR_NONE) + { + MSG_ERROR("sensor_stop SENSOR_MOTION_TILT fail. %d", ret); + bStarted_tilt = true; + return false; + }*/ + + bStarted_tilt = false; + return true; + } + + bool stop_panning() { + if (bInit_panning == false ) + { + MSG_ERROR("Panning Sensor already stopped"); + return false; + } + +// int ret = -1; + +// ret = sensor_stop(mhandle_panning, SENSOR_MOTION_PANNING_BROWSE); +// if(ret != SENSOR_ERROR_NONE) +// { +// MSG_ERROR("sensor_stop SENSOR_MOTION_PANNING_BROWSE fail. %d", ret); +// bStarted_panning = true; +// return false; +// } + + bStarted_panning = false; + + return true; + } + + public: + CMotion() : rotate(0), bStarted_tilt(false), bStarted_panning(false), bInit_tilt(false), bInit_panning(false), + m_thread_tilt(NULL), m_thread_panning(NULL) { + }; + virtual ~ CMotion() { + // it is called after main loop end, because motion var is static + //deinit_sensor(); + + //stop_async(); + }; + + bool init_sensor_tilt(); + bool init_sensor_panning(); + bool deinit_sensor_tilt(); + bool deinit_sensor_panning(); + + CClient *register_sensor_tilt(motion_callback_t cb_func, void *data) { + const CClient find(cb_func, data); + + CComparator compare(find); + + list < CClient * >::iterator it = + find_if(client_list.begin(), client_list.end(), compare); + + if (it != client_list.end()) { + MSG_HIGH("Same client is exist."); + return *it; + // Founded + } + + CClient *client = new CClient(cb_func, data); + + client_list.push_back(client); + + if (client_list.size() == 1) { + MSG_HIGH("Start tilt sensor"); +#ifdef USE_SENSOR_THREAD + PERF_CHECK_BEGIN(LVL5, "sensor_start_async"); + start_async_tilt(); + PERF_CHECK_END(LVL5, "sensor_start_async"); +#else + start_tilt(); +#endif + } + + MSG_HIGH("Add client. Client=%d Handle=0x%08x", + client_list.size(), client); + + return client; + } + + CClient *register_sensor_panning(motion_callback_t cb_func, void *data) { + const CClient find(cb_func, data); + + CComparator compare(find); + + list < CClient * >::iterator it = + find_if(client_list.begin(), client_list.end(), compare); + + if (it != client_list.end()) { + MSG_HIGH("Same client is exist."); + return *it; + // Founded + } + + CClient *client = new CClient(cb_func, data); + + client_list.push_back(client); + + if (client_list.size() == 1) { + MSG_HIGH("Start panning sensor"); +#ifdef USE_SENSOR_THREAD + PERF_CHECK_BEGIN(LVL5, "sensor_start_async"); + start_async_panning(); + PERF_CHECK_END(LVL5, "sensor_start_async"); +#else + start_panning(); +#endif + } + + MSG_HIGH("Add client. Client=%d Handle=0x%08x", + client_list.size(), client); + + return client; + } + + void unregister_sensor_tilt(CClient * client) { + list < CClient * >::iterator it = + find(client_list.begin(), client_list.end(), client); + + if (it == client_list.end()) { + MSG_HIGH("Not found client Handle=0x%08x", client); + return; + // Founded + } + + client_list.remove(client); + + if (client_list.size() == 0) { + MSG_HIGH("Stop tilt sensor"); + + if (stop_tilt() == true ) + { + bStarted_tilt = true; + } + else + { + bStarted_tilt = false; + } + stop_async_tilt(); + } + + MSG_HIGH("Remove client. Client=%d Handle=0x%08x", + client_list.size(), client); + + delete client; + } + + void unregister_sensor_panning(CClient * client) { + list < CClient * >::iterator it = + find(client_list.begin(), client_list.end(), client); + + if (it == client_list.end()) { + MSG_HIGH("Not found client Handle=0x%08x", client); + return; + // Founded + } + + client_list.remove(client); + + if (client_list.size() == 0) { + MSG_HIGH("Stop panning sensor"); + + if (stop_panning() == true ) + { + bStarted_panning = true; + } + else + { + bStarted_panning = false; + } + stop_async_panning(); + } + + MSG_HIGH("Remove client. Client=%d Handle=0x%08x", + client_list.size(), client); + + delete client; + } + + list < CClient * > client_list; + + void swap(int &a, int &b) { + int tmp; + + tmp = a; + a = b; + b = tmp; + } + + void inform_client(int dx, int dy) { + + if (bStarted_panning == false && bStarted_tilt == false) + { + MSG_HIGH("ignore motion event."); + return ; + } + + switch (rotate) { + case 0: + dy = -dy; + break; + case 90: + swap(dx, dy); + break; + case 180: + break; + case 270: + swap(dx, dy); + dy = -dy; + break; + default: + break; + } + + for (list < CClient * >::iterator it = client_list.begin(); it != client_list.end(); it++) { + (*it)->call( static_cast(*it), dx, dy); + } + + MSG_HIGH("x:y = [%5d:%5d] rot=%d", dx, dy, rotate); + }; + + void set_rotate(int rotate) { + this->rotate = rotate; + }; + + private: + sensor_h mhandle_tilt; // Motion tilt handle + sensor_h mhandle_panning; // Motion panning handle + + int rotate; + bool bStarted_tilt; + bool bStarted_panning; + bool bInit_tilt; + bool bInit_panning; + + Ecore_Thread *m_thread_tilt; + Ecore_Thread *m_thread_panning; + +}; + +/************************ MOTION SENSOR *************************/ + +void CMotion::on_motion(unsigned long long timestamp, int x, int y, void *data) +{ + CMotion *thiz = (CMotion *) data; + IV_ASSERT(data != NULL); + + int rot = elm_win_rotation_get((Evas_Object *) ug_get_window()); + + thiz->set_rotate(rot); + + thiz->inform_client(x, y); +} + +bool CMotion::init_sensor_tilt() +{ +// int ret = -1; + + if (bInit_tilt == true) { + MSG_WARN("already sensor is initialized"); + return true; + } + +#ifdef TEST_SENSOR_ERROR + MSG_ERROR("motion sensor attach fail."); + return false; +#endif + MSG_HIGH("init sensor"); + + PERF_CHECK_BEGIN(LVL4, "sensor_create"); +// ret = sensor_create(&mhandle_tilt); +// if(ret != SENSOR_ERROR_NONE) +// { +// MSG_ERROR("tilt sensor_create fail. %d", ret); +// return false; +// } +// PERF_CHECK_END(LVL4, "sensor_create"); +// +// PERF_CHECK_BEGIN(LVL4, "sensor_motion_tilt_set_cb"); +// ret = sensor_motion_tilt_set_cb(mhandle_tilt, on_motion, (void *)this); +// if(ret != SENSOR_ERROR_NONE) +// { +// MSG_ERROR("sensor_motion_tilt_set_cb fail. %d", ret); +// sensor_destroy(mhandle_tilt); +// return false; +// } + PERF_CHECK_END(LVL4, "sensor_motion_tilt_set_cb"); + + MSG_HIGH("sensor init succeded"); + + bInit_tilt = true; + return true; + +} + +bool CMotion::init_sensor_panning() +{ +// int ret = -1; + + if (bInit_panning== true) { + MSG_WARN("already sensor is initialized"); + return true; + } + +#ifdef TEST_SENSOR_ERROR + MSG_ERROR("motion sensor attach fail."); + return false; +#endif + MSG_HIGH("init sensor"); + +// PERF_CHECK_BEGIN(LVL4, "sensor_create"); +// ret = sensor_create(&mhandle_panning); +// if(ret != SENSOR_ERROR_NONE) +// { +// MSG_ERROR("panning sensor_create fail. %d", ret); +// return false; +// } +// PERF_CHECK_END(LVL4, "sensor_create"); +// +// PERF_CHECK_BEGIN(LVL4, "sensor_motion_panning_browse_set_cb"); +// ret = sensor_motion_panning_browse_set_cb(mhandle_panning, on_motion, (void *)this); +// if(ret != SENSOR_ERROR_NONE) +// { +// MSG_ERROR("sensor_motion_panning_set_cb fail. %d", ret); +// sensor_destroy(mhandle_panning); +// return false; +// } + PERF_CHECK_END(LVL4, "sensor_motion_panning_browse_set_cb"); + + MSG_HIGH("sensor init succeded"); + + bInit_panning = true; + return true; +} + + +bool CMotion::deinit_sensor_tilt() +{ +// int ret = -1; + + if (bInit_tilt == false ) return true; + + if (client_list.size() != 0) { + MSG_HIGH("Client is remain"); + return false; + } + + bInit_tilt = false; + + MSG_HIGH("deinit sensor tilt"); + +// ret = sensor_motion_tilt_unset_cb(mhandle_tilt); +// if(ret != SENSOR_ERROR_NONE) +// { +// MSG_ERROR("sensor_motion_tilt_unset_cb fail. %d", ret); +// } +// +// ret = sensor_destroy(mhandle_tilt); +// if(ret != SENSOR_ERROR_NONE) +// { +// MSG_ERROR("tilt sensor_destroy fail. %d", ret); +// } + + return true; +} + +bool CMotion::deinit_sensor_panning() +{ +// int ret = -1; + + if (bInit_panning == false ) return true; + + if (client_list.size() != 0) { + MSG_HIGH("Client is remain"); + return false; + } + + bInit_panning = false; + + MSG_HIGH("deinit sensor panning"); + +// ret = sensor_motion_panning_browse_unset_cb(mhandle_panning); +// if(ret != SENSOR_ERROR_NONE) +// { +// MSG_ERROR("sensor_motion_panning_browse_unset_cb fail. %d", ret); +// } +// +// ret = sensor_destroy(mhandle_panning); +// if(ret != SENSOR_ERROR_NONE) +// { +// MSG_ERROR("paning sensor_destroy fail. %d", ret); +// } + + return true; +} + + +CMotion motion; + +extern "C" motion_handle_t ivug_motion_register_sensor(motion_type_e type, motion_callback_t + cb_func, void *data) +{ + CClient *client = NULL; + + if(type == IV_MOTION_TILT) + { + motion.init_sensor_tilt(); + + PERF_CHECK_BEGIN(LVL4, "register_sensor"); + client = motion.register_sensor_tilt(cb_func, data); + PERF_CHECK_END(LVL4, "register_sensor"); + } + else if(type == IV_MOTION_PANNING) + { + motion.init_sensor_panning(); + + PERF_CHECK_BEGIN(LVL4, "register_sensor"); + client = motion.register_sensor_panning(cb_func, data); + PERF_CHECK_END(LVL4, "register_sensor"); + } + + return (motion_handle_t) client; + +} + +extern "C" void ivug_motion_unregister_sensor(motion_type_e type, motion_handle_t handle) +{ + CClient *client = (CClient *) handle; + + if(type == IV_MOTION_TILT) + { + motion.unregister_sensor_tilt(client); + + motion.deinit_sensor_tilt(); + } + else if(type == IV_MOTION_PANNING) + { + motion.unregister_sensor_panning(client); + + motion.deinit_sensor_panning(); + } +} + diff --git a/feature/src/ivug-player.cpp b/feature/src/ivug-player.cpp new file mode 100755 index 0000000..be3465d --- /dev/null +++ b/feature/src/ivug-player.cpp @@ -0,0 +1,655 @@ +/* +* Copyright (c) 2000-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 "ivug-player.h" +#include "ivug-debug.h" + +#include + +#undef LOG_LVL +#define LOG_LVL DBG_MSG_LVL_HIGH + +#undef LOG_CAT +#define LOG_CAT "IV-PLAYER" + +#undef USE_STARTED_CB + +struct CPlayer { +public: + CPlayer() : pPlayerHandle(NULL), bUseSurface(false), UserCB(NULL), UserData(NULL) { }; + + player_h pPlayerHandle; // Player handle + + bool bUseSurface; + +// User callback + PlayerCallback UserCB; + void *UserData; + + operator PlayerHandle() const { return (PlayerHandle)this; }; +}; + +static const char *_strerror_player(int error) +{ + switch(error) + { + case PLAYER_ERROR_OUT_OF_MEMORY : + return "Out of memory"; + case PLAYER_ERROR_INVALID_PARAMETER : + return "Invalid parameter"; + case PLAYER_ERROR_NO_SUCH_FILE : + return "No such file or directory"; + case PLAYER_ERROR_INVALID_OPERATION : + return "Invalid operation"; + case PLAYER_ERROR_SEEK_FAILED : + return "Seek operation failure"; + case PLAYER_ERROR_INVALID_STATE : + return "Invalid state"; + case PLAYER_ERROR_NOT_SUPPORTED_FILE : + return "Not supported file format"; + case PLAYER_ERROR_INVALID_URI : + return "Invalid URI"; + case PLAYER_ERROR_SOUND_POLICY : + return "Sound policy error"; + case PLAYER_ERROR_CONNECTION_FAILED : + return "Streaming connection failed"; + case PLAYER_ERROR_VIDEO_CAPTURE_FAILED : + return "Video capture failure"; + default: + { + static char buf[40]; + snprintf(buf, 40, "Error Code=%d", error); + return buf; + } + + } +} + +static const char *_str_player_state_e(player_state_e state) +{ +/* +PLAYER_STATE_NONE Player is not created +PLAYER_STATE_IDLE Player is created, but not prepared +PLAYER_STATE_READY Player is ready to play media +PLAYER_STATE_PLAYING Player is playing media +PLAYER_STATE_PAUSED Player is paused while playing media + +*/ + switch(state) + { + case PLAYER_STATE_NONE: + return "Player is not created"; + case PLAYER_STATE_IDLE: + return "Player is created, but not prepared "; + case PLAYER_STATE_READY: + return "Player is ready to play media"; + case PLAYER_STATE_PLAYING: + return "Player is playing media"; + case PLAYER_STATE_PAUSED: + return "Player is paused while playing media"; + + default: + { + static char buf[40]; + snprintf(buf, 40, "Unknown state=%d", state); + return buf; + } + } +} + + +static void _OnPlayerError(int error_code, void *user_data) +{ + MSG_HIGH("On Player Error(%d) %s", error_code, _strerror_player(error_code)); + + CPlayer *pPlayer = static_cast(user_data); + + if (pPlayer->UserCB ) + { + PlayerParam param; + + param.type = IVUG_PLAYER_EVENT_ERROR; + param.param.error.error_code = error_code; + + (pPlayer->UserCB)(¶m, pPlayer->UserData); + + } +} + +static void _OnPlayerInterrupted(player_interrupted_code_e code, void *user_data) +{ + MSG_HIGH("On Player Interrupted : %d", code); +} + +static void _OnPlayerEOS(void *user_data) +{ + MSG_HIGH("On Player EOS"); + + CPlayer *pPlayer = static_cast(user_data); + + int nErr = PLAYER_ERROR_NONE; + + nErr = player_stop(pPlayer->pPlayerHandle); + if(nErr != PLAYER_ERROR_NONE) + { + MSG_ERROR("Player Stop Error(%d) %s", nErr, _strerror_player(nErr)); + // Go through + } + + nErr = player_unprepare(pPlayer->pPlayerHandle); + if(nErr != PLAYER_ERROR_NONE) + { + MSG_ERROR("Player Unprepare Error(%d) %s", nErr, _strerror_player(nErr)); + // Go through + } + + if (pPlayer->UserCB ) + { + PlayerParam param; + + param.type = IVUG_PLAYER_EVENT_EOS; + + (pPlayer->UserCB)(¶m, pPlayer->UserData); + } +} + +#ifdef USE_PREPARE_CB +static void _OnPlayerPrepared(void *user_data) +{ + CPlayer *pPlayer = static_cast(user_data); + + MSG_HIGH("On Player Prepared"); + + if (pPlayer->UserCB ) + { + PlayerParam param; + + param.type = IVUG_PLAYER_EVENT_PREPARED; + + (pPlayer->UserCB)(¶m, pPlayer->UserData); + } +} +#endif + +static bool register_callback(CPlayer *pPlayer) +{ + int ret = PLAYER_ERROR_NONE; + + ret = player_set_completed_cb(pPlayer->pPlayerHandle, _OnPlayerEOS, pPlayer); + if(ret != PLAYER_ERROR_NONE) + { + MSG_ERROR("Cannot set callback : %s", _strerror_player(ret)); + return false; + } + + ret = player_set_interrupted_cb(pPlayer->pPlayerHandle, _OnPlayerInterrupted, pPlayer); + if(ret != PLAYER_ERROR_NONE) + { + MSG_ERROR("Cannot set callback : %s", _strerror_player(ret)); + return false; + } + + ret = player_set_error_cb(pPlayer->pPlayerHandle, _OnPlayerError, pPlayer); + if( ret != PLAYER_ERROR_NONE) + { + MSG_ERROR("Cannot set callback : %s", _strerror_player(ret)); + return false; + } + + return true; +} + + + +PlayerHandle ivug_player_create() +{ + CPlayer *pPlayer = new CPlayer; + + sound_manager_set_session_type(SOUND_SESSION_TYPE_MEDIA); + int nErr = PLAYER_ERROR_NONE; + + try { + nErr = player_create(&pPlayer->pPlayerHandle); + if(nErr != PLAYER_ERROR_NONE) + { + MSG_ERROR("Fail to create player handle. (MMF Error code : %x)", nErr); + throw +"create fail"; + } + + register_callback(pPlayer); + + } + catch(...) + { + MSG_ERROR("Creation player failed"); + + delete pPlayer; + + return NULL; + } + + MSG_HIGH("Create player Handle=0x%08x", pPlayer); + return (PlayerHandle)pPlayer; + +} + + +bool ivug_player_set_file(PlayerHandle hPlayer, const char *szPath) +{ + CPlayer *pPlayer = static_cast(hPlayer); + + int nErr = PLAYER_ERROR_NONE; + + nErr = player_set_uri(pPlayer->pPlayerHandle, szPath); + if(nErr != PLAYER_ERROR_NONE) + { + MSG_ERROR("(%x) Fail to set uri", nErr); + return false; + } + + nErr = player_set_sound_type(pPlayer->pPlayerHandle, SOUND_TYPE_MEDIA); + if(nErr != PLAYER_ERROR_NONE) + { + MSG_ERROR("(%x):: Fail to set attribute ", nErr); + return false; + } + + MSG_HIGH("Set file : %s", szPath); + return true; +} + +bool ivug_player_set_mem(PlayerHandle hPlayer, const void *buffer, int len) +{ + CPlayer *pPlayer = static_cast(hPlayer); + + int nErr = PLAYER_ERROR_NONE; + + nErr = player_set_memory_buffer(pPlayer->pPlayerHandle, buffer, len); + if(nErr != PLAYER_ERROR_NONE) + { + MSG_ERROR("(%x) Fail to set uri", nErr); + return false; + } + + nErr = player_set_sound_type(pPlayer->pPlayerHandle, SOUND_TYPE_MEDIA); + if(nErr != PLAYER_ERROR_NONE) + { + MSG_ERROR("(%x):: Fail to set attribute ", nErr); + return false; + } + + MSG_HIGH("Set Mem : Buffer=0x%08x Len=%d", buffer, len); + return true; + +} + + +bool ivug_player_set_config(PlayerHandle hPlayer, PlayerConfig *pConfig) +{ + CPlayer *pPlayer = static_cast(hPlayer); + + if (pConfig == NULL) + { + MSG_WARN("No player config data. set default."); + return true; + } + + int nErr = PLAYER_ERROR_NONE; + + if (pConfig->bLooping == true ) + { + nErr = player_set_looping(pPlayer->pPlayerHandle, true); + + if(nErr != PLAYER_ERROR_NONE) + { + MSG_ERROR("[ERR] Error code : %x - Fail to set looping ", nErr); + return false; + } + } + else + { + nErr = player_set_looping(pPlayer->pPlayerHandle, false); + + if(nErr != PLAYER_ERROR_NONE) + { + MSG_ERROR("[ERR] Error code : %x - Fail to set looping ", nErr); + return false; + } + } + + if (pConfig->eSurface == IVUG_PLAYER_SURFACE_EVAS) + { + if (pConfig->pSurface == NULL) + { + MSG_FATAL("Invalid surface."); + + return false; + } + + nErr = player_set_display(pPlayer->pPlayerHandle, PLAYER_DISPLAY_TYPE_EVAS, pConfig->pSurface); + if(nErr != PLAYER_ERROR_NONE) + { + MSG_ERROR("[ERR] Error code : %x - Fail to set display ", nErr); + return false; + } + +// nErr = player_enable_evas_display_scaling(pPlayer->pPlayerHandle, false); +// if( nErr != PLAYER_ERROR_NONE) +// { +// MSG_ERROR("[ERR] Error code : %x - Fail to set evas_display_scaling ", nErr); +// return false; +// } + + pPlayer->bUseSurface = true; + + } + else if (pConfig->eSurface == IVUG_PLAYER_SURFACE_X11) + { + if (pConfig->pSurface == NULL) + { + MSG_FATAL("Invalid surface."); + + return false; + } + + nErr = player_set_display_mode(pPlayer->pPlayerHandle, PLAYER_DISPLAY_MODE_FULL_SCREEN); + if (nErr != PLAYER_ERROR_NONE) + { + MSG_ERROR("[ERR] Error code : %x - Fail to set display_mpde ", nErr); + } + + nErr = player_set_display(pPlayer->pPlayerHandle, PLAYER_DISPLAY_TYPE_OVERLAY, (void*)pConfig->pSurface); + + if( nErr != PLAYER_ERROR_NONE) + { + MSG_ERROR("[ERR] Error code : %x - Fail to set display", nErr); + + return false; + } + +// nErr = player_enable_evas_display_scaling(pPlayer->pPlayerHandle, true); +// if (nErr != PLAYER_ERROR_NONE) +// { +// MSG_ERROR("[ERR] Error code : %x - Fail to set evas_display_scaling", nErr); +// } + + nErr = player_set_display_visible(pPlayer->pPlayerHandle, true); + if (nErr != PLAYER_ERROR_NONE) + { + MSG_ERROR("[ERR] Error code : %x - Fail to set x11_display_visible", nErr); + } + + pPlayer->bUseSurface = true; + } + else + { + pPlayer->bUseSurface = false; + + MSG_WARN("No surface is specified."); + } + + MSG_HIGH("Set Config : Loop(%d) eSurface(%d) Surface(0x%08x)", pConfig->bLooping, pConfig->eSurface, pConfig->pSurface); + + return true; +} + +bool ivug_player_set_callback(PlayerHandle hPlayer, PlayerCallback cb, void *data) +{ + CPlayer *pPlayer = static_cast(hPlayer); + + pPlayer->UserCB = cb; + pPlayer->UserData = data; + + return true; +} + + +bool ivug_player_start(PlayerHandle hPlayer) +{ + CPlayer *pPlayer = static_cast(hPlayer); + + int nErr = PLAYER_ERROR_NONE; + + player_state_e pstate; + + nErr = player_get_state(pPlayer->pPlayerHandle, &pstate); + if(nErr != PLAYER_ERROR_NONE) + { + MSG_ERROR("Player Get state Error(%d) %s", nErr, _strerror_player(nErr)); + return false; + } + + if (pstate != PLAYER_STATE_PAUSED) + { + MSG_HIGH("Player Prepare"); + + nErr = player_prepare(pPlayer->pPlayerHandle); + if(nErr != PLAYER_ERROR_NONE) + { + MSG_ERROR("Error code : 0x%x %s", nErr, _strerror_player(nErr)); + return false; + } + } + + MSG_HIGH("Player Start"); + + nErr = player_start(pPlayer->pPlayerHandle); + if(nErr != PLAYER_ERROR_NONE) + { + MSG_ERROR("Error code : 0x%x", nErr); + return false; + } + + int w = 0, h = 0; + + if (pPlayer->bUseSurface == true ) + { + nErr = player_get_video_size(pPlayer->pPlayerHandle, &w, &h); + + MSG_HIGH("Player Start. Stream(%d,%d)", w, h); + + if( nErr != PLAYER_ERROR_NONE) + { + MSG_ERROR("Cannot get vide size : %s", _strerror_player(nErr)); + } + } + + MSG_HIGH("Player Started"); + + if (pPlayer->UserCB ) + { + PlayerParam param; + + param.type = IVUG_PLAYER_EVENT_STARTED; + +// In case of audio only, w&h is 0 + param.param.started.w = w; + param.param.started.h = h; + + (pPlayer->UserCB)(¶m, pPlayer->UserData); + } + + return true; +} + + +bool ivug_player_pause(PlayerHandle hPlayer) +{ + CPlayer *pPlayer = static_cast(hPlayer); + + int nErr = PLAYER_ERROR_NONE; + + nErr = player_pause(pPlayer->pPlayerHandle); + if(nErr != PLAYER_ERROR_NONE) + { + MSG_ERROR("Error code : 0x%x", nErr); + return false; + } + + MSG_HIGH("Player pause"); + + if (pPlayer->UserCB ) + { + PlayerParam param; + + param.type = IVUG_PLAYER_EVENT_PAUSED; + + (pPlayer->UserCB)(¶m, pPlayer->UserData); + } + + return true; +} + + +bool ivug_player_resume(PlayerHandle hPlayer) +{ + CPlayer *pPlayer = static_cast(hPlayer); + + int nErr = PLAYER_ERROR_NONE; + + nErr = player_start(pPlayer->pPlayerHandle); + if(nErr != PLAYER_ERROR_NONE) + { + MSG_ERROR("Error code : 0x%x", nErr); + return false; + } + + MSG_HIGH("Player resume"); + + return true; + +} + + +bool ivug_player_stop(PlayerHandle hPlayer) +{ + CPlayer *pPlayer = static_cast(hPlayer); + + int nErr = PLAYER_ERROR_NONE; + + player_state_e pstate; + + nErr = player_get_state(pPlayer->pPlayerHandle, &pstate); + if(nErr != PLAYER_ERROR_NONE) + { + MSG_ERROR("Player Get state Error(%d) %s", nErr, _strerror_player(nErr)); + return false; + } + + if (pstate == PLAYER_STATE_PAUSED || pstate == PLAYER_STATE_PLAYING) + { + MSG_HIGH("Player_Stop"); + + nErr = player_stop(pPlayer->pPlayerHandle); + if(nErr != PLAYER_ERROR_NONE) + { + int err = PLAYER_ERROR_NONE; + player_state_e pstate; + + err = player_get_state(pPlayer->pPlayerHandle, &pstate); + if(err != PLAYER_ERROR_NONE) + { + MSG_ERROR("Player Get state Error(%d) %s", nErr, _strerror_player(nErr)); + return false; + } + + MSG_HIGH("Player Stop Error(%d) %s. State=%s", nErr, _strerror_player(nErr), _str_player_state_e(pstate) ); + return false; + } + + } + + nErr = player_unprepare(pPlayer->pPlayerHandle); + if(nErr != PLAYER_ERROR_NONE) + { + MSG_HIGH("Player Unprepare Error(%d) %s", nErr, _strerror_player(nErr)); + + return false; + } + + MSG_HIGH("Player stop"); + + return true; + +} + + + +bool ivug_player_delete(PlayerHandle hPlayer) +{ + CPlayer *pPlayer = static_cast(hPlayer); + + int nErr = PLAYER_ERROR_NONE; + + nErr = player_destroy(pPlayer->pPlayerHandle); + if(nErr != PLAYER_ERROR_NONE) + { + MSG_ERROR("Error code : 0x%x", nErr); +// Go through + } + + MSG_HIGH("Player destroy. Handle=0x%08x", pPlayer); + + sound_manager_set_session_type(SOUND_SESSION_TYPE_MEDIA); + + delete pPlayer; + + return true; +} + +bool ivug_player_state_get(PlayerHandle hPlayer, PlayerState * /* INOUT */ state) +{ + MSG_ASSERT(state != NULL); + + CPlayer *pPlayer = static_cast(hPlayer); + + int nErr = PLAYER_ERROR_NONE; + + player_state_e pstate; + + nErr = player_get_state(pPlayer->pPlayerHandle, &pstate); + if(nErr != PLAYER_ERROR_NONE) + { + MSG_HIGH("Player Get state Error(%d) %s", nErr, _strerror_player(nErr)); + *state = IVUG_PLAYER_STATE_NONE; + return false; + } + + switch(pstate) + { + case PLAYER_STATE_NONE: + case PLAYER_STATE_IDLE: + case PLAYER_STATE_READY: + *state = IVUG_PLAYER_STATE_CREATED; + break; + case PLAYER_STATE_PLAYING: + *state = IVUG_PLAYER_STATE_PLAYING; + break; + case PLAYER_STATE_PAUSED: + *state = IVUG_PLAYER_STATE_PAUSED; + break; + default: + MSG_FATAL("Invalid pstate : %d", pstate); + *state = IVUG_PLAYER_STATE_NONE; + break; + } + + return true; +} + + + diff --git a/feature/src/ivug-transcoder.cpp b/feature/src/ivug-transcoder.cpp new file mode 100755 index 0000000..7074008 --- /dev/null +++ b/feature/src/ivug-transcoder.cpp @@ -0,0 +1,360 @@ +/* +* Copyright (c) 2000-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 "ivug-define.h" +#include "ivug-debug.h" +#include "ivug-transcoder.h" + +#include "ivug-file-info.h" + +#if 0 +#include + +#undef LOG_LVL +#define LOG_LVL DBG_MSG_LVL_HIGH + +#undef LOG_CAT +#define LOG_CAT "IV-TRANS" + + +#define FRAME_RATE (2) + +/* +gst-launch multifilesrc location="/opt/usr/media/DCIM/Camera/20130826-133700.jpg" caps="image/jpeg,framerate=2/1" loop=true do-timestamp=false num-buffers=5 ! jpegdec ! + videoflip method=1 ! videoscale ! capsfilter caps="video/x-raw-yuv,format=(fourcc)I420,width=720,height=1280,framerate=2/1" ! savsenc_mp4 gob-size=10 auto-setting=false data-partitioning=false ! mp4mux movie-timescale=1024 name=mux ! filesink location=rr1.mp4 sync=false async=false +filesrc location="/tmp/.ivug_t.wav" ! wavparse ! audioconvert ! savsenc_aac ! mux. + +gst-launch filesrc location="/opt/usr/media/DCIM/Camera/20130819-124914.jpg" typefind=true ! jpegdec ! "video/x-raw-yuv,format=(fourcc)I420,framerate=1/1" ! videoflip method=1 ! videoscale +! capsfilter caps="video/x-raw-yuv,format=(fourcc)I420,width=1280,height=720,framerate=1/1" ! savsenc_mp4 gop-size=1 ! mp4mux name=mux ! filesink location=rr1.mp4 sync=false +filesrc location="/tmp/.ivug_t.wav" ! wavparse ! audioconvert ! savsenc_aac ! mux. + + +*/ + +typedef struct _CustomData +{ + GstElement *pipeline; + GstElement *audioconvert; +} CustomData; + +static void pad_added_handler (GstElement *src, GstPad *new_pad /* Created somtimes pad */, CustomData *data) +{ + GstPad *sink_pad = gst_element_get_static_pad (data->audioconvert, "sink"); + + GstPadLinkReturn ret; + GstCaps *new_pad_caps = NULL; + GstStructure *new_pad_struct = NULL; + const gchar *new_pad_type = NULL; + + MSG_ERROR ("Received new pad '%s' from '%s':\n", GST_PAD_NAME (new_pad), GST_ELEMENT_NAME (src)); + +/* If our converter is already linked, we have nothing to do here */ + if (gst_pad_is_linked (sink_pad)) + { + MSG_ERROR (" We are already linked. Ignoring."); + goto exit; + } + + /* Check the new pad's type */ + new_pad_caps = gst_pad_get_caps (new_pad); + new_pad_struct = gst_caps_get_structure (new_pad_caps, 0); + new_pad_type = gst_structure_get_name (new_pad_struct); + + if (!g_str_has_prefix (new_pad_type, "audio/x-raw")) + { + MSG_ERROR (" It has type '%s' which is not raw audio. Ignoring.", new_pad_type); + goto exit; + } + + /* Attempt the link */ + ret = gst_pad_link (new_pad, sink_pad); + if (GST_PAD_LINK_FAILED (ret)) { + MSG_ERROR (" Type is '%s' but link failed.", new_pad_type); + } + else { + MSG_ERROR (" Link succeeded (type '%s').", new_pad_type); + } + +exit: /* Unreference the new pad's caps, if we got them */ + + if (new_pad_caps != NULL) + gst_caps_unref (new_pad_caps); + + /* Unreference the sink pad */ + gst_object_unref (sink_pad); +} + + + +extern "C" bool ivug_trancoder_convert_video(const char *jpg, const char *wav, const char *outfile, IVTransConfig *config) +{ + MSG_ERROR("Jpeg=%s Wav=%s Out=%s Size=%d", jpg, wav, outfile, config->inSizeLimit); + + CustomData data; + + GstElement *pipeline; + + gst_init(NULL,NULL); + + pipeline = gst_pipeline_new ("my-transcoder"); + +/* create elements */ + GstElement *source = gst_element_factory_make ("multifilesrc", "isource"); // Image source + + g_object_set (source, "location", jpg, + "caps", gst_caps_new_simple ("image/jpeg", + "framerate", GST_TYPE_FRACTION, FRAME_RATE, 1, + NULL), + "do-timestamp", false, + "num-buffers", 5, + "loop", true, + NULL); + +// Video path + GstElement *decoder = gst_element_factory_make ("jpegdec", "idecoder"); // Image decoder + +/* + Orientation + + 1 : top left + 2 : top right + 3 : bottom right + 4 : bottom left + 5 : left top + 6 : right top + 7 : right bottom + 8 : left bottom + + + method : method + flags: readable, writable, controllable + Enum "GstVideoFlipMethod" Default: 0, "none" + (0): none - Identity (no rotation) + (1): clockwise - Rotate clockwise 90 degrees + (2): rotate-180 - Rotate 180 degrees + (3): counterclockwise - Rotate counter-clockwise 90 degrees + (4): horizontal-flip - Flip horizontally + (5): vertical-flip - Flip vertically + (6): upper-left-diagonal - Flip across upper left/lower right diagonal + (7): upper-right-diagonal - Flip across upper right/lower left diagonal +*/ + GstElement *vflip = gst_element_factory_make ("videoflip", "vflip"); + + int method[] = { 0, 0, 4, 2, 5, 0, 1, 0, 3 }; + + g_object_set (vflip, "method", method[config->inOrientation], NULL); + + GstElement *vscale = gst_element_factory_make ("videoscale", "vscale"); + + GstElement *capsfilter = gst_element_factory_make ("capsfilter", "cfilter"); + + g_object_set (capsfilter, "caps", + gst_caps_new_simple("video/x-raw-yuv", + "format", GST_TYPE_FOURCC, GST_MAKE_FOURCC ('I', '4', '2', '0'), + "width", G_TYPE_INT, config->inWidth, + "height", G_TYPE_INT, config->inHeight, + "framerate", GST_TYPE_FRACTION, FRAME_RATE, 1, + NULL), + NULL); +// "video/x-raw-yuv,format=(fourcc)I420,width=800,height=400,framerate=1/1" + + + GstElement *encoder = gst_element_factory_make ("savsenc_mp4", "vencoder"); // Video Encoder + + g_object_set (encoder, "gob-size", 10, + "auto-setting", false, + "data-partitioning", false, +// "hw-accel", false, + NULL); + +// Audio path + GstElement *asource = gst_element_factory_make ("filesrc", "asource"); // Audio source + MSG_ASSERT(asource != NULL); + + g_object_set (asource, "location", wav +// , "do-timestamp", true + , NULL); + + GstElement *wavparser = gst_element_factory_make ("wavparse", "wavparser"); // Wave parser + MSG_ASSERT(wavparser != NULL); + + GstElement *audioconvert = gst_element_factory_make ("audioconvert", "aconv"); // Wave parser + MSG_ASSERT(audioconvert != NULL); + +/* Connect to the pad-added signal */ + data.audioconvert = audioconvert; + g_signal_connect (wavparser, "pad-added", G_CALLBACK (pad_added_handler), &data); + + GstElement *aacenc = gst_element_factory_make ("savsenc_aac", "aacenc"); // AAC Encoder + MSG_ASSERT(aacenc != NULL); + +// Multiplexed + GstElement *muxer = gst_element_factory_make ("mp4mux", "muxer"); // Muxer + + GstElement *sink = gst_element_factory_make ("filesink", "fsink"); // file sink + + g_object_set (sink, "location", outfile, + "sync", false, + "async", false, + NULL); + + if (!source || !decoder || !vflip || !vscale || !capsfilter || !encoder || + !asource || !wavparser || !audioconvert || !aacenc || !muxer || !sink) + { + MSG_ERROR("Some Element is not crated"); + return -1; + } + +/* must add elements to pipeline before linking them */ + gst_bin_add_many (GST_BIN (pipeline), + source, decoder, vflip, vscale, capsfilter, encoder, + asource, wavparser, audioconvert, aacenc, + muxer, sink, + NULL); + + /* link */ + if (gst_element_link_many (source, decoder, vflip, vscale, capsfilter, encoder, NULL) != TRUE) { + MSG_ERROR("Cannot link element 1"); + gst_object_unref(pipeline); + return false; + } + + if (gst_element_link_many (asource, wavparser, NULL) != TRUE) { + MSG_ERROR("Cannot link element 2"); + gst_object_unref(pipeline); + return false; + } + + if (gst_element_link_many (audioconvert, aacenc, NULL) != TRUE) { + MSG_ERROR("Cannot link element 3"); + gst_object_unref(pipeline); + return false; + } + + if (gst_element_link_many (muxer, sink, NULL) != TRUE) { + MSG_ERROR("Cannot link element 4"); + gst_object_unref(pipeline); + return false; + } + + +/* Get request pad */ + GstPadTemplate *mux_asink_pad_template = gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS (muxer), "audio_%d"); + GstPadTemplate *mux_vsink_pad_template = gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS (muxer), "video_%d"); + + GstPad *vpad, *apad; + + vpad = gst_element_request_pad (muxer, mux_vsink_pad_template, NULL, NULL); + apad = gst_element_request_pad (muxer, mux_asink_pad_template, NULL, NULL); + + + GstPad *enc_v_pad; + enc_v_pad = gst_element_get_static_pad (encoder, "src"); + + GstPad *enc_a_pad; + enc_a_pad = gst_element_get_static_pad (aacenc, "src"); + + if (gst_pad_link (enc_v_pad, vpad) != GST_PAD_LINK_OK || + gst_pad_link (enc_a_pad, apad) != GST_PAD_LINK_OK) + { + MSG_ERROR ("Tee could not be linked."); + gst_object_unref (pipeline); + return -1; + } + + gst_object_unref (enc_v_pad); + gst_object_unref (enc_a_pad); + +/* Start playing */ + GstStateChangeReturn ret; + + ret = gst_element_set_state (pipeline, GST_STATE_PLAYING); + + if (ret == GST_STATE_CHANGE_FAILURE) + { + MSG_ERROR("Unable to set the pipeline to the playing state."); + gst_object_unref (pipeline); + return false; + } + + + /* Listen to the bus */ + GstBus *bus; + GstMessage *msg; + bool terminate = false; + + bus = gst_element_get_bus (pipeline); + + do { + msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE, (GstMessageType)(GST_MESSAGE_STATE_CHANGED | GST_MESSAGE_ERROR | GST_MESSAGE_EOS) ); + /* Parse message */ + if (msg != NULL) + { + GError *err; + gchar *debug_info; + + switch (GST_MESSAGE_TYPE (msg)) + { + case GST_MESSAGE_ERROR: + gst_message_parse_error (msg, &err, &debug_info); + MSG_ERROR ("Error received from element %s: %s", GST_OBJECT_NAME (msg->src), err->message); + MSG_ERROR ("Debugging information: %s", debug_info ? debug_info : "none"); + g_clear_error (&err); + g_free (debug_info); + terminate = TRUE; + break; + + case GST_MESSAGE_EOS: + MSG_ERROR ("End-Of-Stream reached."); + terminate = TRUE; + break; + case GST_MESSAGE_STATE_CHANGED: + /* We are only interested in state-changed messages from the pipeline */ + if (GST_MESSAGE_SRC (msg) == GST_OBJECT (pipeline)) + { + GstState old_state, new_state, pending_state; + gst_message_parse_state_changed (msg, &old_state, &new_state, &pending_state); + MSG_ERROR ("Pipeline state changed from %s to %s:", gst_element_state_get_name (old_state), gst_element_state_get_name (new_state)); + } + break; + default: /* We should not reach here */ + MSG_ERROR ("Unexpected message received."); + break; + } + + gst_message_unref (msg); + } + } while (!terminate); + +/* +gst_element_release_request_pad (tee, tee_audio_pad); gst_element_release_request_pad (tee, tee_video_pad); gst_object_unref (tee_audio_pad); gst_object_unref (tee_video_pad); + +*/ + /* Free resources */ + gst_object_unref (bus); + gst_element_set_state (pipeline, GST_STATE_NULL); + gst_object_unref (pipeline); + return true; +} + + +#else +extern "C" bool ivug_trancoder_convert_video(const char *jpg, const char *wav, const char *outfile, IVTransConfig *config) +{ + MSG_ERROR("Feature is disabled"); + return false; +} +#endif diff --git a/feature/src/ivug-vibration.c b/feature/src/ivug-vibration.c new file mode 100755 index 0000000..f9b14fc --- /dev/null +++ b/feature/src/ivug-vibration.c @@ -0,0 +1,125 @@ +/* +* Copyright (c) 2000-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 "ivug-vibration.h" +#include "ivug-debug.h" + +#include +#ifdef USE_MAXLENGTH_VIBE +#include + +static const char *_conver_error(int err) +{ + switch (err) + { + case HAPTIC_ERROR_NONE: + return "Successful"; + case HAPTIC_ERROR_INVALID_PARAMETER: + return "Invalid parameter"; + case HAPTIC_ERROR_NOT_INITIALIZED: + return "Not initialized"; + case HAPTIC_ERROR_OPERATION_FAILED: + return "Operation failed"; + case HAPTIC_ERROR_NOT_SUPPORTED_DEVICE: + return "Not supported device"; + default: + { + static char error[128]; + snprintf(error, 128, "Unknow Error : %d(0x%08x)", err, err); + return error; + } + } + + return NULL; + +} + + +vibration_h ivug_vibration_create() +{ + int ret = HAPTIC_ERROR_NONE; + haptic_device_h handle = NULL; + + ret = haptic_open(HAPTIC_DEVICE_ALL, &handle); + + if (ret != HAPTIC_ERROR_NONE) + { + MSG_UTIL_ERROR("device_haptic_open failed. %s", _conver_error(ret)); + return NULL; + } + + MSG_UTIL_HIGH("Vibration init. Handle=%x", handle); + + return (vibration_h)handle; +} + +bool ivug_vibration_play(vibration_h v_handle, int duration) +{ + IV_ASSERT(v_handle!=NULL); + int ret = HAPTIC_ERROR_NONE; + haptic_device_h handle = (haptic_device_h)v_handle; + + MSG_UTIL_HIGH("Vibration start. Handle=%x duration=%d", handle, duration); + + ret = haptic_vibrate_monotone(handle, duration, NULL); + + if (ret != HAPTIC_ERROR_NONE) + { + MSG_UTIL_ERROR("haptic_vibrate_monotone error Handle=%x. %s", handle, _conver_error(ret)); + return false; + } + + return true; +} + +bool ivug_vibration_stop(vibration_h v_handle) +{ + IV_ASSERT(v_handle!=NULL); + int ret = HAPTIC_ERROR_NONE; + haptic_device_h handle = (haptic_device_h)v_handle; + + MSG_UTIL_HIGH("Vibration stop. Handle=%x", handle); + + ret = haptic_stop_all_effects(handle); + if (ret != 0) + { + MSG_UTIL_ERROR("haptic_stop_device failed. %s", _conver_error(ret)); + } + + return true; +} + + +bool ivug_vibration_delete(vibration_h v_handle) +{ + IV_ASSERT(v_handle!=NULL); + int ret = HAPTIC_ERROR_NONE; + haptic_device_h handle = (haptic_device_h)v_handle; + + MSG_UTIL_HIGH("Vibration deinit. Handle=%x", handle); + + ret = haptic_close(handle); + + if (ret != HAPTIC_ERROR_NONE) + { + MSG_UTIL_ERROR("device_haptic_close failed. %s", _conver_error(ret)); + } + + return true; +} +#endif + diff --git a/include/ivug-datatypes.h b/include/ivug-datatypes.h index 49f4349..e9066b8 100755 --- a/include/ivug-datatypes.h +++ b/include/ivug-datatypes.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_DATATYPES_H__ #define __IVUG_DATATYPES_H__ @@ -31,13 +32,18 @@ #endif typedef enum { - IVUG_VIEW_BY_INVAILD = 0x00, - IVUG_VIEW_BY_FILE, - IVUG_VIEW_BY_ALL, +IVUG_VIEW_BY_ALL = 0x00, + //IVUG_VIEW_BY_INVAILD = 0x00, + IVUG_VIEW_BY_FILE, // Single file. +// IVUG_VIEW_BY_ALL, +IVUG_VIEW_BY_INVAILD, + IVUG_VIEW_BY_HIDDEN_ALL, IVUG_VIEW_BY_FAVORITES, IVUG_VIEW_BY_TAG, IVUG_VIEW_BY_FOLDER, // Same as DB Album. will be renamed to BY_ALBUM + IVUG_VIEW_BY_HIDDEN_FOLDER, IVUG_VIEW_BY_PLACES, + IVUG_VIEW_BY_TIMELINE, IVUG_VIEW_BY_DIRECTORY, } ivug_view_by; diff --git a/include/ivug-define.h b/include/ivug-define.h index 4f9e317..3ea5a26 100755 --- a/include/ivug-define.h +++ b/include/ivug-define.h @@ -1,24 +1,27 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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. +* +*/ /* ONLY system widely used definition. */ -#pragma once +#ifndef __IVUG_DEFINE_H__ +#define __IVUG_DEFINE_H__ + /* # use string UUID @@ -36,6 +39,8 @@ ADD_DEFINITIONS("-D_USE_MEDIAINFO_STRINGID_") #define IVUG_INVALID_INDEX (0) // index was not set +#define MAX_CHAR_LEN 50 + #define MAX_BYTE_LEN 254 /* @@ -43,14 +48,73 @@ ADD_DEFINITIONS("-D_USE_MEDIAINFO_STRINGID_") */ #define TA_SAVETO_FILE -// Temp. will be removed. -#ifdef TARGET // i386 does not support face function -#define ENABLE_FACE_MENU -#endif - #define USE_NEW_DB_API +#define USE_THUMBLIST +#define USE_EXT_SLIDESHOW +#define USE_VIDEOCAM + +#define USE_ADD_COMMENT + +//#define USE_HELP_POPUP + +#define DO_PRAGMA(x) _Pragma (#x) +#define TODO(x) DO_PRAGMA(message ("TODO - " #x)) +#define FIXME(x) DO_PRAGMA(message ("FIXME - " #x)) + +#define INVALID_FILENAME_CHAR "\\/;:*?<>|\"" + +//#define IV_EXTENDED_FEATURES + +//#define USE_BROWSE_FUNC //allshare browse + + + +/************************************************************************************ + * + * GUI Configuration + * +************************************************************************************/ + + +/* + What kind of theme used. +*/ +#define WHITE_THEME + + +/* + If enabled, use RECT instead of SPACER +*/ +#undef USE_PADDING_RECT + +#define USE_SINGLE_ASF //single file at allshare + +#define USE_LIST_RELOAD + +#define QPHOTO_CONFIG_DOUBLE_TAP_INTERVAL (0.33f) + + +/* + QPHOTO_CONFIG_BETWEEN_IMAGE_GAP + Gap between images is 60 pixel + + QPHOTO_CONFIG_ANI_SLIDE_MAX_DURATION + QPHOTO_CONFIG_ANI_SLIDE_MIN_DURATION + + + QPHOTO_CONFIG_ANI_SNAP_BACK_DURATION + Image +*/ + +#define QPHOTO_CONFIG_ANI_SLIDE_MAX_DURATION (300) +#define QPHOTO_CONFIG_ANI_SLIDE_MIN_DURATION (5) +#define QPHOTO_CONFIG_ANI_SLIDE_INVERSE_PROPORTION (2000000) + +#define QPHOTO_CONFIG_ANI_SNAP_BACK_DURATION (400) +#define QPHOTO_CONFIG_ANI_ZOOM_DURATION (50) + +#define QPHOTO_CONFIG_ANI_DOUBLE_TAB_ZOOM_DURATION (334) -#define ZOOM_LEVEL_STEP (0.7) -#define ZOOM_LEVEL_MAX (4) +#define QPHOTO_CONFIG_BETWEEN_IMAGE_GAP (60) -#define USE_DEFAULT_APP_SERVICE +#endif // __IVUG_DEFINE_H__ diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index d0c71af..a39e6ec 100755 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -3,7 +3,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) SET(VERSION_MAJOR 0) SET(VERSION "${VERSION_MAJOR}.1.0") -PROJECT(ug-image-viewer-efl C CXX) +PROJECT(image-viewer C CXX) EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE CMAKE_SYSTEM_VERSION) @@ -11,7 +11,10 @@ SET(PREFIX ${CMAKE_INSTALL_PREFIX}) SET(SRCS # Entry point - src/ug-image-viewer.cpp + src/ivug-base.cpp + +#Event + src/view/ivug-smart-event-box.c # View related src/view/ivug-main-view.cpp @@ -21,28 +24,27 @@ SET(SRCS src/view/ivug-slideshow-view.cpp src/view/ivug-name-view.c - src/view/ivug-details-view.c - src/view/ivug-crop-view.cpp + src/view/ivug-buddy-view.c -# SetAs View - src/view/ivug-setas-view.c - src/view/ivug-setas-view-wallpaper.cpp - src/view/ivug-setas-view-callerid.cpp + src/view/ivug-photocam.cpp # Slider - src/slider/ivug-slider.cpp - src/slider/ivug-slider-item.cpp - src/slider/ivug-slider-mouse.cpp + src/slider/ivug-slider-new.cpp # Control related src/control/ivug-parameter.c - src/control/ivug-context.c - src/control/ivug-detail-info.c - src/control/ivug-setas.cpp src/control/ivug-crop-ug.cpp - src/control/ivug-widget.c - src/control/ivug-selectioninfo.c - src/control/ivug-popup.c + src/control/ivug-ext-ug.c + + src/control/ivug-context.c + +# Popup + src/popup/ivug-popup.c + +# Thumb list + src/thumblist/ivug-thumblist.cpp + + src/decolayer/ivug-decolayer.cpp ) # message("System = ${CMAKE_SYSTEM_VERSION}") @@ -56,6 +58,9 @@ INCLUDE_DIRECTORIES( src src/include src/control + src/thumblist + src/decolayer + src/popup ${IVUG_SOURCE_FEATURE_DIR}/include ${IVUG_SOURCE_SLIDESHOW_DIR}/include @@ -65,7 +70,7 @@ INCLUDE_DIRECTORIES( ) INCLUDE(FindPkgConfig) -pkg_check_modules(pkgs REQUIRED +pkg_check_modules(${PROJECT_NAME}_pkgs REQUIRED elementary edje evas @@ -77,35 +82,44 @@ pkg_check_modules(pkgs REQUIRED ecore-x ecore-input ecore-evas - utilX ui-gadget-1 libmedia-utils media-thumbnail - drm-client glib-2.0 - vconf + shortcut + notification + deviced capi-appfw-application capi-appfw-app-manager + capi-media-player + capi-content-mime-type + capi-content-media-content + pkgmgr-info + sensor + ui-gadget-1 + efl-extension + storage + capi-system-device ) -FOREACH(flag ${pkgs_CFLAGS}) +FOREACH(flag ${${PROJECT_NAME}_pkgs_CFLAGS}) SET(EXTRA_FLAGS "${EXTRA_FLAGS} ${flag}") ENDFOREACH(flag) -ADD_DEFINITIONS("-DUG_MODULE_API=__attribute__ \(\(visibility\(\"default\"\)\)\)") -ADD_DEFINITIONS("-DPACKAGE=\"${PROJECT_NAME}\"") +ADD_DEFINITIONS("-DEXPORT_API=__attribute__ \(\(visibility\(\"default\"\)\)\)") +#ADD_DEFINITIONS("-DPACKAGE=\"${PROJECT_NAME}\"") #ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS}) -ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS}) +#ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS}) +ADD_LIBRARY(${PROJECT_NAME} STATIC ${SRCS}) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION_MAJOR}) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION}) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS ${EXTRA_FLAGS}) -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib) TARGET_LINK_LIBRARIES(${PROJECT_NAME} - ${pkgs_LDFLAGS} ${armpkgs_LDFLAGS} - "-ldl" + ${${PROJECT_NAME}_pkgs_LDFLAGS} + -L${CMAKE_SOURCE_DIR}/Qphoto ivug_common ivug_widget ivug_medialist ivug_slideshow ) @@ -116,28 +130,33 @@ SET(THEME white) # Build edc files BUILD_EDJ(ivug-base.edc ivug-base.edj layout images) -BUILD_EDJ(ivug-main.edc ivug-main.edj layout images) -BUILD_EDJ(ivug-effect.edc ivug-effect.edj layout images) -BUILD_EDJ(ivug-details.edc ivug-details.edj layout images) -BUILD_EDJ(ivug-selectioninfo.edc ivug-selectioninfo.edj layout images) +BUILD_EDJ(ivug-best.edc ivug-best.edj layout images) +BUILD_EDJ(ivug-buddy-view.edc ivug-buddy-view.edj layout images) +BUILD_EDJ(ivug-tag-buddy.edc ivug-tag-buddy.edj layout images) BUILD_EDJ(ivug-popup.edc ivug-popup.edj layout images) +BUILD_EDJ(ivug-nearby-device.edc ivug-nearby-device.edj layout images) BUILD_EDJ(ivug-crop-view.edc ivug-crop-view.edj layout crop-view) BUILD_EDJ(ivug-icons.edc ivug-icons.edj layout icons) -BUILD_EDJ(ivug-slider.edc ivug-slider.edj layout icons) -BUILD_EDJ(ivug-gengrid.edc ivug-gengrid.edj layout gengrid) - +BUILD_EDJ(ivug-slider-new.edc ivug-slider-new.edj layout icons) +BUILD_EDJ(ivug-slider-new-hd.edc ivug-slider-new-hd.edj layout icons) BUILD_EDJ(ivug-setas.edc ivug-setas.edj layout ${THEME_FOLDER}/${THEME}) -BUILD_EDJ(ivug-naviframe.edc ivug-naviframe.edj layout ${THEME_FOLDER}/${THEME}) BUILD_EDJ(ivug-name-view.edc ivug-name-view.edj layout ${THEME_FOLDER}/${THEME}) -BUILD_EDJ(ivug-slideshow-view.edc ivug-slideshow-view.edj layout ${THEME_FOLDER}/${THEME}) -BUILD_EDJ(ivug-genlist.edc ivug-genlist.edj layout/genlist ../${THEME_FOLDER}/${THEME}) +BUILD_EDJ(ivug-edit-weather-view.edc ivug-edit-weather-view.edj layout ${THEME_FOLDER}/${THEME}) +BUILD_EDJ(weather-tag-buddy.edc weather-tag-buddy.edj layout ${THEME_FOLDER}/${THEME}) + +BUILD_EDJ_SOUND(ivug-main.edc ivug-main.edj layout images sounds) +BUILD_EDJ_SOUND(ivug-details.edc ivug-details.edj layout images sounds) +BUILD_EDJ_SOUND(ivug-thumblist.edc ivug-thumblist.edj layout thumblist sounds) +BUILD_EDJ_SOUND(ivug-button.edc ivug-button.edj layout buttons sounds) + + # Install image files. -INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/res/images/ DESTINATION ${CMAKE_INSTALL_PREFIX}/res/images/${PROJECT_NAME}) +INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/res/images/ DESTINATION ${CMAKE_INSTALL_PREFIX}/res/images/${IVUG_PACKAGE_NAME}) # -INSTALL(DIRECTORY DESTINATION ${CMAKE_DATA_DIR}/${PROJECT_NAME}) +INSTALL(DIRECTORY DESTINATION ${CMAKE_DATA_DIR}/${IVUG_PACKAGE_NAME}) diff --git a/main/layout/buttons/00_tab_focus_dbg.png b/main/layout/buttons/00_tab_focus_dbg.png new file mode 100644 index 0000000..284eb02 Binary files /dev/null and b/main/layout/buttons/00_tab_focus_dbg.png differ diff --git a/main/layout/buttons/image_viewer_icon_favorite.png b/main/layout/buttons/image_viewer_icon_favorite.png new file mode 100644 index 0000000..367e2c7 Binary files /dev/null and b/main/layout/buttons/image_viewer_icon_favorite.png differ diff --git a/main/layout/buttons/image_viewer_icon_favorite_shadow.png b/main/layout/buttons/image_viewer_icon_favorite_shadow.png new file mode 100644 index 0000000..8d7bae0 Binary files /dev/null and b/main/layout/buttons/image_viewer_icon_favorite_shadow.png differ diff --git a/main/layout/buttons/image_viewer_icon_favorite_stroke.png b/main/layout/buttons/image_viewer_icon_favorite_stroke.png new file mode 100644 index 0000000..c714aa7 Binary files /dev/null and b/main/layout/buttons/image_viewer_icon_favorite_stroke.png differ diff --git a/main/layout/genlist/genlist_group_index.edc b/main/layout/genlist/genlist_group_index.edc deleted file mode 100755 index 5f42a9b..0000000 --- a/main/layout/genlist/genlist_group_index.edc +++ /dev/null @@ -1,421 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ - - // 2.1.1 - group { name: "elm/genlist/item/groupindex/default"; - alias: "elm/genlist/item_odd/groupindex/default"; - alias: "elm/genlist/item_compress/groupindex/default"; - alias: "elm/genlist/item_compress_odd/groupindex/default"; - alias: "elm/genlist/item/grouptitle/default"; - alias: "elm/genlist/item_odd/grouptitle/default"; - alias: "elm/genlist/item_compress/grouptitle/default"; - alias: "elm/genlist/item_compress_odd/grouptitle/default"; - - data.item: "stacking" "above"; - data.item: "selectraise" "on"; - data.item: "texts" "elm.text"; - data.item: "treesize" "GENLIST_TREESIZE_DEFAULT"; - - GENLIST_IMAGE_GROUPINDEX - parts { - GENLIST_PART_BASE - GENLIST_PART_INDEX_BG_IMAGE - GENLIST_PART_PADDING_LEFT_SIZE(24) - GENLIST_PART_PADDING_RIGHT_SIZE(24) - GENLIST_PART_PADDING_TOP_SIZE(20) - GENLIST_PART_PADDING_BOTTOM_SIZE(14) - GENLIST_PART_TEXT("elm.text", - GENLIST_DESCRIPTION_LRT("elm.padding.left", "elm.padding.right", "elm.padding.top", - GENLIST_PARAM_INDEX_LIST - min: 0 38; fixed: 1 1;) - GENLIST_DESCRIPTION_INDEX_LIST - ) - GENLIST_PART_INDEX_LINE("elm.padding.left", "elm.padding.right", "elm.text", "elm.padding.bottom") - } - programs { - GENLIST_PROGRAM_DISABLED( target: "elm.text"; target: "index_line"; ) - GENLIST_PROGRAM_SELECT( target: "elm.text"; target: "index_line"; ) - } - } - - //2.1.3 - group { name: "elm/genlist/item/groupindex.icon/default"; - alias: "elm/genlist/item_odd/groupindex.icon/default"; - alias: "elm/genlist/item_compress/groupindex.icon/default"; - alias: "elm/genlist/item_compress_odd/groupindex.icon/default"; - - data.item: "stacking" "above"; - data.item: "selectraise" "on"; - data.item: "treesize" "GENLIST_TREESIZE_DEFAULT"; - data.item: "texts" "elm.text"; - data.item: "contents" "elm.icon"; - - GENLIST_IMAGE_GROUPINDEX - parts { - GENLIST_PART_INDEX_BG_IMAGE - GENLIST_PART_BASE - GENLIST_PART_PADDING_LEFT_SIZE(24) - GENLIST_PART_PADDING_RIGHT_SIZE(24) - GENLIST_PART_PADDING_TOP_SIZE(6) - GENLIST_PART_PADDING_BOTTOM_SIZE(6) - GENLIST_PART_ICON("elm.icon", - GENLIST_DESCRIPTION_L("elm.padding.left", - min: 64 64; max: 64 64; ) - ) - GENLIST_PART_PADDING_L_SIZE("elm.padding.icon.right", "elm.icon", 16) - GENLIST_PART_TEXT("elm.text", - GENLIST_DESCRIPTION_LRT("elm.padding.icon.right", "elm.padding.right", "elm.padding.top", - GENLIST_PARAM_INDEX_LIST - min: 0 36; fixed: 0 1;) - GENLIST_DESCRIPTION_INDEX_LIST - ) - GENLIST_PART_INDEX_LINE("elm.padding.icon.right", "elm.padding.right", "elm.text", "elm.padding.bottom") - } - programs { - GENLIST_PROGRAM_DISABLED( target: "elm.text"; target: "index_line"; ) - GENLIST_PROGRAM_SELECT( target: "elm.text"; target: "index_line"; ) - } - } -#if 0 - //2.1.4 - group { name: "elm/genlist/tree/groupindex.expandable/default"; - alias: "elm/genlist/tree_odd/groupindex.expandable/default"; - data.item: "stacking" "above"; - data.item: "selectraise" "on"; - data.item: "texts" "elm.text"; - data.item: "treesize" "GENLIST_TREESIZE_DEFAULT"; - images { - image: "00_index list_bg.png" COMP; - image: "00_indexlist_icon_closed.png" COMP; - image: "00_indexlist_icon_opened.png" COMP; - image: "00_indexlist_icon_line.png" COMP; - } - parts { - GENLIST_PART_DISCLIP - GENLIST_PART_BG_IMAGE - GENLIST_PART_BASE - GENLIST_PART_BOTTOM_LINE - GENLIST_PART_PADDING_LEFT - GENLIST_PART_PADDING_RIGHT_SIZE_EDIT( 23 ) - //GENLIST_PART_TEXT_INDEX_LIST("elm.text", "elm.padding.left", "elm.divider") - part { name: "elm.divider"; - scale: 1; - GENLIST_DESCRIPTION_R("elm.padding.arrow.left", - min: 2 68; - max: 2 68; - fixed: 1 1; - image.normal: "00_indexlist_icon_line.png"; - ) - } - GENLIST_PART_PADDING_R_SIZE("elm.padding.arrow.left", "arrow", 23) - part { name: "arrow"; - ignore_flags: ON_HOLD; - mouse_events: 0; - scale: 1; - GENLIST_DESCRIPTION_R("elm.padding.right", - min: 42 42; - max: 42 42; - fixed: 1 1; - image.normal: "00_indexlist_icon_opened.png"; - ) - description { state: "active" 0.0; - inherit: "default" 0.0; - image.normal: "00_indexlist_icon_closed.png"; - } - } - } - programs { - GENLIST_PROGRAM_DISABLED_BOTTOMLINE( target: "elm.text"; ) - GENLIST_PROGRAM_SELECT_BOTTOMLINE( target: "elm.text";) - GENLIST_PROOGRAM_EXPAND("arrow", target: "arrow"; ) - } - } - - //2.1.5 - group { name: "elm/genlist/tree/groupindex.expandable.icon/default"; - alias: "elm/genlist/tree_odd/groupindex.expandable.icon/default"; - data.item: "stacking" "above"; - data.item: "selectraise" "on"; - data.item: "texts" "elm.text"; - data.item: "treesize" "GENLIST_TREESIZE_DEFAULT"; - data.item: "contents" "elm.icon"; - images { - image: "00_indexlist_icon_closed.png" COMP; - image: "00_indexlist_icon_opened.png" COMP; - image: "00_indexlist_icon_line.png" COMP; - image: "00_index list_bg.png" COMP; - } - parts { - GENLIST_PART_DISCLIP - GENLIST_PART_BG_IMAGE - GENLIST_PART_BASE - GENLIST_PART_BOTTOM_LINE - GENLIST_PART_PADDING_LEFT - GENLIST_PART_PADDING_RIGHT_SIZE_EDIT( 23 ) - GENLIST_PART_ICON("elm.icon", GENLIST_DESCRIPTION_L("elm.padding.left", )) - GENLIST_PART_PADDING_L_SIZE("elm.padding.icon.right", "elm.icon", GENLIST_PADDING_SIZE_DEFAULT) - //GENLIST_PART_TEXT_INDEX_LIST("elm.text", "elm.padding.icon.right", "elm.divider") - part { name: "elm.divider"; - scale: 1; - GENLIST_DESCRIPTION_R("elm.padding.arrow.left", - min: 2 68; - max: 2 68; - fixed: 1 1; - image.normal: "00_indexlist_icon_line.png"; - ) - } - GENLIST_PART_PADDING_R_SIZE("elm.padding.arrow.left", "arrow", 23) - part { name: "arrow"; - ignore_flags: ON_HOLD; - mouse_events: 0; - scale: 1; - GENLIST_DESCRIPTION_R("elm.padding.right", - min: 42 42; - max: 42 42; - fixed: 1 1; - image.normal: "00_indexlist_icon_opened.png"; - ) - description { state: "active" 0.0; - inherit: "default" 0.0; - image.normal: "00_indexlist_icon_closed.png"; - } - } - } - programs { - GENLIST_PROGRAM_DISABLED_BOTTOMLINE( target: "elm.text"; ) - GENLIST_PROGRAM_SELECT_BOTTOMLINE( target: "elm.text";) - GENLIST_PROOGRAM_EXPAND("arrow", target: "arrow"; ) - } - } - - // FIXME: it seems that belows are not used anymore. - group { name : "elm/genlist/item/groupindex.readmessage/default"; - alias: "elm/genlist/item_odd/groupindex.readmessage/default"; - alias: "elm/genlist/item_compress/groupindex.readmessage/default"; - alias: "elm/genlist/item_compress_odd/groupindex.readmessage/default"; - alias : "elm/genlist/item/grouptitle.readmessage/default"; - alias: "elm/genlist/item_odd/grouptitle.readmessage/default"; - alias: "elm/genlist/item_compress/grouptitle.readmessage/default"; - alias: "elm/genlist/item_compress_odd/grouptitle.readmessage/default"; - - data.item: "stacking" "above"; - data.item: "selectraise" "on"; - data.item: "texts" "elm.text"; - data.item: "treesize" "GENLIST_TREESIZE_DEFAULT"; - - parts { - part { name: "base"; - type: RECT; - repeat_events: 1; - scale: 1; - description { state: "default" 0.0; - min: 0 GENLIST_HEIGHT_62_INC; - color: GENLIST_LIST_BG_COLOR; - } - } - GENLIST_PART_PADDING_LEFT_SIZE( GENLIST_PADDING_24_INC ) - GENLIST_PART_PADDING_RIGHT_SIZE_EDIT( GENLIST_PADDING_24_INC ) - part { name: "text_base"; - type: RECT; - repeat_events: 1; - scale: 1; - description { state: "default" 0.0; - color: GENLIST_PART_BUBBLE_DATE_BG_COLOR_INC; - rel2.relative: 1.0 0.62; - } - } - part { name: "elm.text"; - type: TEXT; - scale: 1; - description { state: "default" 0.0; - rel1 { - relative: 1.0 0.0; - to_x: "elm.padding.left"; - to_y: "text_base"; - } - rel2 { - relative: 0.0 1.0; - to_x: "elm.padding.right"; - to_y: "text_base"; - } - color: GENLIST_TEXT_COLOR_BUBBLE_READ_MESSAGE; - text { - font: "Tizen:style=Regular"; - size: GENLIST_FONT_28_INC; - min: 0 1; - align: 0.0 0.5; - text_class: "list_item"; - } - } - } - } - programs { - } - } - group { name : "elm/genlist/item/groupindex.sentmessage/default"; - alias: "elm/genlist/item_odd/groupindex.sentmessage/default"; - alias: "elm/genlist/item_compress/groupindex.sentmessage/default"; - alias: "elm/genlist/item_compress_odd/groupindex.sentmessage/default"; - alias : "elm/genlist/item/grouptitle.sentmessage/default"; - alias: "elm/genlist/item_odd/grouptitle.sentmessage/default"; - alias: "elm/genlist/item_compress/grouptitle.sentmessage/default"; - alias: "elm/genlist/item_compress_odd/grouptitle.sentmessage/default"; - - data.item: "stacking" "above"; - data.item: "selectraise" "on"; - data.item: "texts" "elm.text"; - data.item: "treesize" "GENLIST_TREESIZE_DEFAULT"; - - parts { - part { name: "base"; - type: RECT; - repeat_events: 1; - scale: 1; - description { state: "default" 0.0; - min: 0 GENLIST_HEIGHT_62_INC; - color: GENLIST_LIST_BG_COLOR; - } - } - GENLIST_PART_PADDING_LEFT_SIZE( GENLIST_PADDING_24_INC ) - GENLIST_PART_PADDING_RIGHT_SIZE_EDIT( GENLIST_PADDING_24_INC ) - part { name: "text_base"; - type: RECT; - repeat_events: 1; - scale: 1; - description { state: "default" 0.0; - color: GENLIST_PART_BUBBLE_DATE_BG_COLOR_INC; - rel2.relative: 1.0 0.62; - } - } - part { name: "elm.text"; - type: TEXT; - scale: 1; - description { state: "default" 0.0; - rel1 { - relative: 1.0 0.0; - to_x: "elm.padding.left"; - to_y: "text_base"; - } - rel2 { - relative: 0.0 1.0; - to_x: "elm.padding.right"; - to_y: "text_base"; - } - color: GENLIST_TEXT_COLOR_BUBBLE_READ_MESSAGE; - text { - font: "Tizen:style=Regular"; - size: GENLIST_FONT_28_INC; - min: 0 1; - align: 1.0 0.5; - text_class: "list_item"; - } - } - } - } - programs { - } - } - - /////////// will be removed //////// - group { name : "elm/genlist/item/groupindex.dialogue/default"; - alias: "elm/genlist/item_odd/groupindex.dialogue/default"; - alias: "elm/genlist/item_compress/groupindex.dialogue/default"; - alias: "elm/genlist/item_compress_odd/groupindex.dialogue/default"; - alias : "elm/genlist/item/grouptitle.dialogue/default"; - alias: "elm/genlist/item_odd/grouptitle.dialogue/default"; - alias: "elm/genlist/item_compress/grouptitle.dialogue/default"; - alias: "elm/genlist/item_compress_odd/grouptitle.dialogue/default"; - - data.item: "stacking" "above"; - data.item: "selectraise" "on"; - data.item: "texts" "elm.text"; - data.item: "treesize" "GENLIST_TREESIZE_DEFAULT"; - - parts { - GENLIST_PART_BASE__( GENLIST_HEIGHT_65_INC ) - GENLIST_PART_PADDING_LEFT - GENLIST_PART_PADDING_RIGHT_EDIT - - part { name: "elm.text"; - type: TEXT; - scale: 1; - description { state: "default" 0.0; - rel1 { - relative: 1.0 0.5; - to_x: "elm.padding.left"; - } - rel2 { - relative: 0.0 1.0; - to_x: "elm.padding.right"; - } - color: GENLIST_DIALOGUE_GROUP_TITLE_COLOR; - text { - font: "Tizen:style=Medium"; - size: GENLIST_FONT_28_INC; - min: 0 1; - align: 0.0 0.0; - text_class: "list_item"; - } - } - } - part { name: "bottom_line"; - type: RECT; - description { state: "default" 0.0; - min: 0 1; - fixed: 0 1; - color: GENLIST_LIST_LINE1_COLOR; - rel1 { - relative: 0.0 1.0; - offset: 0 -1; - } - } - } - GENLIST_PART_DISCLIP - } - } - group { name : "elm/genlist/item/groupindex.dialogue.seperator/default"; - alias: "elm/genlist/item_odd/groupindex.dialogue.seperator/default"; - alias: "elm/genlist/item_compress/groupindex.dialogue.seperator/default"; - alias: "elm/genlist/item_compress_odd/groupindex.dialogue.seperator/default"; - alias : "elm/genlist/item/grouptitle.dialogue.seperator/default"; - alias: "elm/genlist/item_odd/grouptitle.dialogue.seperator/default"; - alias: "elm/genlist/item_compress/grouptitle.dialogue.seperator/default"; - alias: "elm/genlist/item_compress_odd/grouptitle.dialogue.seperator/default"; - - data.item: "stacking" "above"; - data.item: "selectraise" "on"; - data.item: "treesize" "GENLIST_TREESIZE_DEFAULT"; - - parts { - GENLIST_PART_BASE__( GENLIST_HEIGHT_33_INC ) - part { name: "bottom_line"; - type: RECT; - description { state: "default" 0.0; - min: 0 1; - fixed: 0 1; - color: GENLIST_LIST_LINE1_COLOR; - rel1 { - relative: 0.0 1.0; - offset: 0 -1; - } - } - } - GENLIST_PART_DISCLIP - } - } - ///////////////////////////////////////////////// -#endif - diff --git a/main/layout/genlist/genlist_size.edc b/main/layout/genlist/genlist_size.edc deleted file mode 100755 index e639864..0000000 --- a/main/layout/genlist/genlist_size.edc +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ - -/* hd_inc */ - -#define GENLIST_HEIGHT_1_INC 1 -#define GENLIST_HEIGHT_16_INC 16 -#define GENLIST_HEIGHT_33_INC 33 -#define GENLIST_HEIGHT_49_INC 49 -#define GENLIST_HEIGHT_62_INC 62 -#define GENLIST_HEIGHT_65_INC 65 -#define GENLIST_HEIGHT_72_INC 72 -#define GENLIST_HEIGHT_73_INC 73 -#define GENLIST_HEIGHT_77_INC 77 -#define GENLIST_HEIGHT_89_INC 89 -#define GENLIST_HEIGHT_93_INC 93 -#define GENLIST_HEIGHT_97_INC 97 -#define GENLIST_HEIGHT_113_INC 113 -#define GENLIST_HEIGHT_129_INC 129 -#define GENLIST_HEIGHT_177_INC 177 -#define GENLIST_HEIGHT_182_INC 182 -#define GENLIST_HEIGHT_190_INC 190 -#define GENLIST_HEIGHT_207_INC 207 -#define GENLIST_HEIGHT_260_INC 260 -#define GENLIST_HEIGHT_291_INC 291 -#define GENLIST_HEIGHT_454_INC 454 -#define GENLIST_HEIGHT_566_INC 566 - -#define GENLIST_PADDING_4_INC 4 -#define GENLIST_PADDING_5_INC 5 -#define GENLIST_PADDING_6_INC 6 -#define GENLIST_PADDING_8_INC 8 -#define GENLIST_PADDING_10_INC 10 -#define GENLIST_PADDING_11_INC 11 -#define GENLIST_PADDING_12_INC 12 -#define GENLIST_PADDING_13_INC 13 -#define GENLIST_PADDING_14_INC 14 -#define GENLIST_PADDING_16_INC 16 -#define GENLIST_PADDING_18_INC 18 -#define GENLIST_PADDING_21_INC 21 -#define GENLIST_PADDING_22_INC 22 -#define GENLIST_PADDING_24_INC 24 -#define GENLIST_PADDING_27_INC 27 -#define GENLIST_PADDING_32_INC 32 -#define GENLIST_PADDING_34_INC 34 -#define GENLIST_PADDING_46_INC 46 -#define GENLIST_PADDING_48_INC 48 -#define GENLIST_PADDING_64_INC 64 -#define GENLIST_PADDING_74_INC 74 -#define GENLIST_PADDING_88_INC 88 -#define GENLIST_PADDING_124_INC 124 - -#define GENLIST_FONT_20_INC 20 -#define GENLIST_FONT_27_INC 27 -#define GENLIST_FONT_28_INC 28 -#define GENLIST_FONT_30_INC 30 -#define GENLIST_FONT_32_INC 32 -#define GENLIST_FONT_STYLE_32_INC "32" -#define GENLIST_FONT_36_INC 36 -#define GENLIST_FONT_STYLE_36_INC "36" -#define GENLIST_FONT_40_INC 40 -#define GENLIST_FONT_STYLE_40_INC "40" -#define GENLIST_FONT_42_INC 42 -#define GENLIST_FONT_STYLE_42_INC "42" -#define GENLIST_FONT_44_INC 44 -#define GENLIST_FONT_STYLE_44_INC "44" -#define GENLIST_FONT_48_INC 48 -#define GENLIST_FONT_STYLE_48_INC "48" - -#define GENLIST_SIZE_6_INC 6 -#define GENLIST_SIZE_8_INC 8 -#define GENLIST_SIZE_10_INC 10 -#define GENLIST_SIZE_13_INC 13 -#define GENLIST_SIZE_16_INC 16 -#define GENLIST_SIZE_18_INC 18 -#define GENLIST_SIZE_21_INC 21 -#define GENLIST_SIZE_26_INC 26 -#define GENLIST_SIZE_32_INC 32 -#define GENLIST_SIZE_35_INC 35 -#define GENLIST_SIZE_38_INC 38 -#define GENLIST_SIZE_40_INC 40 -#define GENLIST_SIZE_42_INC 42 -#define GENLIST_SIZE_45_INC 45 -#define GENLIST_SIZE_48_INC 48 -#define GENLIST_SIZE_54_INC 54 -#define GENLIST_SIZE_56_INC 56 -#define GENLIST_SIZE_57_INC 57 -#define GENLIST_SIZE_61_INC 61 -#define GENLIST_SIZE_SLIDE_60_INC 60 -#define GENLIST_SIZE_64_INC 64 -#define GENLIST_SIZE_80_INC 80 -#define GENLIST_SIZE_90_INC 90 -#define GENLIST_SIZE_96_INC 96 -#define GENLIST_SIZE_112_INC 112 -#define GENLIST_SIZE_116_INC 116 -#define GENLIST_SIZE_128_INC 128 -#define GENLIST_SIZE_133_INC 133 -#define GENLIST_SIZE_141_INC 141 -#define GENLIST_SIZE_144_INC 144 -#define GENLIST_SIZE_154_INC 154 -#define GENLIST_SIZE_160_INC 160 -#define GENLIST_SIZE_163_INC 163 -#define GENLIST_SIZE_168_INC 168 -#define GENLIST_SIZE_174_INC 174 -#define GENLIST_SIZE_SLIDE_165_INC 165 -#define GENLIST_SIZE_176_INC 176 -#define GENLIST_SIZE_177_INC 177 -#define GENLIST_SIZE_192_INC 192 -#define GENLIST_SIZE_195_INC 195 -#define GENLIST_SIZE_206_INC 206 -#define GENLIST_SIZE_234_INC 234 -#define GENLIST_SIZE_235_INC 235 -#define GENLIST_SIZE_SLIDE_220_INC 220 -#define GENLIST_SIZE_390_INC 390 -#define GENLIST_SIZE_448_INC 448 -#define GENLIST_SIZE_560_INC 560 -#define GENLIST_SIZE_576_INC 576 -#define GENLIST_SIZE_672_INC 672 - -#define GENLIST_TREESIZE_16_INC 16 -#define GENLIST_TREESIZE_32_INC 32 - diff --git a/main/layout/genlist/genlist_styles.edc b/main/layout/genlist/genlist_styles.edc deleted file mode 100755 index 1e0e1fe..0000000 --- a/main/layout/genlist/genlist_styles.edc +++ /dev/null @@ -1,173 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ - -// ------------------------------------------------------------------- -// 1 line ------------------------------------------------------- -// ------------------------------------------------------------------- -// 2.2.2.1 - group { name: "elm/genlist/item/ivug/2text.2/default"; - alias: "elm/genlist/item_odd/ivug/2text.2/default"; - alias: "elm/genlist/item_compress/ivug/2text.2/default"; - alias: "elm/genlist/item_compress_odd/ivug/2text.2/default"; - - GENLIST_DATA_ITEM_NORMAL - data.item: "texts" "elm.text.1 elm.text.2"; - data.item: "contents" "elm.icon.edit"; - - parts { - GENLIST_PART_BG_IMAGE - GENLIST_PART_BASE - GENLIST_PART_BOTTOM_LINE - GENLIST_PART_PADDING_LEFT - GENLIST_PART_PADDING_RIGHT - GENLIST_PART_PADDING_TOP_2LINE - GENLIST_PART_PADDING_BOTTOM_2LINE - - GENLIST_PART_LISTITEM_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN, - "elm.padding.left", "elm.padding.right", - "elm.padding.top", "elm.text.2", - ) - GENLIST_PART_SUBITEM_LRB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB, - "elm.padding.left", "elm.padding.right", "elm.padding.bottom") - GENLIST_PART_FLIP - } - GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; ) - } - -// 2.2.2.1 (textblock) - group { name: "elm/genlist/item/ivug/2text.2.tb/default"; - alias: "elm/genlist/item_odd/ivug/2text.2.tb/default"; - alias: "elm/genlist/item_compress/ivug/2text.2.tb/default"; - alias: "elm/genlist/item_compress_odd/ivug/2text.2.tb/default"; - - GENLIST_DATA_ITEM_NORMAL - data.item: "texts" "elm.text.1 elm.text.2"; - data.item: "contents" "elm.icon.edit"; - - parts { - GENLIST_PART_BG_IMAGE - GENLIST_PART_BASE - GENLIST_PART_BOTTOM_LINE - GENLIST_PART_PADDING_LEFT - GENLIST_PART_PADDING_RIGHT - GENLIST_PART_PADDING_TOP_2LINE - GENLIST_PART_PADDING_BOTTOM_2LINE - - GENLIST_PART_LISTITEM_TB_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN, - "elm.padding.left", "elm.padding.right", - "elm.padding.top", "elm.text.2", - ) - GENLIST_PART_SUBITEM_LRB_TB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB, - "elm.padding.left", "elm.padding.right", "elm.padding.bottom" - ) - GENLIST_PART_FLIP - } - GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; ) - } - - // 2.2.2.4 - group { name: "elm/genlist/item/ivug/multiline/2text.5icon/default"; - alias: "elm/genlist/item_odd/ivug/multiline/2ext.5icon/default"; - alias: "elm/genlist/item_compress/ivug/multiline/2text.5icon/default"; - alias: "elm/genlist/item_compress_odd/ivug/multiline/2text.5icon/default"; - // FIXME: deprecated name, wiil be removed - alias: "elm/genlist/item/multiline/2text.1icon/default"; - alias: "elm/genlist/item_odd/multiline/2ext.1icon/default"; - alias: "elm/genlist/item_compress/multiline/2text.1icon/default"; - alias: "elm/genlist/item_compress_odd/multiline/2text.1icon/default"; - - GENLIST_DATA_ITEM_NORMAL - data.item: "texts" "elm.text.1 elm.text.2"; - data.item: "contents" "elm.icon.1 elm.icon.2 elm.icon.3 elm.icon.4 elm.icon.5 elm.icon.edit"; - - parts { - GENLIST_PART_BG_IMAGE - GENLIST_PART_BASE - GENLIST_PART_BOTTOM_LINE - GENLIST_PART_PADDING_LEFT - GENLIST_PART_PADDING_RIGHT - GENLIST_PART_PADDING_TOP_SIZE( 16 ) - GENLIST_PART_PADDING_BOTTOM_SIZE( 16 ) - - GENLIST_PART_LISTITEM("elm.text.1", - GENLIST_DESCRIPTION_LRT("elm.padding.left", "elm.padding.icon5.left", "elm.padding.top", - GENLIST_PARAM_LISTITEM - min: 0 GENLIST_HEIGHT_2LINE_MAIN; ) - GENLIST_DESCRIPTION_LISTITEM_OTHERS - ) - GENLIST_PART_PADDING_R("elm.padding.icon5.left", "elm.icon.5") - GENLIST_PART_ICON_STAR_RTB("elm.icon.5", - "elm.icon.4", "elm.padding.top", "elm.text.2") - GENLIST_PART_ICON_STAR_RTB("elm.icon.4", - "elm.icon.3", "elm.padding.top", "elm.text.2") - GENLIST_PART_ICON_STAR_RTB("elm.icon.3", - "elm.icon.2", "elm.padding.top", "elm.text.2") - GENLIST_PART_ICON_STAR_RTB("elm.icon.2", - "elm.icon.1", "elm.padding.top", "elm.text.2") - GENLIST_PART_ICON_STAR_RTB("elm.icon.1", - "elm.padding.right", "elm.padding.top", "elm.text.2") - - - GENLIST_PART_PADDING_T_SIZE("elm.padding.text1.bottom", "elm.text.1", 16) - GENLIST_PART_TEXTBLOCK("elm.text.2", - GENLIST_DESCRIPTION("elm.padding.left", "elm.padding.right", "elm.padding.text1.bottom", "elm.padding.bottom", - GENLIST_PARAM_SUBITEM_DEFAULT_TB_WRAP - min: 0 GENLIST_HEIGHT_MULTILINE_SUB; ) - GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP - ) - GENLIST_PART_FLIP - } - GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; ) - } - - - // 2.2.4.3 - group { name: "elm/genlist/item/ivug/multiline/2text/default"; - alias: "elm/genlist/item_odd/ivug/multiline/2ext/default"; - alias: "elm/genlist/item_compress/ivug/multiline/2text/default"; - alias: "elm/genlist/item_compress_odd/ivug/multiline/2text/default"; - - GENLIST_DATA_ITEM_NORMAL - data.item: "texts" "elm.text.1 elm.text.2"; - data.item: "contents" "elm.icon.edit"; - - parts { - GENLIST_PART_BG_IMAGE - GENLIST_PART_BASE - GENLIST_PART_BOTTOM_LINE - GENLIST_PART_PADDING_LEFT - GENLIST_PART_PADDING_RIGHT - GENLIST_PART_PADDING_TOP_2LINE - GENLIST_PART_PADDING_BOTTOM_2LINE - - GENLIST_PART_TEXT("elm.text.1", - GENLIST_DESCRIPTION_LRT("elm.padding.left", "elm.padding.right", "elm.padding.top", - GENLIST_PARAM_LISTITEM - min: 0 GENLIST_HEIGHT_2LINE_MAIN; ) - GENLIST_DESCRIPTION_LISTITEM_OTHERS - ) - GENLIST_PART_PADDING_T_SIZE("elm.padding.text1.bottom", "elm.text.1", 16) - GENLIST_PART_TEXTBLOCK("elm.text.2", - GENLIST_DESCRIPTION("elm.padding.left", "elm.padding.right", "elm.padding.text1.bottom", "elm.padding.bottom", - GENLIST_PARAM_SUBITEM_DEFAULT_TB_WRAP - min: 0 GENLIST_HEIGHT_MULTILINE_SUB; ) - GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP - ) - GENLIST_PART_FLIP - } - GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; ) - } - diff --git a/main/layout/genlist/genlist_textblock_styles.edc b/main/layout/genlist/genlist_textblock_styles.edc deleted file mode 100755 index 3f7c3b5..0000000 --- a/main/layout/genlist/genlist_textblock_styles.edc +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 STYLE_TAG \ - tag: "br" "\n";\ - tag: "ps" "ps";\ - tag: "tab" "\t";\ - tag: "b" "+ font=SLP:style=Bold";\ - -#define STYLE_TAG_MATCH \ - tag: "match" GENLIST_PART_MATCH_TAG_COLOR; \ - -// FIXME: Why this is needed? just don't use match color, right? damn textblock bug... -#define STYLE_TAG_MATCH_FOCUS \ - tag: "match" GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR_STYLE; \ - - -styles { - // ********************** dialgoue group help text - style { name: "genlist_style_dialogue_group_help_text"; - base: "font=SLP:style=Medium font_size="GENLIST_DIALOGUE_GROUP_HELP_TEXT_SIZE" color="GENLIST_DIALOGUE_GROUP_HELP_TEXT_COLOR_STYLE" text_class=list_item wrap=mixed"; - STYLE_TAG - STYLE_TAG_MATCH - } - // ********************** list main text - style { name: "genlist_style_list_main_text_unread"; - base: "font=SLP:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE" text_class=list_item ellipsis=1.0"; - STYLE_TAG - STYLE_TAG_MATCH - } - style { name: "genlist_style_list_main_text_unread_dim"; - base: "font=SLP:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE" text_class=list_item ellipsis=1.0"; - STYLE_TAG - STYLE_TAG_MATCH - } - style { name: "genlist_style_list_main_text_read"; - base: "font=SLP:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_READ_COLOR_STYLE" text_class=list_item ellipsis=1.0"; - STYLE_TAG - STYLE_TAG_MATCH - } - style { name: "genlist_style_list_main_text_read_dim"; - base: "font=SLP:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR_STYLE" text_class=list_item ellipsis=1.0"; - STYLE_TAG - STYLE_TAG_MATCH - } - style { name: "genlist_style_list_main_text_focus"; - base: "font=SLP:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR_STYLE" text_class=list_item ellipsis=1.0"; - STYLE_TAG - STYLE_TAG_MATCH_FOCUS - } - // ********************** list main text (multiline) - style { name: "genlist_style_list_main_text_unread_wrap"; - base: "font=SLP:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE" text_class=slp wrap=mixed"; - STYLE_TAG - STYLE_TAG_MATCH - } - style { name: "genlist_style_list_main_text_unread_dim_wrap"; - base: "font=SLP:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE" text_class=slp wrap=mixed"; - STYLE_TAG - STYLE_TAG_MATCH - } - style { name: "genlist_style_list_main_text_focus_wrap"; - base: "font=SLP:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR_STYLE" text_class=slp wrap=mixed"; - STYLE_TAG - STYLE_TAG_MATCH_FOCUS - } - // ********************** list sub text - style { name: "genlist_style_list_sub_text_default"; - base: "font=SLP:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR_STYLE" text_class=slp ellipsis=1.0"; - STYLE_TAG - STYLE_TAG_MATCH - } - style { name: "genlist_style_list_sub_text_default_dim"; - base: "font=SLP:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR_STYLE" text_class=slp ellipsis=1.0"; - STYLE_TAG - STYLE_TAG_MATCH_FOCUS - } - style { name: "genlist_style_list_sub_text_settings"; - base: "font=SLP:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR_STYLE" text_class=slp ellipsis=1.0"; - STYLE_TAG - STYLE_TAG_MATCH - } - style { name: "genlist_style_list_sub_text_settings_dim"; - base: "font=SLP:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_SETTINGS_DIM_COLOR_STYLE" text_class=slp ellipsis=1.0"; - STYLE_TAG - STYLE_TAG_MATCH - } - style { name: "genlist_style_list_sub_text_focus"; - base: "font=SLP:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_FOCUS_COLOR_STYLE" text_class=slp ellipsis=1.0"; - STYLE_TAG - STYLE_TAG_MATCH_FOCUS - } - // ********************** list sub text (multiline) - style { name: "genlist_style_list_sub_text_default_wrap"; - base: "font=SLP:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR_STYLE" text_class=slp wrap=mixed"; - STYLE_TAG - STYLE_TAG_MATCH - } - style { name: "genlist_style_list_sub_text_default_dim_wrap"; - base: "font=SLP:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR_STYLE" text_class=slp wrap=mixed"; - STYLE_TAG - STYLE_TAG_MATCH - } - style { name: "genlist_style_list_sub_text_focus_wrap"; - base: "font=SLP:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_FOCUS_COLOR_STYLE" text_class=slp wrap=mixed"; - STYLE_TAG - STYLE_TAG_MATCH - } -} - diff --git a/main/layout/genlist/ivug-genlist.edc b/main/layout/genlist/ivug-genlist.edc deleted file mode 100755 index b91d7b0..0000000 --- a/main/layout/genlist/ivug-genlist.edc +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "../ivug-theme.edc" - -collections { - -#include "genlist_size.edc" -#include "genlist_macro.edc" - -#include "genlist_textblock_styles.edc" -#include "genlist_styles.edc" -#include "genlist_group_index.edc" - -} - diff --git a/main/layout/icons/T01-1_album_video_play.png b/main/layout/icons/T01-1_album_video_play.png new file mode 100755 index 0000000..3a63b67 Binary files /dev/null and b/main/layout/icons/T01-1_album_video_play.png differ diff --git a/main/layout/icons/T01_Facebook.png b/main/layout/icons/T01_Facebook.png old mode 100644 new mode 100755 diff --git a/main/layout/icons/T01_btn_paused.png b/main/layout/icons/T01_btn_paused.png deleted file mode 100644 index dae1d84..0000000 Binary files a/main/layout/icons/T01_btn_paused.png and /dev/null differ diff --git a/main/layout/icons/T01_btn_play.png b/main/layout/icons/T01_btn_play.png deleted file mode 100644 index a19a8e0..0000000 Binary files a/main/layout/icons/T01_btn_play.png and /dev/null differ diff --git a/main/layout/icons/T02_Player_Nearby_device_02.png b/main/layout/icons/T02_Player_Nearby_device_02.png new file mode 100755 index 0000000..07278f9 Binary files /dev/null and b/main/layout/icons/T02_Player_Nearby_device_02.png differ diff --git a/main/layout/icons/U04_device_Mobile.png b/main/layout/icons/U04_device_Mobile.png new file mode 100755 index 0000000..ae5a0a0 Binary files /dev/null and b/main/layout/icons/U04_device_Mobile.png differ diff --git a/main/layout/icons/U04_device_None_DNS.png b/main/layout/icons/U04_device_None_DNS.png new file mode 100755 index 0000000..6ae2001 Binary files /dev/null and b/main/layout/icons/U04_device_None_DNS.png differ diff --git a/main/layout/icons/asf_icon/U04_device_Camcorder.png b/main/layout/icons/asf_icon/U04_device_Camcorder.png new file mode 100755 index 0000000..c215761 Binary files /dev/null and b/main/layout/icons/asf_icon/U04_device_Camcorder.png differ diff --git a/main/layout/icons/asf_icon/U04_device_Camera.png b/main/layout/icons/asf_icon/U04_device_Camera.png new file mode 100755 index 0000000..c4efaf0 Binary files /dev/null and b/main/layout/icons/asf_icon/U04_device_Camera.png differ diff --git a/main/layout/icons/asf_icon/U04_device_LFD.png b/main/layout/icons/asf_icon/U04_device_LFD.png new file mode 100755 index 0000000..70cf895 Binary files /dev/null and b/main/layout/icons/asf_icon/U04_device_LFD.png differ diff --git a/main/layout/icons/asf_icon/U04_device_Mobile.png b/main/layout/icons/asf_icon/U04_device_Mobile.png new file mode 100755 index 0000000..ae5a0a0 Binary files /dev/null and b/main/layout/icons/asf_icon/U04_device_Mobile.png differ diff --git a/main/layout/icons/asf_icon/U04_device_None_DNS.png b/main/layout/icons/asf_icon/U04_device_None_DNS.png new file mode 100755 index 0000000..6ae2001 Binary files /dev/null and b/main/layout/icons/asf_icon/U04_device_None_DNS.png differ diff --git a/main/layout/icons/asf_icon/U04_device_PC.png b/main/layout/icons/asf_icon/U04_device_PC.png new file mode 100755 index 0000000..c785c03 Binary files /dev/null and b/main/layout/icons/asf_icon/U04_device_PC.png differ diff --git a/main/layout/icons/asf_icon/U04_device_STB.png b/main/layout/icons/asf_icon/U04_device_STB.png new file mode 100755 index 0000000..564bdb2 Binary files /dev/null and b/main/layout/icons/asf_icon/U04_device_STB.png differ diff --git a/main/layout/gengrid/00_winset_thumbs_bg.png b/main/layout/icons/asf_icon/U04_device_TV.png old mode 100644 new mode 100755 similarity index 82% rename from main/layout/gengrid/00_winset_thumbs_bg.png rename to main/layout/icons/asf_icon/U04_device_TV.png index 6226c90..af63a76 Binary files a/main/layout/gengrid/00_winset_thumbs_bg.png and b/main/layout/icons/asf_icon/U04_device_TV.png differ diff --git a/main/layout/gengrid/00_winset_thumbs_focus_bg.png b/main/layout/icons/asf_icon/U04_device_Tablet.png old mode 100644 new mode 100755 similarity index 84% rename from main/layout/gengrid/00_winset_thumbs_focus_bg.png rename to main/layout/icons/asf_icon/U04_device_Tablet.png index 3f0e9c4..5e1d6b8 Binary files a/main/layout/gengrid/00_winset_thumbs_focus_bg.png and b/main/layout/icons/asf_icon/U04_device_Tablet.png differ diff --git a/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_01.png b/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_01.png new file mode 100755 index 0000000..81a8c07 Binary files /dev/null and b/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_01.png differ diff --git a/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_01_dim.png b/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_01_dim.png new file mode 100755 index 0000000..58705f4 Binary files /dev/null and b/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_01_dim.png differ diff --git a/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_01_press.png b/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_01_press.png new file mode 100755 index 0000000..c19d841 Binary files /dev/null and b/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_01_press.png differ diff --git a/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_02.png b/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_02.png new file mode 100755 index 0000000..902fadc Binary files /dev/null and b/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_02.png differ diff --git a/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_02_dim.png b/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_02_dim.png new file mode 100755 index 0000000..a80b1c0 Binary files /dev/null and b/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_02_dim.png differ diff --git a/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_02_press.png b/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_02_press.png new file mode 100755 index 0000000..eb53c40 Binary files /dev/null and b/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_02_press.png differ diff --git a/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_03.png b/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_03.png new file mode 100755 index 0000000..887135c Binary files /dev/null and b/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_03.png differ diff --git a/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_03_dim.png b/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_03_dim.png new file mode 100755 index 0000000..c799de5 Binary files /dev/null and b/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_03_dim.png differ diff --git a/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_03_press.png b/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_03_press.png new file mode 100755 index 0000000..04432c4 Binary files /dev/null and b/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_03_press.png differ diff --git a/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_04.png b/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_04.png new file mode 100755 index 0000000..50fb830 Binary files /dev/null and b/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_04.png differ diff --git a/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_04_dim.png b/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_04_dim.png new file mode 100755 index 0000000..71a83e1 Binary files /dev/null and b/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_04_dim.png differ diff --git a/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_04_press.png b/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_04_press.png new file mode 100755 index 0000000..b2e4981 Binary files /dev/null and b/main/layout/icons/burstspeed/T01-1_icon_burstshot_speed_04_press.png differ diff --git a/main/layout/icons/ctx_icon/T01-1_icon_burst_shot_45x45.png b/main/layout/icons/ctx_icon/T01-1_icon_burst_shot_45x45.png new file mode 100755 index 0000000..51d8eac Binary files /dev/null and b/main/layout/icons/ctx_icon/T01-1_icon_burst_shot_45x45.png differ diff --git a/main/layout/icons/ctx_icon/T01-1_popup_icon_Print.png b/main/layout/icons/ctx_icon/T01-1_popup_icon_Print.png new file mode 100755 index 0000000..12c75f3 Binary files /dev/null and b/main/layout/icons/ctx_icon/T01-1_popup_icon_Print.png differ diff --git a/main/layout/icons/ctx_icon/T01-1_popup_icon_Roteteleft.png b/main/layout/icons/ctx_icon/T01-1_popup_icon_Roteteleft.png new file mode 100755 index 0000000..5bb59c8 Binary files /dev/null and b/main/layout/icons/ctx_icon/T01-1_popup_icon_Roteteleft.png differ diff --git a/main/layout/icons/ctx_icon/T01-1_popup_icon_Roteteright.png b/main/layout/icons/ctx_icon/T01-1_popup_icon_Roteteright.png new file mode 100755 index 0000000..7d95047 Binary files /dev/null and b/main/layout/icons/ctx_icon/T01-1_popup_icon_Roteteright.png differ diff --git a/main/layout/icons/ctx_icon/T01-1_popup_icon_add_caption.png b/main/layout/icons/ctx_icon/T01-1_popup_icon_add_caption.png new file mode 100755 index 0000000..b1bf5ca Binary files /dev/null and b/main/layout/icons/ctx_icon/T01-1_popup_icon_add_caption.png differ diff --git a/main/layout/icons/ctx_icon/T01-1_popup_icon_addtag.png b/main/layout/icons/ctx_icon/T01-1_popup_icon_addtag.png new file mode 100755 index 0000000..03886a8 Binary files /dev/null and b/main/layout/icons/ctx_icon/T01-1_popup_icon_addtag.png differ diff --git a/main/layout/icons/ctx_icon/T01-1_popup_icon_crop.png b/main/layout/icons/ctx_icon/T01-1_popup_icon_crop.png new file mode 100755 index 0000000..2fa213a Binary files /dev/null and b/main/layout/icons/ctx_icon/T01-1_popup_icon_crop.png differ diff --git a/main/layout/icons/ctx_icon/T01-1_popup_icon_detail.png b/main/layout/icons/ctx_icon/T01-1_popup_icon_detail.png new file mode 100755 index 0000000..7d6a9fd Binary files /dev/null and b/main/layout/icons/ctx_icon/T01-1_popup_icon_detail.png differ diff --git a/main/layout/icons/ctx_icon/T01-1_popup_icon_detect_text.png b/main/layout/icons/ctx_icon/T01-1_popup_icon_detect_text.png new file mode 100755 index 0000000..2ab9b63 Binary files /dev/null and b/main/layout/icons/ctx_icon/T01-1_popup_icon_detect_text.png differ diff --git a/main/layout/icons/ctx_icon/T01-1_popup_icon_edit_weather_tag.png b/main/layout/icons/ctx_icon/T01-1_popup_icon_edit_weather_tag.png new file mode 100755 index 0000000..0d5f828 Binary files /dev/null and b/main/layout/icons/ctx_icon/T01-1_popup_icon_edit_weather_tag.png differ diff --git a/main/layout/icons/ctx_icon/T01-1_popup_icon_face_tag.png b/main/layout/icons/ctx_icon/T01-1_popup_icon_face_tag.png new file mode 100755 index 0000000..cc46887 Binary files /dev/null and b/main/layout/icons/ctx_icon/T01-1_popup_icon_face_tag.png differ diff --git a/main/layout/icons/ctx_icon/T01-1_popup_icon_get_directions.png b/main/layout/icons/ctx_icon/T01-1_popup_icon_get_directions.png new file mode 100755 index 0000000..d45dbba Binary files /dev/null and b/main/layout/icons/ctx_icon/T01-1_popup_icon_get_directions.png differ diff --git a/main/layout/icons/ctx_icon/T01-1_popup_icon_setas.png b/main/layout/icons/ctx_icon/T01-1_popup_icon_setas.png new file mode 100755 index 0000000..a2d5291 Binary files /dev/null and b/main/layout/icons/ctx_icon/T01-1_popup_icon_setas.png differ diff --git a/main/layout/icons/ctx_icon/T01-1_popup_icon_slideshow.png b/main/layout/icons/ctx_icon/T01-1_popup_icon_slideshow.png new file mode 100755 index 0000000..c170890 Binary files /dev/null and b/main/layout/icons/ctx_icon/T01-1_popup_icon_slideshow.png differ diff --git a/main/layout/icons/ctx_icon/T01-1_popup_icon_tagbuddy.png b/main/layout/icons/ctx_icon/T01-1_popup_icon_tagbuddy.png new file mode 100755 index 0000000..0c5423b Binary files /dev/null and b/main/layout/icons/ctx_icon/T01-1_popup_icon_tagbuddy.png differ diff --git a/main/layout/icons/ctx_icon/T01_popup_icon_transparent.png b/main/layout/icons/ctx_icon/T01_popup_icon_transparent.png new file mode 100755 index 0000000..a5ce428 Binary files /dev/null and b/main/layout/icons/ctx_icon/T01_popup_icon_transparent.png differ diff --git a/main/layout/icons/ctx_icon/T01_popup_icon_trim.png b/main/layout/icons/ctx_icon/T01_popup_icon_trim.png new file mode 100755 index 0000000..8731207 Binary files /dev/null and b/main/layout/icons/ctx_icon/T01_popup_icon_trim.png differ diff --git a/main/layout/icons/ctx_icon/T06_more_poup_icon_copy.png b/main/layout/icons/ctx_icon/T06_more_poup_icon_copy.png new file mode 100755 index 0000000..5259bef Binary files /dev/null and b/main/layout/icons/ctx_icon/T06_more_poup_icon_copy.png differ diff --git a/main/layout/icons/icon_email.png b/main/layout/icons/icon_email.png new file mode 100755 index 0000000..154ccc6 Binary files /dev/null and b/main/layout/icons/icon_email.png differ diff --git a/main/layout/icons/icon_message.png b/main/layout/icons/icon_message.png new file mode 100755 index 0000000..294bbc3 Binary files /dev/null and b/main/layout/icons/icon_message.png differ diff --git a/main/layout/icons/metaphore/T01-1_album_video_play.png b/main/layout/icons/metaphore/T01-1_album_video_play.png new file mode 100755 index 0000000..3a63b67 Binary files /dev/null and b/main/layout/icons/metaphore/T01-1_album_video_play.png differ diff --git a/main/layout/icons/metaphore/T01-1_icon_burst_shot.png b/main/layout/icons/metaphore/T01-1_icon_burst_shot.png new file mode 100755 index 0000000..92bfcca Binary files /dev/null and b/main/layout/icons/metaphore/T01-1_icon_burst_shot.png differ diff --git a/main/layout/icons/metaphore/T01-1_icon_burst_shot_dim.png b/main/layout/icons/metaphore/T01-1_icon_burst_shot_dim.png new file mode 100755 index 0000000..b629677 Binary files /dev/null and b/main/layout/icons/metaphore/T01-1_icon_burst_shot_dim.png differ diff --git a/main/layout/icons/metaphore/T01-1_icon_burst_shot_press.png b/main/layout/icons/metaphore/T01-1_icon_burst_shot_press.png new file mode 100755 index 0000000..78607bb Binary files /dev/null and b/main/layout/icons/metaphore/T01-1_icon_burst_shot_press.png differ diff --git a/main/layout/icons/metaphore/T01-1_icon_panorama_shot.png b/main/layout/icons/metaphore/T01-1_icon_panorama_shot.png new file mode 100755 index 0000000..3626af2 Binary files /dev/null and b/main/layout/icons/metaphore/T01-1_icon_panorama_shot.png differ diff --git a/main/layout/icons/metaphore/T01-1_icon_show_item.png b/main/layout/icons/metaphore/T01-1_icon_show_item.png new file mode 100755 index 0000000..2be7406 Binary files /dev/null and b/main/layout/icons/metaphore/T01-1_icon_show_item.png differ diff --git a/main/layout/icons/metaphore/T01-1_icon_sound_shot.png b/main/layout/icons/metaphore/T01-1_icon_sound_shot.png new file mode 100755 index 0000000..98a69dc Binary files /dev/null and b/main/layout/icons/metaphore/T01-1_icon_sound_shot.png differ diff --git a/main/layout/icons/metaphore/T01-1_icon_sound_shot_dim.png b/main/layout/icons/metaphore/T01-1_icon_sound_shot_dim.png new file mode 100755 index 0000000..7566322 Binary files /dev/null and b/main/layout/icons/metaphore/T01-1_icon_sound_shot_dim.png differ diff --git a/main/layout/icons/metaphore/T01-1_icon_sound_shot_press.png b/main/layout/icons/metaphore/T01-1_icon_sound_shot_press.png new file mode 100755 index 0000000..5dad17a Binary files /dev/null and b/main/layout/icons/metaphore/T01-1_icon_sound_shot_press.png differ diff --git a/slideshow/res/layout/icons/T01_btn_play.png b/main/layout/icons/metaphore/T01_btn_play.png old mode 100644 new mode 100755 similarity index 100% rename from slideshow/res/layout/icons/T01_btn_play.png rename to main/layout/icons/metaphore/T01_btn_play.png diff --git a/main/layout/images/00_zoom_in_press.png b/main/layout/images/00_zoom_in_press.png deleted file mode 100755 index 2eb645f..0000000 Binary files a/main/layout/images/00_zoom_in_press.png and /dev/null differ diff --git a/main/layout/images/00_zoom_out_press.png b/main/layout/images/00_zoom_out_press.png deleted file mode 100755 index 7e29dc9..0000000 Binary files a/main/layout/images/00_zoom_out_press.png and /dev/null differ diff --git a/main/layout/images/T01_1_gradient_bg.PNG b/main/layout/images/T01_1_gradient_bg.PNG new file mode 100755 index 0000000..c3811a7 Binary files /dev/null and b/main/layout/images/T01_1_gradient_bg.PNG differ diff --git a/main/layout/images/core_icon_back.png b/main/layout/images/core_icon_back.png new file mode 100644 index 0000000..baf1df0 Binary files /dev/null and b/main/layout/images/core_icon_back.png differ diff --git a/main/layout/images/nearby_device/T02_Player_Nearby_device_progress1.png b/main/layout/images/nearby_device/T02_Player_Nearby_device_progress1.png new file mode 100755 index 0000000..471fd5d Binary files /dev/null and b/main/layout/images/nearby_device/T02_Player_Nearby_device_progress1.png differ diff --git a/main/layout/images/nearby_device/T02_Player_Nearby_device_progress2.png b/main/layout/images/nearby_device/T02_Player_Nearby_device_progress2.png new file mode 100755 index 0000000..a4381d0 Binary files /dev/null and b/main/layout/images/nearby_device/T02_Player_Nearby_device_progress2.png differ diff --git a/main/layout/images/nearby_device/T02_Player_Nearby_device_progress3.png b/main/layout/images/nearby_device/T02_Player_Nearby_device_progress3.png new file mode 100755 index 0000000..3818aa7 Binary files /dev/null and b/main/layout/images/nearby_device/T02_Player_Nearby_device_progress3.png differ diff --git a/main/layout/images/nearby_device/T02_Player_Nearby_device_progress4.png b/main/layout/images/nearby_device/T02_Player_Nearby_device_progress4.png new file mode 100755 index 0000000..9bacbf2 Binary files /dev/null and b/main/layout/images/nearby_device/T02_Player_Nearby_device_progress4.png differ diff --git a/main/layout/images/theme/blue/T01_Edit Field_clear.png b/main/layout/images/theme/blue/T01_Edit Field_clear.png deleted file mode 100644 index 8335151..0000000 Binary files a/main/layout/images/theme/blue/T01_Edit Field_clear.png and /dev/null differ diff --git a/main/layout/images/theme/blue/T01_title_btn_press.png b/main/layout/images/theme/blue/T01_title_btn_press.png deleted file mode 100644 index 49861ed..0000000 Binary files a/main/layout/images/theme/blue/T01_title_btn_press.png and /dev/null differ diff --git a/main/layout/images/theme/white/00_winset_control_toolbar_bg.png b/main/layout/images/theme/white/00_winset_control_toolbar_bg.png deleted file mode 100644 index c46882d..0000000 Binary files a/main/layout/images/theme/white/00_winset_control_toolbar_bg.png and /dev/null differ diff --git a/main/layout/images/theme/white/00_winset_control_top_arrow.png b/main/layout/images/theme/white/00_winset_control_top_arrow.png deleted file mode 100644 index 508c2c8..0000000 Binary files a/main/layout/images/theme/white/00_winset_control_top_arrow.png and /dev/null differ diff --git a/main/layout/images/theme/white/00_winset_control_top_bg.png b/main/layout/images/theme/white/00_winset_control_top_bg.png deleted file mode 100644 index d92230a..0000000 Binary files a/main/layout/images/theme/white/00_winset_control_top_bg.png and /dev/null differ diff --git a/main/layout/images/theme/white/00_winset_divider_line.png b/main/layout/images/theme/white/00_winset_divider_line.png deleted file mode 100644 index b10e249..0000000 Binary files a/main/layout/images/theme/white/00_winset_divider_line.png and /dev/null differ diff --git a/main/layout/images/theme/white/00_winset_title_bg.png b/main/layout/images/theme/white/00_winset_title_bg.png deleted file mode 100644 index 2e7fc72..0000000 Binary files a/main/layout/images/theme/white/00_winset_title_bg.png and /dev/null differ diff --git a/main/layout/images/theme/white/T01_Edit Field_clear.png b/main/layout/images/theme/white/T01_Edit Field_clear.png deleted file mode 100644 index 8335151..0000000 Binary files a/main/layout/images/theme/white/T01_Edit Field_clear.png and /dev/null differ diff --git a/main/layout/images/theme/white/T01_title_btn.png b/main/layout/images/theme/white/T01_title_btn.png deleted file mode 100644 index 20c31f1..0000000 Binary files a/main/layout/images/theme/white/T01_title_btn.png and /dev/null differ diff --git a/main/layout/images/theme/white/T01_title_btn_press.png b/main/layout/images/theme/white/T01_title_btn_press.png deleted file mode 100644 index 49861ed..0000000 Binary files a/main/layout/images/theme/white/T01_title_btn_press.png and /dev/null differ diff --git a/main/layout/ivug-base.edc b/main/layout/ivug-base.edc index f922b6e..6a9d1a5 100755 --- a/main/layout/ivug-base.edc +++ b/main/layout/ivug-base.edc @@ -1,24 +1,25 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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. +* +*/ collections { group { name: "ivug_base"; parts { -#if 1 +// #ifdef ENABLE_BG part { name: "background"; type: RECT; scale: 1; @@ -30,7 +31,8 @@ collections { rel2 { relative: 1.0 1.0;} } } -#endif +// #endif + part { name: "clip"; @@ -39,12 +41,14 @@ collections { mouse_events: 0; description { state: "default" 0.0; - visible: 1; + visible: 1; rel1 { relative: 0.0 0.0; } rel2 { relative: 1.0 1.0; } color: 255 255 255 255; } } + + part { name: "elm.swallow.content"; type: SWALLOW; diff --git a/main/layout/ivug-best.edc b/main/layout/ivug-best.edc new file mode 100755 index 0000000..63430c2 --- /dev/null +++ b/main/layout/ivug-best.edc @@ -0,0 +1,354 @@ +/* +* Copyright (c) 2000-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. +* +*/ + + +collections { +group { + name: "bestview"; + + parts { + + part { name: "background"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + color: 0 0 0 255; + //color: 255 255 255 255; + visible: 1; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0;} + } + } + + part { + name: "clip"; + type: RECT; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 1.0; } + visible: 1; + color: 255 255 255 255; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + color: 255 255 255 0; + visible: 0; + } + } + + part { name: "bestview.navibar"; + type: SWALLOW; + scale: 1; + mouse_events: 1; + repeat_events : 0; + clip_to: "clip"; + description { + state: "default" 0.0; + align: 0.5 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 1.0;} + } + + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "bestview.area"; + type: SWALLOW; + scale: 1; + mouse_events: 0; + repeat_events : 1; + description { + state: "default" 0.0; + align: 0.5 0.5; + visible: 1; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0;} + } + } + } + + programs { + program { + name: "main_view_click"; + signal: "mouse,down,1"; + source: "bestview"; + action: SIGNAL_EMIT "elm,action,press" ""; + } + program { + name: "hide_menu"; + signal: "bestview,hide,menu"; + source: "elm"; + action: STATE_SET "hide" 0.0; + transition: LINEAR 0.1; + target: "clip"; + after: "hide_end"; + } + program { + name: "show_menu"; + signal: "bestview,show,menu"; + source: "elm"; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.1; + target: "clip"; + after: "show_end"; + } + program { + name: "show_end"; + action: SIGNAL_EMIT "menu,show,finished" "edc"; + } + program { + name: "hide_end"; + action: SIGNAL_EMIT "menu,hide,finished" "edc"; + } + + } + +} + +group { + name: "navi_content"; + + images { + image: "T01_1_gradient_bg.PNG" COMP; + } + + parts { + part { + name: "base"; + type: RECT; + scale: 1; + mouse_events: 1; + repeat_events: 0; + description { + state: "default" 0.0; + + rel1 { relative: 0 0; } + rel2 { relative: 1 1; } + color: 0 0 0 255; + } + } + + part{ name: "menu_clipper"; + type: RECT; + scale: 1; + mouse_events: 1; + description { + state: "default" 0.0; + rel1{ relative : 0.0 0.0; } + rel2{ relative : 1.0 1.0; } + color: 255 255 255 255; + visible: 1; + } + + description { + state: "hide" 0.0; + inherit: "default" 0.0; + color: 255 255 255 0; + } + } + part { name: "bestview.slider"; + type: SWALLOW; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 1.0; } + } + } + +// Title Bar. + part { name: "title_bg"; + type: IMAGE; + scale: 1; + clip_to: "menu_clipper"; + description { state: "default" 0.0; + min: 1 122; + max: -1 122; + align: 0.0 0.0; + fixed: 0 1; + rel1 { relative: 0.0 0.0; to: "base"; } + rel2 { relative: 1.0 0.0; to: "base"; } + image { + normal: "T01_1_gradient_bg.PNG"; + border: 1 1 0 0; + border_scale: 1; + } + } + } +// Title Text. + part { + name: "ivug.main.padding.t.14"; + type: RECT; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + rel1{ relative : 0.0 0.0; } + rel2{ relative : 1.0 0.0; } + color: 0 0 0 0 ; + align: 0.5 0.0; + min: 0 14; + fixed: 0 1; + visible: 0; + } + } + + part { + name: "ivug.main.padding.r.26"; + type: RECT; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + rel1{ relative : 1.0 0.0; } + rel2{ relative : 1.0 1.0; } + color: 0 0 0 0; + align: 1.0 0.5; + min: 26 1; + fixed: 1 0; + visible: 0; + } + } + +// Button + part { + name: "ivug.swallow.btn1"; + type: SWALLOW; + scale: 1; + mouse_events: 1; + repeat_events: 0; + clip_to: "menu_clipper"; + description { + state: "default" 0.0; + rel1{ relative : 0.0 1.0; to_x: "ivug.main.padding.r.26"; to_y: "ivug.main.padding.t.14"; } + rel2{ relative : 0.0 1.0; to_x: "ivug.main.padding.r.26"; to_y: "ivug.main.padding.t.14"; } + align: 1.0 0.0; + min: 63 63; + fixed: 1 1; + visible: 1; + } + + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + + part { + name: "thumblist_bg"; + type: RECT; + scale: 1; + mouse_events: 0; + repeat_events: 0; + description { + state: "default" 0.0; + min: 0 133; + fixed: 0 1; + rel1 { to_y: "ivug.main.padding.b.40"; relative: 0.0 0.0; } + rel2 { to_y: "ivug.main.padding.b.40"; relative: 1.0 0.0; } + align: 0.5 1.0; + visible: 0; + } + + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { + name: "ivug.main.padding.b.40"; + type: RECT; + scale : 1; + mouse_events:0; + description { + state: "default" 0.0; + min : 0 40; + fixed : 0 1; + rel1{ relative : 0.0 1.0; } + rel2{ relative : 1.0 1.0; } + align: 0.5 1.0; + color: 0 0 0 0; + visible : 0; + } + } + + + part { + name: "thumblist"; + type: SWALLOW; + scale: 1; + mouse_events: 1; + repeat_events: 0; + + description { + state: "default" 0.0; + rel1 { to: "thumblist_bg"; } + rel2 { to: "thumblist_bg"; } + color: 0 0 0 0; + align: 0.5 1.0; + visible: 1; + } + + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + } + programs { + program { name: "hide_menu"; + signal: "elm,state,hide"; + source: "user"; + action: STATE_SET "hide" 0.0; + target: "menu_clipper"; + target: "thumblist"; + target: "title_bg"; + target: "ivug.swallow.btn1"; + + } + + program { name: "show_menu"; + signal: "elm,state,show"; + source: "user"; + action: STATE_SET "default" 0.0; + target: "menu_clipper"; + target: "thumblist"; + target: "title_bg"; + target: "ivug.swallow.btn1"; + } + } + + } + +} diff --git a/main/layout/ivug-buddy-view.edc b/main/layout/ivug-buddy-view.edc new file mode 100755 index 0000000..b58b20b --- /dev/null +++ b/main/layout/ivug-buddy-view.edc @@ -0,0 +1,207 @@ +/* +* Copyright (c) 2000-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. +* +*/ + +// buddy view +#define LAYOUT_INDICATOR_HEIGHT_INC 60 + +collections { +group { + name: "buddy_view"; + + parts { + + part { name: "background"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + color: 0 0 0 255; + //color: 255 255 255 255; + visible: 1; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0;} + } + } + + part { + name: "clip"; + type: RECT; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 1.0; } + visible: 1; + color: 255 255 255 255; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + color: 255 255 255 0; + visible: 0; + } + } + + part { name: "navibar"; + type: SWALLOW; + scale: 1; + mouse_events: 1; + repeat_events : 0; + clip_to: "clip"; + description { + state: "default" 0.0; + align: 0.5 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 1.0;} + } + + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "mainview.area"; + type: SWALLOW; + scale: 1; + mouse_events: 0; + repeat_events : 1; + description { + state: "default" 0.0; + align: 0.5 0.5; + visible: 1; + rel1 { relative: 0.0 0.0; offset: 0 LAYOUT_INDICATOR_HEIGHT_INC;} + rel2 { relative: 1.0 1.0;} + } + } + } + + programs { + program { + name: "main_view_click"; + signal: "mouse,down,1"; + source: "mainview"; + action: SIGNAL_EMIT "elm,action,press" ""; + } + program { + name: "hide_menu"; + signal: "mainview,hide,menu"; + source: "elm"; + action: STATE_SET "hide" 0.0; + transition: LINEAR 0.1; + target: "clip"; + after: "hide_end"; + } + program { + name: "show_menu"; + signal: "mainview,show,menu"; + source: "elm"; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.1; + target: "clip"; + after: "show_end"; + } + program { + name: "show_end"; + action: SIGNAL_EMIT "menu,show,finished" "edc"; + } + program { + name: "hide_end"; + action: SIGNAL_EMIT "menu,hide,finished" "edc"; + } + + } + +} + +group { + name: "navi_content"; + parts { + part { + name: "base"; + type: RECT; + scale: 1; + mouse_events: 1; + repeat_events: 0; + description { + state: "default" 0.0; + + rel1 { relative: 0 0; } + rel2 { relative: 1 1; } + color: 0 0 0 255; + } + } + + part{ + name: "photocam"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 0; + scale: 1; //allow scaling + + description { + state: "default" 0.0; + visible: 1; + rel1 { relative: 0 0; to:base; } + rel2 { relative: 1 1; to:base; } + } + } + + part { + name: "buddy_face"; + type: SWALLOW; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; to:base;} + rel2 { relative: 1.0 1.0; to:base;} + color: 0 0 0 0; + } + } + + part { + name: "controlbar_area"; + type: RECT; + scale : 1; + mouse_events:0; + description { + state: "default" 0.0; + min : 0 95; + fixed : 0 1; + rel1{ relative : 0.0 1.0; } + rel2{ relative : 1.0 1.0; } + align: 0.5 1.0; + color: 0 0 0 0; + visible : 1; + } + + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + } + + } + +} diff --git a/main/layout/ivug-button.edc b/main/layout/ivug-button.edc new file mode 100644 index 0000000..b0fbff8 --- /dev/null +++ b/main/layout/ivug-button.edc @@ -0,0 +1,302 @@ +/* +* Copyright (c) 2000-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 GENERAL_BUTTON_EFFECT2_SIZE(part_name, w, h, img_normal, img_normal_effect, img_press_effect, img_dim) \ + part { \ + name: part_name; \ + type: IMAGE; \ + scale: 1; \ + mouse_events: 0; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: 0.0 0.0; } \ + rel2 { relative: 1.0 1.0; } \ + align: 0.5 0.5; \ + min: w h; max: w h; fixed: 1 1;\ + image { normal: img_dim; } \ + color: 107 107 107 255;/*AO005;*/\ + visible: 1; \ + } \ + description { \ + state: "press" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { \ + state: "on" 0.0; \ + inherit: "default" 0.0; \ + color: 255 255 0 255; /*0 0 0 102;AO001;*/\ + visible: 1; \ + }\ + description { \ + state: "normal" 0.0; \ + inherit: "default" 0.0; \ + image { normal: img_normal; }\ + visible: 1; \ + } \ + }\ + part { \ + name: part_name"_effect"; \ + type: IMAGE; \ + scale: 1; \ + mouse_events: 0; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: 0.0 0.0; } \ + rel2 { relative: 1.0 1.0; } \ + align: 0.5 0.5; \ + min: w h; max: w h; fixed: 1 1;\ + image { normal: img_normal_effect; } \ + visible: 0; \ + } \ + description { \ + state: "press" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { \ + state: "on" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + }\ + description { \ + state: "normal" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + }\ + part { \ + name: part_name"_effect2"; \ + type: IMAGE; \ + scale: 1; \ + mouse_events: 0; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: 0.0 0.0; } \ + rel2 { relative: 1.0 1.0; } \ + align: 0.5 0.5; \ + min: w h; max: w h; fixed: 1 1;\ + image { normal: img_press_effect; } \ + visible: 0;\ + } \ + description { \ + state: "press" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { \ + state: "on" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + }\ + description { \ + state: "normal" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + }\ + part { \ + name: "focus_bg"; \ + type: IMAGE; \ + scale: 1; \ + mouse_events: 0; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + rel1 { relative: 0.0 0.0; } \ + rel2 { relative: 1.0 1.0; } \ + align: 0.5 0.5; \ + image { \ + normal: "00_tab_focus_dbg.png"; \ + border: 8 8 8 8; \ + border_scale: 1; \ + } \ + }\ + description { \ + state: "show" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + }\ + }\ + part { \ + name: part_name"_event"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 0; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + color: 0 0 0 0; \ + visible: 0; \ + rel1 { relative: -0.2 -0.2; } \ + rel2 { relative: 1.2 1.2; } \ + } \ + description { \ + state: "normal" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } + +#define GENERAL_PROGRAMS_EFFECT2(part_name, source_name) \ + program { \ + name: "mouse_clicked_"part_name; \ + signal: "mouse,clicked,1"; \ + source: part_name"_event"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:part_name, st, 30, vl); \ + emit( part_name"_click", source_name ); \ + run_program(PROGRAM:"play_button_press"); \ + } \ + } \ + program { \ + name: "mouse_out_"part_name; \ + signal: "mouse,out"; \ + source: part_name"_event"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:part_name, st, 30, vl); \ + emit( part_name"_out", source_name ); \ + } \ + } \ + program { \ + name: part_name",normal"; \ + source: "prog"; \ + signal: part_name",normal"; \ + script: { \ + if(get_int(check_state) == 1)\ + {\ + set_state(PART:part_name, "on", 0.0); \ + set_state(PART:part_name"_effect", "on", 0.0); \ + set_state(PART:part_name"_effect2", "on", 0.0); \ + set_state(PART:part_name"_event", "normal", 0.0); \ + }\ + else\ + {\ + set_state(PART:part_name, "normal", 0.0); \ + set_state(PART:part_name"_effect", "normal", 0.0); \ + set_state(PART:part_name"_effect2", "normal", 0.0); \ + set_state(PART:part_name"_event", "normal", 0.0); \ + }\ + } \ + } \ + program { \ + name: part_name",press"; \ + source: "prog"; \ + signal: part_name",press"; \ + script: { \ + set_state(PART:part_name, "press", 0.0); \ + set_state(PART:part_name"_effect", "press", 0.0); \ + set_state(PART:part_name"_effect2", "press", 0.0); \ + } \ + } \ + program { \ + name: part_name",dim"; \ + source: "prog"; \ + signal: part_name",dim"; \ + script: { \ + set_state(PART:part_name, "default", 0.0); \ + set_state(PART:part_name"_effect", "default", 0.0); \ + set_state(PART:part_name"_effect2", "default", 0.0); \ + set_state(PART:part_name"_event", "default", 0.0); \ + } \ + } \ + program { \ + name: "focused"; \ + signal: "elm,action,focus_highlight,show"; \ + source: "elm"; \ + script: { \ + set_state(PART:"focus_bg", "show", 0.0); \ + } \ + } \ + program { \ + name: "unfocused"; \ + signal: "elm,action,focus_highlight,hide"; \ + source: "elm"; \ + script: { \ + set_state(PART:"focus_bg", "default", 0.0); \ + }\ + } \ + program { name: "play_button_press"; \ + action: RUN_PLUGIN "touch_sound";\ + } + +collections { + base_scale: 1.8; + plugins { + plugin { + name: "touch_sound"; // Name run by RUN_PLUGIN + source: "feedback"; // External edje plugin name + param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP"; + } + } + + images { + image: "T01_1_icon_play.png" COMP; + image: "T01_1_icon_play_dim.png" COMP; + image: "T01_1_icon_play_press.png" COMP; + image: "image_viewer_icon_favorite.png" COMP; + image: "image_viewer_icon_favorite_shadow.png" COMP; + image: "image_viewer_icon_favorite_stroke.png" COMP; + image: "image_viewer_ic_private.png" COMP; + image: "image_viewer_ic_private_ef.png" COMP; + image: "00_tab_focus_dbg.png" COMP; + } + + group { + name: "ivug.btn.favorite"; + + script { + public check_state = 0; + public check_disabled = 0; + public check_visible = 0; + } + + parts { + GENERAL_BUTTON_EFFECT2_SIZE("image", 60, 60, "image_viewer_icon_favorite.png", "image_viewer_icon_favorite_shadow.png", "image_viewer_icon_favorite_stroke.png", "image_viewer_icon_favorite.png") + } + programs { + GENERAL_PROGRAMS_EFFECT2("image", "ivug.btn.favorite") + program { + name: "image,on,effect"; + source: "prog"; + signal: "image,on,effect"; + script: { + set_state(PART:"image", "on", 0.0); + set_state(PART:"image_effect", "on", 0.0); + set_state(PART:"image_effect2", "on", 0.0); + set_int(check_state, 1); + } + } + program { + name: "image,off,effect"; + source: "prog"; + signal: "image,off,effect"; + script: { + set_state(PART:"image", "normal", 0.0); + set_state(PART:"image_effect", "normal", 0.0); + set_state(PART:"image_effect2", "normal", 0.0); + set_int(check_state, 0); + } + } + } + } +} + diff --git a/main/layout/ivug-crop-view.edc b/main/layout/ivug-crop-view.edc index 35cdd74..3d06df1 100755 --- a/main/layout/ivug-crop-view.edc +++ b/main/layout/ivug-crop-view.edc @@ -1,36 +1,31 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ivug-theme.edc" - -#define MENU_VISIBLE 1 -#define MENU_INVISIBLE 0 +* Copyright (c) 2000-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 PROGRESSBAR_WIDTH 100 #define PROGRESSBAR_HEIGHT 100 #define NOTIFY_HEIGHT 47 +#define TOOLBAR_LARGE_HEIGHT_INC 138 + collections { group { name: "crop_view"; - /*script { - public menu_state = MENU_VISIBLE; - }*/ parts{ part { name: "bg"; @@ -41,70 +36,28 @@ collections { color: 0 0 0 255; rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; - } - } - - part { - name: "indicator"; - type: RECT; - scale: 1; - repeat_events : 0; - description { - state: "default" 0.0; - min: 0 LAYOUT_INDICATOR_HEIGHT_INC; - // max: 0 LAYOUT_INDICATOR_HEIGHT_INC; - rel1.relative: 0.0 0.0; - rel2.relative: 1.0 0.0; - fixed: 0 1; - align: 0.5 0.0; - color: LAYOUT_INDICATOR_COLOR_INC; - visible: 0; - } - - description { - state: "hide" 0.0; - inherit: "default" 0.0; - visible: 0; + visible: 1; } } part { name: "crop.contents"; - type: RECT; + type: SPACER; scale: 1; repeat_events: 0; description { state: "default" 0.0; - color: 0 0 0 100; - align: 0.0 0.0; - rel1.relative: 0.0 1.0; - rel1.to_x: "bg"; - rel1.to_y: "indicator"; - rel1.offset: 0 0; - rel2.relative: 1.0 0.0; - rel2.to_x: "bg"; - rel2.to_y: "toolbar_bg"; - rel2.offset: 0 -NOTIFY_HEIGHT; //for notify - visible: 1; + rel1.relative: 0.0 0.0; + rel2.relative: 1.0 0.0; rel2.to: "elm.swallow.toolbar"; } } part { name: "crop.contents.swallow"; - type: SWALLOW; - scale: 1; - repeat_events: 0; - description { state: "default" 0.0; - rel1 { relative: 0 0; to:crop.contents; } - rel2 { relative: 1 1; to:crop.contents; } - visible: 1; - } - } - - part { name: "crop.contents.swallow.notify"; type: RECT; scale: 1; repeat_events: 0; description { state: "default" 0.0; - rel1 { relative: 0 0; to:crop.contents; } - rel2 { relative: 1 1; to:crop.contents; offset: 0 NOTIFY_HEIGHT;} + rel1 { relative: 0.0 0.0; to: "crop.contents"; } + rel2 { relative: 1.0 1.0; to: "crop.contents"; } + color: 0 0 0 255; visible: 1; } } @@ -118,8 +71,8 @@ collections { description { state: "default" 0.0; visible: 1; - rel1 { relative: 0 0; to:crop.contents; } - rel2 { relative: 1 1; to:crop.contents; } + rel1 { relative: 0.0 0.0; to: "crop.contents"; } + rel2 { relative: 1.0 1.0; to: "crop.contents"; } } } @@ -131,8 +84,8 @@ collections { state: "default" 0.0; align: 0.5 0.5; visible: 1; - rel1 { relative: 0 0; to:crop.contents; } - rel2 { relative: 1 1; to:crop.contents; } + rel1 { relative: 0.0 0.0; to: "crop.contents"; } + rel2 { relative: 1.0 1.0; to: "crop.contents"; } } } @@ -147,8 +100,8 @@ collections { fixed: 1 1; visible: 1; align: 0.5 0.5; - rel1 { relative: 0 0; to:photocam; } - rel2 { relative: 1 1; to:photocam; } + rel1 { relative: 0 0; to: "photocam"; } + rel2 { relative: 1 1; to: "photocam"; } } } @@ -176,23 +129,57 @@ collections { description { state: "default" 0.0; visible: 1; - rel1 { relative: 0 0; to:crop.contents; } - rel2 { relative: 1 1; to:crop.contents; } + rel1 { relative: 0.0 0.0; to: "crop.contents"; } + rel2 { relative: 1.0 1.0; to: "crop.contents"; } + } + } + part { name: "crop.contents.text.notify"; + type: TEXT; + scale: 1; + description { + state: "default" 0.0; + min: 0 40; + fixed: 0 1; + rel1 { relative: 0.0 0.0; to: "notify.pad.28"; } + rel2 { relative: 1.0 0.0; to: "notify.pad.28"; } + align: 0.5 1.0; + color: 250 250 250 255; + text { + font: "Tizen:style=Roman"; + size: 32; + min: 0 1; + align: 0.5 0.5; + text_class: "tizen"; + } } } - part { name: "toolbar_bg"; - type: RECT; + part { + name: "notify.pad.28"; + type: SPACER; scale: 1; - description { state: "default" 0.0; - min: 0 NAVIFRAME_TOOLBAR_HEIGHT_INC; - max: 999999 NAVIFRAME_TOOLBAR_HEIGHT_INC; + description { + state: "default" 0.0; + min: 0 28; + fixed: 0 1; + align: 0.5 1.0; + rel1 { relative: 0.0 0.0; to: "elm.swallow.toolbar"; } + rel2 { relative: 1.0 0.0; to: "elm.swallow.toolbar"; } + } + } + + part { + name: "elm.swallow.toolbar"; // Toolbar on bottom side + scale: 1; + type: SWALLOW; + description { + state: "default" 0.0; + visible: 1; + min: 0 TOOLBAR_LARGE_HEIGHT_INC; fixed: 0 1; - align: 0.0 1.0; - visible: 0; - rel1 { to: "bg"; } - rel2 { to: "bg"; } - color: NAVIFRAME_TOOLBAR_BG_COLOR_INC; + align: 0.5 1.0; + rel1 { relative: 0.0 1.0; to: "bg";} + rel2 { relative: 1.0 1.0; to: "bg";} } } } diff --git a/main/layout/ivug-details.edc b/main/layout/ivug-details.edc index f05d997..95fe069 100755 --- a/main/layout/ivug-details.edc +++ b/main/layout/ivug-details.edc @@ -1,42 +1,214 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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. +* +*/ /* used for details view */ +#define NAVIFRAME_TITLE_FONT_SIZE_INC 50 +#define NAVIFRAME_TITLE_TEXT_COLOR_INC 250 250 250 255 + +#define COLOR_PADDING 0 0 0 0 + collections { + sounds { + sample { + name: "button-pressed" RAW; + source: "button-pressed.wav"; + } + } + group { name: "details_view"; parts{ - part { - name: "details_view.swallow.bg"; - type: SWALLOW; - repeat_events: 0; - scale:1; - + part { name: "bg"; + type: RECT; + scale: 1; description { state: "default" 0.0; - rel1.relative: 0.0 0.0; - rel2.relative: 1.0 1.0; + color: 0 0 0 128; + visible: 1; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0;} } } + part { + name: "ivug.detail.padding.t.10"; + type: RECT; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + rel1{ relative : 0.0 0.0; } + rel2{ relative : 1.0 0.0; } + color: COLOR_PADDING; + align: 0.5 0.0; + min: 0 10; + fixed: 0 1; + visible: 1; + } + } + + part { + name: "ivug.detail.padding.r.16"; + type: RECT; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + rel1{ relative : 1.0 0.0; } + rel2{ relative : 1.0 1.0; } + color: COLOR_PADDING; + align: 1.0 0.5; + min: 16 0; + fixed: 1 0; + visible: 1; + } + } + + part { + name: "ivug.detail.padding.title"; + type: RECT; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + rel1{ relative : 0.0 1.0; to_y: "ivug.detail.padding.t.10"; } + rel2{ relative : 1.0 0.0; } + color: COLOR_PADDING; + align: 0.5 0.0; + min: 0 60; + fixed: 0 1; + visible: 1; + } + } + + part { + name: "ivug.main.padding.l.10"; +#ifdef USE_PADDING_RECT + type: RECT; +#else + type: SPACER; +#endif + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + rel1{ relative : 0.0 0.0; } + rel2{ relative : 0.0 1.0; } + align: 0.0 0.5; + min: 10 0; + fixed: 1 0; +#ifdef USE_PADDING_RECT + color: COLOR_PADDING; + visible: 0; +#endif + } + } + + + part { name: "maintitle_text_bg"; +#ifdef USE_PADDING_RECT + type: RECT; +#else + type: SPACER; +#endif + scale: 1; + repeat_events: 1; + description { state: "default" 0.0; + align: 0.0 0.0; + min: 0 60; + fixed: 0 1; + rel1 { relative: 1.0 1.0; to_x: "ivug.main.padding.l.10"; to_y: "ivug.detail.padding.t.10"; } + rel2 { relative: 0.0 1.0; to_x: "details_view.btn.close"; to_y: "ivug.detail.padding.t.10"; } +#ifdef USE_PADDING_RECT + color: COLOR_PADDING; + visible: 0; +#endif + + } + } + + + part { name: "elm.text.title"; + type: TEXT; + effect: FAR_SHADOW BOTTOM; + scale: 1; + description { state: "default" 0.0; + text { font: "Tizen:style=Bold"; + size: 24; + size_range: 24 NAVIFRAME_TITLE_FONT_SIZE_INC; + fit: 1 0; + min: 0 0; + max: 1 0; + align: 0.0 0.5; + text_class: "tizen"; + } + color: NAVIFRAME_TITLE_TEXT_COLOR_INC; + color3: 0 0 0 255; + align: 0.0 0.5; + rel1.to: "maintitle_text_bg"; + rel2.to: "maintitle_text_bg"; + } + + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { + name: "details_view.btn.close"; + type: SWALLOW; + repeat_events : 0; + mouse_events : 1; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + min: 48 48; + fixed: 1 1; + align: 1.0 0.0; + rel1 { relative: 0.0 1.0; to_y: "ivug.detail.padding.t.10"; to_x: "ivug.detail.padding.r.16"; } + rel2 { relative: 0.0 1.0; to_y: "ivug.detail.padding.t.10"; to_x: "ivug.detail.padding.r.16"; } + } + } + + part { + name: "ivug.detail.padding.title.t.26"; + type: RECT; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + rel1{ relative : 0.0 1.0; to_y: "maintitle_text_bg"; } + rel2{ relative : 1.0 0.0; } + color: COLOR_PADDING; + align: 0.5 0.0; + min: 0 26; + fixed: 0 1; + visible: 1; + } + } + part { name: "details_view.genlist"; type: SWALLOW; @@ -46,11 +218,22 @@ collections { description { state: "default" 0.0; visible: 1; - rel1 { relative: 0.0 0.0; } + rel1 { relative: 0.0 0.0; to_y: "ivug.detail.padding.title.t.26"; } rel2 { relative: 1.0 1.0; } } } } + + programs { + program { name: "play_sound"; + signal: "mouse,clicked,1"; + source: "details_view.btn.close"; + after: "play_button_press"; + } + program { name: "play_button_press"; + action: PLAY_SAMPLE "button-pressed" 1.0; + } + } } // end of group } // end of collections diff --git a/main/layout/ivug-edit-weather-view.edc b/main/layout/ivug-edit-weather-view.edc new file mode 100755 index 0000000..6f1252e --- /dev/null +++ b/main/layout/ivug-edit-weather-view.edc @@ -0,0 +1,68 @@ +/* +* Copyright (c) 2000-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 NAME_ENTRY_MIN_W_INC 1280 +#define NAME_ENTRY_BG_MIN_H_INC 112 +#define NAME_ENTRY_MIN_H_INC 48 + +#define NAME_ENTRY_BOTTOM_LINE_COLOR_INC 82 82 82 255 + +#define NAME_ENTRY_PART_OFFSET 16 + +collections { + group { + name: "edit-weather-view"; + parts { + part { + name: "bg"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + color: 0 0 0 255; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0;} + } + } + part { + name: "preview_layout"; + type: SWALLOW; + scale: 1; + description { + min: 720 0; + max: -1 328; + fixed: 1 1; + align: 0 0; + state: "default" 0.0; + rel1 {relative: 0.0 0.0;} + rel2 {relative: 1.0 0.0; offset: 0 328;} + } + } + part { + name: "settinglist"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1 {relative: 0.0 1.0; to : "preview_layout";} + rel2 {relative: 1.0 1.0;} + } + } + } +} +} + diff --git a/main/layout/ivug-effect.edc b/main/layout/ivug-effect.edc index 5b842b1..ef5a9e8 100755 --- a/main/layout/ivug-effect.edc +++ b/main/layout/ivug-effect.edc @@ -1,20 +1,21 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 "ivug-theme.edc" +#define LAYOUT_INDICATOR_HEIGHT_INC 60 collections { group { @@ -75,8 +76,10 @@ collections { } part { name: "event_blocker"; + type: RECT; description { state: "default" 0.0; + color: 0 0 0 0; visible: 1; } description { diff --git a/main/layout/ivug-face-view.edc b/main/layout/ivug-face-view.edc new file mode 100755 index 0000000..ded32f9 --- /dev/null +++ b/main/layout/ivug-face-view.edc @@ -0,0 +1,85 @@ +/* +* Copyright (c) 2000-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. +* +*/ + +collections { + group { + name: "face_view"; + + parts{ + part{ + name: "face.face_rect"; + type: SWALLOW; + mouse_events: 0; + repeat_events: 1; + scale: 1; //allow scaling +// clip_to: "clip"; + description { + state: "default" 0.0; + visible: 1; +// rel1.to: "clip"; +// rel2.to: "clip"; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + + } + + part { + name: "swallow.event"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + scale:1; + description { + state: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + + } + } + + programs { + program { name: "hide_menu"; + signal: "elm,state,hide"; + source: "user"; + action: STATE_SET "hide" 0.0; +// target: "clip"; + target: "face.face_rect"; + target: "swallow.event"; + } + + program { name: "show_menu"; + signal: "elm,state,show"; + source: "user"; + action: STATE_SET "default" 0.0; +// target: "clip"; + target: "face.face_rect"; + target: "swallow.event"; + } + } + + } // End of group +} // End of collection + diff --git a/main/layout/ivug-gengrid.edc b/main/layout/ivug-gengrid.edc deleted file mode 100755 index b75f798..0000000 --- a/main/layout/ivug-gengrid.edc +++ /dev/null @@ -1,211 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ivug-theme.edc" - - -#define MARGIN (0) -#define MARGIN_TOP (0) -#define MARGIN_BOTTOM (0) - -collections { - - styles { - style { name: "gengrid_textblock_style"; - base: "font=SLP:style=Medium font_size="GENGRID_FONT_STYLE_18_INC" color="GENGRID_PART_TEXTBLOCK_STYLE_COLOR_INC" align=center wrap=mixed ellipsis=1.0 text_class=slp_medium"; - tag: "br" "\n"; - tag: "ps" "ps"; - tag: "tab" "\t"; - tag: "b" "+ font=SLP:style=Bold"; - } - } - - group { name: "elm/gengrid/item/thumblist/default"; - data.item: "contents" "elm.swallow.icon elm.swallow.end"; - images { - image : "00_winset_thumbs_bg.png" COMP; - image : "00_winset_thumbs_focus_bg.png" COMP; - } - parts { - part { name: "bg"; - type: RECT; - description { state: "default" 0.0; - color: GENGRID_PART_BG_COLOR_INC; - } - } - part { name: "left_top_padding"; - type: RECT; - scale : 1; - description { state: "default" 0.0; - min: MARGIN MARGIN_TOP; - align: 0.0 0.0; - visible: 0; - rel1.to: "bg"; - rel2 { - relative: 0.0 0.0; - to: "bg"; - } - } - } - part { name: "right_bottom_padding"; - type: RECT; - scale: 1; - description { state: "default" 0.0; - min: MARGIN MARGIN_BOTTOM; - align: 1.0 1.0; - visible: 0; - rel1 { - relative: 1.0 1.0; - to: "bg"; - } - rel2.to: "bg"; - } - } - - part { name: "item_real_bg"; - type: RECT; - description { state: "default" 0.0; - color: 0 0 0 255; - rel1 { - relative: 1.0 1.0; - to: "left_top_padding"; - } - rel2 { - relative: 0.0 0.0; - to: "right_bottom_padding"; - } - } - } - part { name: "item_real_bg_left_top_padding"; - type: RECT; - scale : 1; - description { state: "default" 0.0; - min: 2 2; - align: 0.0 0.0; - visible: 0; - rel1.to: "item_real_bg"; - rel2 { - relative: 0.0 0.0; - to: "item_real_bg"; - } - } - } - part { name: "item_real_bg_right_bottom_padding"; - type: RECT; - scale : 1; - description { state: "default" 0.0; - min: 2 2; - align: 1.0 1.0; - visible: 0; - rel1 { - relative: 1.0 1.0; - to: "item_real_bg"; - } - rel2.to: "item_real_bg"; - } - } - - part { name: "elm.swallow.icon"; - type: SWALLOW; - description { state: "default" 0.0; - rel1 { - relative: 1.0 1.0; - to: "item_real_bg_left_top_padding"; - } - rel2 { - relative: 0.0 0.0; - to: "item_real_bg_right_bottom_padding"; - } - } - } - - part { name: "elm.swallow.end"; - type: SWALLOW; - description { state: "default" 0.0; - rel1.to: "elm.swallow.icon"; - rel2.to: "elm.swallow.icon"; - } - } - part { name: "focus_bg_left_top_padding"; - type: RECT; - scale : 1; - description { state: "default" 0.0; - min: MARGIN MARGIN_TOP; - align: 0.0 0.0; - visible: 0; - rel1.to: "bg"; - rel2 { - relative: 0.0 0.0; - to: "bg"; - } - } - } - part { name: "focus_bg_right_bottom_padding"; - type: RECT; - scale: 1; - description { state: "default" 0.0; - min: MARGIN MARGIN_BOTTOM; - align: 1.0 1.0; - visible: 0; - rel1 { - relative: 1.0 1.0; - to: "bg"; - } - rel2.to: "bg"; - } - } - part { name: "focus_bg"; - type: IMAGE; - description { state: "default" 0.0; - visible: 0; - rel1 { - relative: 1.0 1.0; - to: "focus_bg_left_top_padding"; - } - rel2 { - relative: 0.0 0.0; - to: "focus_bg_right_bottom_padding"; - } - image.normal: "00_winset_thumbs_focus_bg.png"; - } - description { state: "enabled" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - } -#if 1 - programs { - program { name: "go_mouse_down"; - signal: "elm,state,selected"; - source: "app"; - action: STATE_SET "enabled" 0.0; - target: "focus_bg"; - transition: ACCELERATE 0.1; - } - program { name: "go_mouse_up"; - signal: "elm,state,unselected"; - source: "app"; - action: STATE_SET "default" 0.0; - target: "focus_bg"; - transition: DECELERATE 0.1; - } -#endif - - } - -} - diff --git a/main/layout/ivug-icons.edc b/main/layout/ivug-icons.edc index a66b113..2370c9c 100755 --- a/main/layout/ivug-icons.edc +++ b/main/layout/ivug-icons.edc @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 DEFINE_ICON(_name, _fname) \ images { image: _fname COMP; } \ @@ -43,14 +44,138 @@ collections { group { name: _name; \ image.normal: _fname; \ }}}}} -#define BTN_PLAY_VIDEO "T01_btn_play.png" -#define BTN_PAUSED_VIDEO "T01_btn_paused.png" + #define ICON_FACEBOOK "T01_Facebook.png" +#define ICON_MESSAGE "icon_message.png" +#define ICON_EMAIL "icon_email.png" -DEFINE_ICON("btn.video.play", BTN_PLAY_VIDEO) -DEFINE_ICON("btn.video.paused", BTN_PAUSED_VIDEO) +#define ICON_NEARBY_PHONE "U04_device_Mobile.png" +#define ICON_NEARBY_TV "T02_Player_Nearby_device_02.png" +#define ICON_NEARBY_UNKNOWN "U04_device_None_DNS.png" DEFINE_ICON("icon.facebook", ICON_FACEBOOK) +DEFINE_ICON("icon.message", ICON_MESSAGE) +DEFINE_ICON("icon.email", ICON_EMAIL) + +DEFINE_ICON("icon.nearby.phone", ICON_NEARBY_PHONE) +DEFINE_ICON("icon.nearby.tv", ICON_NEARBY_TV) +DEFINE_ICON("icon.nearby.unknown", ICON_NEARBY_UNKNOWN) + + +#define ICON_ASF_UNKNOWN "asf_icon/U04_device_None_DNS.png" +#define ICON_ASF_MOBILE "asf_icon/U04_device_Mobile.png" +#define ICON_ASF_PC "asf_icon/U04_device_PC.png" +#define ICON_ASF_TV "asf_icon/U04_device_TV.png" +#define ICON_ASF_STB "asf_icon/U04_device_STB.png" +#define ICON_ASF_CAMERA "asf_icon/U04_device_Camera.png" +#define ICON_ASF_CAMCORDER "asf_icon/U04_device_Camcorder.png" +#define ICON_ASF_TABLET "asf_icon/U04_device_Tablet.png" +#define ICON_ASF_LFD "asf_icon/U04_device_LFD.png" + +DEFINE_ICON("icon.asf.unknown", ICON_NEARBY_UNKNOWN) +DEFINE_ICON("icon.asf.mobile", ICON_ASF_MOBILE) +DEFINE_ICON("icon.asf.pc", ICON_ASF_PC) +DEFINE_ICON("icon.asf.tv", ICON_ASF_TV) +DEFINE_ICON("icon.asf.stb", ICON_ASF_STB) +DEFINE_ICON("icon.asf.camera", ICON_ASF_CAMERA) +DEFINE_ICON("icon.asf.camcorder", ICON_ASF_CAMCORDER) +DEFINE_ICON("icon.asf.tablet", ICON_ASF_TABLET) +DEFINE_ICON("icon.asf.lfd", ICON_ASF_LFD) + +#define ICON_MAINMENU_ADDTAG "ctx_icon/T01-1_popup_icon_addtag.png" +#define ICON_MAINMENU_ADD_CAPTION "ctx_icon/T01-1_popup_icon_add_caption.png" +#define ICON_MAINMENU_CROP "ctx_icon/T01-1_popup_icon_crop.png" +#define ICON_MAINMENU_DETAIL "ctx_icon/T01-1_popup_icon_detail.png" +#define ICON_MAINMENU_DETECT_TEXT "ctx_icon/T01-1_popup_icon_detect_text.png" +#define ICON_MAINMENU_EDIT_WEATHER "ctx_icon/T01-1_popup_icon_edit_weather_tag.png" +#define ICON_MAINMENU_FACETAG "ctx_icon/T01-1_popup_icon_face_tag.png" +#define ICON_MAINMENU_GET_DIRECTIONS "ctx_icon/T01-1_popup_icon_get_directions.png" +#define ICON_MAINMENU_PRINT "ctx_icon/T01-1_popup_icon_Print.png" +#define ICON_MAINMENU_ROT_CCW "ctx_icon/T01-1_popup_icon_Roteteright.png" +#define ICON_MAINMENU_ROT_CW "ctx_icon/T01-1_popup_icon_Roteteleft.png" +#define ICON_MAINMENU_SETAS "ctx_icon/T01-1_popup_icon_setas.png" +#define ICON_MAINMENU_SLIDESHOW "ctx_icon/T01-1_popup_icon_slideshow.png" +#define ICON_MAINMENU_TAGBUDDY "ctx_icon/T01-1_popup_icon_tagbuddy.png" +#define ICON_MAINMENU_TRIM "ctx_icon/T01_popup_icon_trim.png" +#define ICON_MAINMENU_TRANSPARENT "ctx_icon/T01_popup_icon_transparent.png" +#define ICON_MAINMENU_PLAY_BURSTSHOT "ctx_icon/T01-1_icon_burst_shot_45x45.png" +#define ICON_MAINMENU_COPY_TO_CLIPBOARD "ctx_icon/T06_more_poup_icon_copy.png" + +DEFINE_ICON("icon.mainmenu.addtag", ICON_MAINMENU_ADDTAG) +DEFINE_ICON("icon.mainmenu.addcaption", ICON_MAINMENU_ADD_CAPTION) +DEFINE_ICON("icon.mainmenu.crop", ICON_MAINMENU_CROP) +DEFINE_ICON("icon.mainmenu.detail", ICON_MAINMENU_DETAIL) +DEFINE_ICON("icon.mainmenu.detexttext", ICON_MAINMENU_DETECT_TEXT) +DEFINE_ICON("icon.mainmenu.editweather", ICON_MAINMENU_EDIT_WEATHER) +DEFINE_ICON("icon.mainmenu.facetag", ICON_MAINMENU_FACETAG) +DEFINE_ICON("icon.mainmenu.getdirections", ICON_MAINMENU_GET_DIRECTIONS) +DEFINE_ICON("icon.mainmenu.print", ICON_MAINMENU_PRINT) +DEFINE_ICON("icon.mainmenu.rot.ccw", ICON_MAINMENU_ROT_CCW) +DEFINE_ICON("icon.mainmenu.rot.cw", ICON_MAINMENU_ROT_CW) +DEFINE_ICON("icon.mainmenu.setas", ICON_MAINMENU_SETAS) +DEFINE_ICON("icon.mainmenu.slideshow", ICON_MAINMENU_SLIDESHOW) +DEFINE_ICON("icon.mainmenu.tagbuddy", ICON_MAINMENU_TAGBUDDY) +DEFINE_ICON("icon.mainmenu.trim", ICON_MAINMENU_TRIM) +DEFINE_ICON("icon.mainmenu.transparent", ICON_MAINMENU_TRANSPARENT) +DEFINE_ICON("icon.mainmenu.playburstshot", ICON_MAINMENU_PLAY_BURSTSHOT) +DEFINE_ICON("icon.mainmenu.copytoclipboard", ICON_MAINMENU_COPY_TO_CLIPBOARD) + + +#define ICON_BURSTPLAY_SPEED_1_5TH "burstspeed/T01-1_icon_burstshot_speed_01.png" +#define ICON_BURSTPLAY_SPEED_1_5TH_DIM "burstspeed/T01-1_icon_burstshot_speed_01_dim.png" +#define ICON_BURSTPLAY_SPEED_1_5TH_PRESS "burstspeed/T01-1_icon_burstshot_speed_01_press.png" + +#define ICON_BURSTPLAY_SPEED_1_2TH "burstspeed/T01-1_icon_burstshot_speed_02.png" +#define ICON_BURSTPLAY_SPEED_1_2TH_DIM "burstspeed/T01-1_icon_burstshot_speed_02_dim.png" +#define ICON_BURSTPLAY_SPEED_1_2TH_PRESS "burstspeed/T01-1_icon_burstshot_speed_02_press.png" + +#define ICON_BURSTPLAY_SPEED_1 "burstspeed/T01-1_icon_burstshot_speed_03.png" +#define ICON_BURSTPLAY_SPEED_1_DIM "burstspeed/T01-1_icon_burstshot_speed_03_dim.png" +#define ICON_BURSTPLAY_SPEED_1_PRESS "burstspeed/T01-1_icon_burstshot_speed_03_press.png" + +#define ICON_BURSTPLAY_SPEED_2 "burstspeed/T01-1_icon_burstshot_speed_04.png" +#define ICON_BURSTPLAY_SPEED_2_DIM "burstspeed/T01-1_icon_burstshot_speed_04_dim.png" +#define ICON_BURSTPLAY_SPEED_2_PRESS "burstspeed/T01-1_icon_burstshot_speed_04_press.png" + +DEFINE_ICON("icon.burstspeed.1.5th", ICON_BURSTPLAY_SPEED_1_5TH) +DEFINE_ICON("icon.burstspeed.1.5th.press", ICON_BURSTPLAY_SPEED_1_5TH_PRESS) + +DEFINE_ICON("icon.burstspeed.1.2th", ICON_BURSTPLAY_SPEED_1_2TH) +DEFINE_ICON("icon.burstspeed.1.2th.press", ICON_BURSTPLAY_SPEED_1_2TH_PRESS) + +DEFINE_ICON("icon.burstspeed.1", ICON_BURSTPLAY_SPEED_1) +DEFINE_ICON("icon.burstspeed.1.press", ICON_BURSTPLAY_SPEED_1_PRESS) + +DEFINE_ICON("icon.burstspeed.2", ICON_BURSTPLAY_SPEED_2) +DEFINE_ICON("icon.burstspeed.2.press", ICON_BURSTPLAY_SPEED_2_PRESS) + +#define ICON_PLAY_VIDEO_260x260 "metaphore/T01-1_album_video_play.png" +#define ICON_PLAY_VIDEO_80x80 "metaphore/T01_btn_play.png" + +#define ICON_BURST "metaphore/T01-1_icon_burst_shot.png" +#define ICON_BURST_DIM "metaphore/T01-1_icon_burst_shot_dim.png" +#define ICON_BURST_PRESS "metaphore/T01-1_icon_burst_shot_press.png" + +#define ICON_PANORAMA "metaphore/T01-1_icon_panorama_shot.png" +#define ICON_SHOWITEM "metaphore/T01-1_icon_show_item.png" + +#define ICON_SOUND_SCENE "metaphore/T01-1_icon_sound_shot.png" +#define ICON_SOUND_SCENE_DIM "metaphore/T01-1_icon_sound_shot_dim.png" +#define ICON_SOUND_SCENE_PRESS "metaphore/T01-1_icon_sound_shot_press.png" + +DEFINE_ICON("btn.video.play.260.260", ICON_PLAY_VIDEO_260x260) +DEFINE_ICON("btn.video.play.80.80", ICON_PLAY_VIDEO_80x80) + +DEFINE_ICON("icon.sound_scene", ICON_SOUND_SCENE) +DEFINE_ICON("icon.sound_scene.dim", ICON_SOUND_SCENE_DIM) +DEFINE_ICON("icon.sound_scene.press", ICON_SOUND_SCENE_PRESS) + +DEFINE_ICON("icon.burst", ICON_BURST) +DEFINE_ICON("icon.burst.dim", ICON_BURST_DIM) +DEFINE_ICON("icon.burst.press", ICON_BURST_PRESS) + +DEFINE_ICON("icon.panorama", ICON_PANORAMA) +DEFINE_ICON("icon.showitem", ICON_SHOWITEM) diff --git a/main/layout/ivug-main.edc b/main/layout/ivug-main.edc index c3353ee..629a685 100755 --- a/main/layout/ivug-main.edc +++ b/main/layout/ivug-main.edc @@ -1,259 +1,482 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ - - -// main view - -#include "ivug-theme.edc" - -#define NAVI_VIEW_HEIGHT 120 -#define CTRL_VIEW_HEIGHT 114 +* Copyright (c) 2000-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 COLOR_PADDING 0 0 0 0 + +#define NAVIFRAME_TITLE_FONT_SIZE_INC 17 +#define NAVIFRAME_TITLE_TEXT_COLOR_INC 250 250 250 255 +#define ICON_BACK_BUTTON "core_icon_back.png" collections { -group { - name: "mainview"; - parts { - - part { name: "background"; - type: RECT; - scale: 1; - description { - state: "default" 0.0; - color: 0 0 0 255; - //color: 255 255 255 255; - visible: 1; - rel1 { relative: 0.0 0.0;} - rel2 { relative: 1.0 1.0;} - } + plugins { + plugin { + name: "touch_sound"; + source: "feedback"; + param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP"; } - - part { - name: "clip"; - type: RECT; - scale: 1; - mouse_events: 0; - description { - state: "default" 0.0; - rel1 { relative: 0.0 0.0; } - rel2 { relative: 1.0 1.0; } - visible: 1; - color: 255 255 255 255; - } - description { - state: "hide" 0.0; - inherit: "default" 0.0; - color: 255 255 255 0; - visible: 0; - } + } + sounds { + sample { + name: "button-pressed" RAW; + source: "button-pressed.wav"; } + } - part { name: "mainview.navibar"; - type: SWALLOW; - scale: 1; - mouse_events: 1; - repeat_events : 0; - clip_to: "clip"; - description { - state: "default" 0.0; - align: 0.5 0.0; - visible: 1; - rel1 { relative: 0.0 0.0; } - rel2 { relative: 1.0 1.0;} + group { + name: "mainview,selected"; + parts { + part { + name: "clip"; + type: RECT; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 1.0; } + visible: 1; + color: 255 255 255 255; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + color: 255 255 255 0; + visible: 1; + } } - - description { - state: "hide" 0.0; - inherit: "default" 0.0; - visible: 0; + part { + name: "mainview.select_bar"; // Photocam. + type: SWALLOW; + mouse_events: 1; + scale: 1; + description { + align: 0.0 0.0; + max:-1 72; + state: "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 0.0; } + } + } + part { + name: "mainview.navibar"; + type: SWALLOW; + scale: 1; + mouse_events: 1; + repeat_events : 0; + clip_to: "clip"; + description { + state: "default" 0.0; + align: 0.5 0.0; + visible: 1; + rel1 { relative: 0.0 1.0; to_y:"mainview.select_bar";} + rel2 { relative: 1.0 1.0;} + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } } } + programs { + program { + name: "main_view_click"; + signal: "mouse,down,1"; + source: "mainview"; + action: SIGNAL_EMIT "elm,action,press" ""; + } + program { + name: "hide_menu"; + signal: "mainview,hide,menu"; + source: "elm"; + action: STATE_SET "hide" 0.0; + transition: LINEAR 0.1; + target: "clip"; + after: "hide_end"; + } + program { + name: "show_menu"; + signal: "mainview,show,menu"; + source: "elm"; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.1; + target: "clip"; + after: "show_end"; + } + program { + name: "show_end"; + action: SIGNAL_EMIT "menu,show,finished" "edc"; + } + program { + name: "hide_end"; + action: SIGNAL_EMIT "menu,hide,finished" "edc"; + } - part { name: "mainview.area"; - type: SWALLOW; - scale: 1; - mouse_events: 0; - repeat_events : 1; - description { - state: "default" 0.0; - align: 0.5 0.5; - visible: 1; - rel1 { relative: 0.0 0.0; offset: 0 LAYOUT_INDICATOR_HEIGHT_INC;} - rel2 { relative: 1.0 1.0;} +#ifdef USE_VISIBLE_BELL + program { + name: "show_bell"; + signal: "mainview,show,vbell"; + source: "elm"; + action: STATE_SET "show" 0.0; + target: "visible.bell.right"; + target: "visible.bell.left"; + target: "visible.bell.top"; + target: "visible.bell.bottom"; + } + program { + name: "hide_bell"; + signal: "mainview,hide,vbell"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "visible.bell.right"; + target: "visible.bell.left"; + target: "visible.bell.top"; + target: "visible.bell.bottom"; } +#endif // USE_VISIBLE_BELL } } - programs { - program { - name: "main_view_click"; - signal: "mouse,down,1"; - source: "mainview"; - action: SIGNAL_EMIT "elm,action,press" ""; - } - program { - name: "hide_menu"; - signal: "mainview,hide,menu"; - source: "elm"; - action: STATE_SET "hide" 0.0; - transition: LINEAR 0.1; - target: "clip"; - after: "hide_end"; - } - program { - name: "show_menu"; - signal: "mainview,show,menu"; - source: "elm"; - action: STATE_SET "default" 0.0; - transition: LINEAR 0.1; - target: "clip"; - after: "show_end"; - } - program { - name: "show_end"; - action: SIGNAL_EMIT "menu,show,finished" "edc"; - } - program { - name: "hide_end"; - action: SIGNAL_EMIT "menu,hide,finished" "edc"; - } - - } - -} - -group { + group { name: "navi_content"; + images { + image: "T01_1_gradient_bg.PNG" COMP; + image: ICON_BACK_BUTTON COMP; + } parts { -#if 0 part { - name: "clipper"; + name: "base"; type: RECT; scale: 1; + mouse_events: 1; + repeat_events: 0; description { state: "default" 0.0; rel1 { relative: 0 0; } rel2 { relative: 1 1; } - color: 255 255 255 255; + color: 0 0 0 255; } } -#endif part { - name: "base"; + name: "mainview.slider"; // Photocam. + type: SWALLOW; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 1.0; } + } + } + part{ + name: "menu_clipper"; type: RECT; scale: 1; mouse_events: 1; - repeat_events: 0; + repeat_events: 1; description { state: "default" 0.0; + rel1{ relative : 0.0 0.0; } + rel2{ relative : 1.0 1.0; } + color: 255 255 255 255; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + color: 255 255 255 0; + } + } + part { + name: "title_bg"; // Title Bar. + type: IMAGE; + scale: 1; + clip_to: "menu_clipper"; + description { + state: "default" 0.0; + min: 1 41; + max: -1 41; + align: 0.0 0.0; + fixed: 0 1; + rel1 { relative: 0.0 0.0; to: "base"; } + rel2 { relative: 1.0 0.0; to: "base"; } + image { + normal: "T01_1_gradient_bg.PNG"; + border: 1 1 0 0; + border_scale: 1; + } + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } - rel1 { relative: 0 0; } - rel2 { relative: 1 1; } - color: 0 0 0 0; + } + part { + name: "ivug.main.padding.t.14"; // Title Text. +#ifdef USE_PADDING_RECT + type: RECT; +#else + type: SPACER; +#endif + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + rel1{ relative : 0.0 0.0; } + rel2{ relative : 1.0 0.0; } + align: 0.5 0.0; + min: 0 5; + fixed: 0 1; +#ifdef USE_PADDING_RECT + color: COLOR_PADDING; + visible: 0; +#endif } } - part { name: "mainview.slider"; - type: SWALLOW; - mouse_events: 1; + part { + name: "ivug.main.padding.l.10"; +#ifdef USE_PADDING_RECT + type: RECT; +#else + type: SPACER; +#endif scale: 1; -// clip_to: "clipper"; + mouse_events: 0; description { - state: "default" 0.0; - visible: 1; - rel1 { relative: 0.0 0.0; } - rel2 { relative: 1.0 1.0; } - } + state: "default" 0.0; + rel1{ relative : 0.0 0.0; } + rel2{ relative : 0.0 1.0; } + align: 0.0 0.5; + min: 3 0; + fixed: 1 0; +#ifdef USE_PADDING_RECT + color: COLOR_PADDING; + visible: 0; +#endif + } } - part { - name: "thumblist_bg"; - type: SWALLOW; + name: "ivug.main.padding.r.26"; +#ifdef USE_PADDING_RECT + type: RECT; +#else + type: SPACER; +#endif + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + rel1{ relative : 1.0 0.0; } + rel2{ relative : 1.0 1.0; } + align: 1.0 0.5; + min: 9 1; + fixed: 1 0; +#ifdef USE_PADDING_RECT + color: COLOR_PADDING; + visible: 0; +#endif + } + } + part { + name: "ivug.main.padding.r.15"; +#ifdef USE_PADDING_RECT + type: RECT; +#else + type: SPACER; +#endif scale: 1; mouse_events: 0; - repeat_events: 0; description { state: "default" 0.0; - min: 0 140; + rel1{ relative : 1.0 0.0; } + rel2{ relative : 1.0 1.0; } + align: 1.0 0.5; + min: 15 0; + fixed: 1 0; +#ifdef USE_PADDING_RECT + color: COLOR_PADDING; + visible: 1; +#endif + } + } + part { + name: "maintitle_text_bg"; +#ifdef USE_PADDING_RECT + type: RECT; +#else + type: SPACER; +#endif + scale: 1; + repeat_events: 1; + description { + state: "default" 0.0; + align: 0.0 0.0; + min: 0 20; fixed: 0 1; - rel1 { to_y: "controlbar_area"; relative: 0.0 0.0; } - rel2 { to_y: "controlbar_area"; relative: 1.0 0.0; } - align: 0.5 1.0; + rel1 { relative: 1.0 1.0; to_x: "ivug.main.padding.l.10"; to_y: "ivug.main.padding.t.14"; } + rel2 { relative: 0.0 1.0; to_x: "ivug.main.padding.r.22.btn4"; to_y: "ivug.main.padding.t.14"; } +#ifdef USE_PADDING_RECT + color: COLOR_PADDING; + visible: 0; +#endif + } + description { + state: "title_full" 0.0; + align: 0.0 0.0; + min: 0 20; + fixed: 0 1; + rel1 { relative: 1.0 1.0; to_x: "ivug.main.padding.l.10"; to_y: "ivug.main.padding.t.14"; } + rel2 { relative: 0.0 1.0; to_x: "ivug.main.padding.r.26"; to_y: "ivug.main.padding.t.14"; } +#ifdef USE_PADDING_RECT + color: COLOR_PADDING; + visible: 0; +#endif + } + } + part { + name: "ivug.main.padding.t.10"; +#ifdef USE_PADDING_RECT + type: RECT; +#else + type: SPACER; +#endif + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + rel1{ relative : 0.0 0.0; } + rel2{ relative : 1.0 0.0; } + align: 0.5 0.0; + min: 0 10; + fixed: 0 1; +#ifdef USE_PADDING_RECT + color: COLOR_PADDING; visible: 1; +#endif } - + } + part { + name: "back_button_icon"; + type: IMAGE; + mouse_events: 1; + repeat_events: 1; + scale: 1 ; description { + state: "default" 0.0; + visible : 1; + align: 0.0 0.0; + min : 36 36 ; + max : 36 36 ; + image.normal : ICON_BACK_BUTTON; + rel1 { relative: 1.0 1.0; to_x: "ivug.main.padding.l.10"; to_y: "ivug.main.padding.t.10"; } + rel2 { relative: 1.0 1.0; to_x: "ivug.main.padding.l.10"; to_y: "ivug.main.padding.t.10"; } + } + description { state: "hide" 0.0; inherit: "default" 0.0; visible: 0; } } - part { - name: "thumblist"; + name: "elm.swallow.favorite"; + type: SWALLOW; + scale: 1; + clip_to: "menu_clipper"; + description { + state: "default" 0.0; + align: 1.0 0.0; + min : 36 36 ; + max : 36 36 ; + rel1 { relative: 0.0 1.0; to_x: "ivug.main.padding.r.15"; to_y: "ivug.main.padding.t.10"; } + rel2 { relative: 0.0 1.0; to_x: "ivug.main.padding.r.15"; to_y: "ivug.main.padding.t.10"; } + fixed: 1 1; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { + name: "ivug.swallow.btn1"; // Button type: SWALLOW; scale: 1; mouse_events: 1; repeat_events: 0; + clip_to: "menu_clipper"; description { state: "default" 0.0; - rel1 { to: "thumblist_bg"; } - rel2 { to: "thumblist_bg"; } - color: 0 0 0 0; - align: 0.5 1.0; + rel1{ relative : 0.0 1.0; to_x: "ivug.main.padding.r.26"; to_y: "ivug.main.padding.t.14"; } + rel2{ relative : 0.0 1.0; to_x: "ivug.main.padding.r.26"; to_y: "ivug.main.padding.t.14"; } + align: 1.0 0.0; + min: 21 21; + fixed: 1 1; visible: 1; } - description { state: "hide" 0.0; inherit: "default" 0.0; visible: 0; } } - part { - name: "controlbar_area"; + name: "ivug.main.padding.r.22.btn1"; +#ifdef USE_PADDING_RECT type: RECT; - scale : 1; - mouse_events:0; +#else + type: SPACER; +#endif + scale: 1; + mouse_events: 0; description { state: "default" 0.0; - min : 0 98; - fixed : 0 1; - rel1{ relative : 0.0 1.0; } - rel2{ relative : 1.0 1.0; } - align: 0.5 1.0; - color: 0 0 0 0; - visible : 1; + rel1{ relative : 0.0 0.0; to: "ivug.swallow.btn1"; } + rel2{ relative : 0.0 1.0; to: "ivug.swallow.btn1"; } + align: 1.0 0.5; + min: 9 0; + fixed: 1 0; +#ifdef USE_PADDING_RECT + color: COLOR_PADDING; + visible : 0; +#endif } } - part { - name: "zoom_slider_area"; + name: "ivug.swallow.btn2"; type: SWALLOW; - scale : 1; - mouse_events:1; + scale: 1; + mouse_events: 1; + repeat_events: 0; + clip_to: "menu_clipper"; description { state: "default" 0.0; - visible : 1; - min : 375 100; - fixed : 1 1; - color: 255 0 0 255; - rel1{ relative : 0.5 0.0; to_y:"controlbar_area";} - rel2{ relative : 0.5 0.0; to_y:"controlbar_area";} - align: 0.5 1.0; + rel1{ relative : 0.0 1.0; to_x: "ivug.main.padding.r.22.btn1"; to_y: "ivug.main.padding.t.14"; } + rel2{ relative : 0.0 1.0; to_x: "ivug.main.padding.r.22.btn1"; to_y: "ivug.main.padding.t.14"; } + align: 1.0 0.0; + min: 21 21; + fixed: 1 1; + visible: 1; } description { state: "hide" 0.0; @@ -261,199 +484,248 @@ group { visible: 0; } } - -#define ICON_ZOOM_GAP 50 - -#define ICON_ZOOM_IN "00_zoom_in.png" -#define ICON_ZOOM_IN_PRESS "00_zoom_in_press.png" -#define ICON_ZOOM_OUT "00_zoom_out.png" -#define ICON_ZOOM_OUT_PRESS "00_zoom_out_press.png" - - part { name: "mainview.btn_zoom_out"; - set { - name: "zoom_out_images"; - - image { - image: ICON_ZOOM_OUT COMP; - size: 56 56 56 56; - } - - image { - image: ICON_ZOOM_OUT_PRESS COMP; - size: 56 56 56 56; - } - - } - - type: IMAGE; - scale: 1; - mouse_events: 1; - description { - visible: 1; - fixed: 1 1; - min: 56 56; - state: "default" 0.0; - align: 1.0 0.0; - /*rel1 { relative: ((238+28)/720) 1.0; - offset: 0.0 -56-CTRL_VIEW_HEIGHT-10;} - rel2 { relative: ((238+28)/720) 1.0; - offset: 0.0 -56-CTRL_VIEW_HEIGHT-10;}*/ - rel1 { relative: 0.0 1.0; - to_x: "zoom_slider_area"; - offset: 0.0 -56-CTRL_VIEW_HEIGHT-20;} - rel2 { relative: 0.0 1.0; - to_x: "zoom_slider_area"; - offset: 0.0 -56-CTRL_VIEW_HEIGHT-20;} - image.normal: ICON_ZOOM_OUT; - } - - description { - state: "show" 0.0; - inherit: "default" 0.0; - visible: 1; - image.normal: ICON_ZOOM_OUT; - } - - description { - state: "pressed" 0.0; - inherit: "default" 0.0; - visible: 1; - image.normal: ICON_ZOOM_OUT_PRESS; - } - - description { - state: "hide" 0.0; - inherit: "default" 0.0; - visible: 0; - } - - description { - state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - image.normal: ICON_ZOOM_OUT; - color: 170 170 170 255; - } + part { + name: "ivug.main.padding.r.22.btn2"; +#ifdef USE_PADDING_RECT + type: RECT; +#else + type: SPACER; +#endif + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + rel1{ relative : 0.0 0.0; to: "ivug.swallow.btn2"; } + rel2{ relative : 0.0 1.0; to: "ivug.swallow.btn2"; } + align: 1.0 0.5; + min: 7 0; + fixed: 1 0; +#ifdef USE_PADDING_RECT + color: COLOR_PADDING; + visible : 0; +#endif + } } - - part { name: "mainview.btn_zoom_in"; - set { - name: "zoom_in_images"; - - image { - image: ICON_ZOOM_IN COMP; - size: 56 56 56 56; - } - - image { - image: ICON_ZOOM_IN_PRESS COMP; - size: 56 56 56 56; - } - - } - - type: IMAGE; - scale: 1; - mouse_events: 1; - description { - visible: 1; - fixed: 1 1; - min: 56 56; - state: "default" 0.0; - align: 0.0 0.0; - /*rel1 { relative: ((720-238-28)/720) 1.0; - offset: 0.0 -56-CTRL_VIEW_HEIGHT-10;} - rel2 { relative: ((720-238-28)/720) 1.0; - offset: 0.0 -56-CTRL_VIEW_HEIGHT-10;}*/ - rel1 { relative: 1.0 1.0; - to_x: "zoom_slider_area"; - offset: 0.0 -56-CTRL_VIEW_HEIGHT-20;} - rel2 { relative: 1.0 1.0; - to_x: "zoom_slider_area"; - offset: 0.0 -56-CTRL_VIEW_HEIGHT-20;} - image.normal: ICON_ZOOM_IN; - } - - description { - state: "show" 0.0; - inherit: "default" 0.0; - visible: 1; - image.normal: ICON_ZOOM_IN; - } - - description { - state: "pressed" 0.0; - inherit: "default" 0.0; - visible: 1; - image.normal: ICON_ZOOM_IN_PRESS; - } - - description { - state: "hide" 0.0; - inherit: "default" 0.0; - visible: 0; - } - - description { - state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - image.normal: ICON_ZOOM_IN; - color: 170 170 170 255; - } + part { + name: "ivug.swallow.btn3"; + type: SWALLOW; + scale: 1; + mouse_events: 1; + repeat_events: 0; + clip_to: "menu_clipper"; + description { + state: "default" 0.0; + rel1{ relative : 0.0 1.0; to_x: "ivug.main.padding.r.22.btn2"; to_y: "ivug.main.padding.t.14"; } + rel2{ relative : 0.0 1.0; to_x: "ivug.main.padding.r.22.btn2"; to_y: "ivug.main.padding.t.14"; } + align: 1.0 0.0; + min: 21 21; + fixed: 1 1; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } } - part { - name: "zoom_out_blocker"; + name: "ivug.main.padding.r.22.btn3"; +#ifdef USE_PADDING_RECT type: RECT; +#else + type: SPACER; +#endif + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + rel1{ relative : 0.0 0.0; to: "ivug.swallow.btn3"; } + rel2{ relative : 0.0 1.0; to: "ivug.swallow.btn3"; } + align: 1.0 0.5; + min: 7 0; + fixed: 1 0; +#ifdef USE_PADDING_RECT + color: COLOR_PADDING; + visible : 0; +#endif + } + } + part { + name: "ivug.swallow.btn4"; + type: SWALLOW; scale: 1; - repeat_events: 0; mouse_events: 1; + repeat_events: 0; + clip_to: "menu_clipper"; description { state: "default" 0.0; + rel1{ relative : 0.0 1.0; to_x: "ivug.main.padding.r.22.btn3"; to_y: "ivug.main.padding.t.14"; } + rel2{ relative : 0.0 1.0; to_x: "ivug.main.padding.r.22.btn3"; to_y: "ivug.main.padding.t.14"; } + align: 1.0 0.0; + min: 21 21; + fixed: 1 1; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; visible: 0; - rel1 { relative: 0 0; to: "mainview.btn_zoom_out";} - rel2 { relative: 1 1; to: "mainview.btn_zoom_out";} - color: 0 0 0 0; } + } + part { + name: "ivug.main.padding.r.22.btn4"; +#ifdef USE_PADDING_RECT + type: RECT; +#else + type: SPACER; +#endif + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + rel1{ relative : 0.0 0.0; to: "ivug.swallow.btn4"; } + rel2{ relative : 0.0 1.0; to: "ivug.swallow.btn4"; } + align: 1.0 0.5; + min: 7 0; + fixed: 1 0; +#ifdef USE_PADDING_RECT + color: COLOR_PADDING; + visible : 0; +#endif + } + } + part { + name: "ivug.main.disabler"; + type: RECT; + scale: 1; description { + state: "default" 0.0; + color: 0 0 0 0; + rel1 { relative : 0.0 0.0; to: "ivug.swallow.btn4"; } + rel2 { relative : 1.0 1.0; to: "ivug.swallow.btn1"; } + visible: 0; + } + description { state: "disabled" 0.0; inherit: "default" 0.0; visible: 1; } + } + part { + name: "tag_buddy"; + type: SWALLOW; + scale: 1; + mouse_events: 1; + repeat_events: 1; description { - state: "show" 0.0; - inherit: "default" 0.0; + state: "default" 0.0; + rel1{ relative : 0.0 1.0; } + rel2{ relative : 1.0 1.0; } + fixed: 1 1; + color: 255 0 0 100; + align: 0.5 1.0; visible: 1; } + description { state: "hide" 0.0; inherit: "default" 0.0; visible: 0; } } - part { - name: "zoom_in_blocker"; + name: "thumblist_bg"; type: RECT; scale: 1; + mouse_events: 0; repeat_events: 0; - mouse_events: 1; + clip_to: "menu_clipper"; description { state: "default" 0.0; + min: 0 45; + fixed: 0 1; + rel1 { to_y: "ivug.main.padding.b.40"; relative: 0.0 0.0; } + rel2 { to_y: "ivug.main.padding.b.40"; relative: 1.0 0.0; } + align: 0.5 1.0; visible: 0; - rel1 { relative: 0 0; to: "mainview.btn_zoom_in";} - rel2 { relative: 1 1; to: "mainview.btn_zoom_in";} + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { + name: "ivug.main.padding.b.40"; +#ifdef USE_PADDING_RECT + type: RECT; +#else + type: SPACER; +#endif + scale : 1; + mouse_events:0; + description { + state: "default" 0.0; + min : 0 13; + fixed : 0 1; + rel1{ relative : 0.0 1.0; } + rel2{ relative : 1.0 1.0; } + align: 0.5 1.0; +#ifdef USE_PADDING_RECT + color: COLOR_PADDING; + visible : 0; +#endif + } + } + part { + name: "thumblist"; + type: SWALLOW; + scale: 1; + mouse_events: 1; + repeat_events: 0; + clip_to: "menu_clipper"; + description { + state: "default" 0.0; + rel1 { to: "thumblist_bg"; } + rel2 { to: "thumblist_bg"; } color: 0 0 0 0; + align: 0.5 1.0; + visible: 1; } description { - state: "disabled" 0.0; + state: "hide" 0.0; inherit: "default" 0.0; + visible: 0; + } + } + part { + name: "elm.swallow.detail"; + type: SWALLOW; + scale: 1; + mouse_events: 1; + repeat_events: 0; + description { + state: "default" 0.0; + rel1{ relative : 0.0 0.0; } + rel2{ relative : 1.0 1.0; } visible: 1; } description { - state: "show" 0.0; + state: "hide" 0.0; inherit: "default" 0.0; + visible: 0; + } + } + part { + name: "elm.swallow.overlay"; // Swallow area for burst shot player + type: SWALLOW; + scale: 1; + mouse_events: 1; + repeat_events: 0; + description { + state: "default" 0.0; + rel1{ relative : 0.0 0.0; } + rel2{ relative : 1.0 1.0; } visible: 1; } description { @@ -464,140 +736,249 @@ group { } } programs { - program { name: "hide_menu"; + program { + name: "hide_menu"; signal: "elm,state,hide"; source: "user"; action: STATE_SET "hide" 0.0; + target: "menu_clipper"; target: "thumblist"; target: "thumblist_bg"; - } - - program { name: "show_menu"; + target: "title_bg"; + target: "ivug.swallow.btn1"; + target: "ivug.swallow.btn2"; + target: "ivug.swallow.btn3"; + target: "ivug.swallow.btn4"; + } + program { + name: "show_menu"; signal: "elm,state,show"; source: "user"; action: STATE_SET "default" 0.0; + target: "menu_clipper"; target: "thumblist"; target: "thumblist_bg"; + target: "title_bg"; + target: "ivug.swallow.btn1"; + target: "ivug.swallow.btn2"; + target: "ivug.swallow.btn3"; + target: "ivug.swallow.btn4"; } program { - name: "hide_zoom_slider"; - signal: "elm,state,zoom_slider,hide"; - source: "elm"; + name: "hide_tool_btn"; + signal: "elm,state,hide,toolbtn"; + source: "user"; action: STATE_SET "hide" 0.0; - target: "zoom_slider_area"; + target: "ivug.swallow.btn1"; + target: "ivug.swallow.btn2"; + target: "ivug.swallow.btn3"; + target: "ivug.swallow.btn4"; } program { - name: "show_zoom_slider"; - signal: "elm,state,zoom_slider,show"; - source: "elm"; + name: "show_tool_btn"; + signal: "elm,state,show,toolbtn"; + source: "user"; action: STATE_SET "default" 0.0; - target: "zoom_slider_area"; + target: "ivug.swallow.btn1"; + target: "ivug.swallow.btn2"; + target: "ivug.swallow.btn3"; + target: "ivug.swallow.btn4"; } program { - name: "hide_btn_zoom_out"; - signal: "elm,state,btn_zoom_out,hide"; - source: "elm"; + name: "hide_back_btn"; + signal: "hide,back,btn"; + source: "user"; action: STATE_SET "hide" 0.0; - target: "mainview.btn_zoom_out"; - target: "zoom_out_blocker"; + target: "back_button_icon"; } program { - name: "show_btn_zoom_out"; - signal: "elm,state,btn_zoom_out,show"; - source: "elm"; - action: STATE_SET "show" 0.0; - target: "mainview.btn_zoom_out"; - target: "zoom_out_blocker"; + name: "show_back_btn"; + signal: "show,back,btn"; + source: "user"; + action: STATE_SET "default" 0.0; + target: "back_button_icon"; } program { - name: "btn_zoom_out_mouse_down"; - signal: "mouse,down,1"; - source: "mainview.btn_zoom_out"; - action: STATE_SET "pressed" 0.0; - target: "mainview.btn_zoom_out"; + name:"back_button_clicked"; + source:"back_button_icon"; + signal : "mouse,down,1" ; + action: SIGNAL_EMIT "button_clicked" "elm"; } program { - name: "btn_zoom_out_mouse_up"; - signal: "mouse,up,1"; - source: "mainview.btn_zoom_out"; - after: "show_btn_zoom_out"; + name:"back_button_click_sound"; + source:"back_button_icon"; + signal: "mouse,down,1" ; + action: RUN_PLUGIN "touch_sound"; } program { - name: "btn_zoom_out_clicked"; - signal: "mouse,clicked,1"; - source: "mainview.btn_zoom_out"; - action: SIGNAL_EMIT "mainview,zoom_out,clicked" ""; + name: "hide_tool_btn1"; + signal: "elm,state,hide,toolbtn1"; + source: "user"; + action: STATE_SET "hide" 0.0; + target: "ivug.swallow.btn1"; } - program { - name: "hide_btn_zoom_in"; - signal: "elm,state,btn_zoom_in,hide"; - source: "elm"; + name: "show_tool_btn1"; + signal: "elm,state,show,toolbtn1"; + source: "user"; + action: STATE_SET "default" 0.0; + target: "ivug.swallow.btn1"; + } + program { + name: "hide_tool_btn2"; + signal: "elm,state,hide,toolbtn2"; + source: "user"; action: STATE_SET "hide" 0.0; - target: "mainview.btn_zoom_in"; - target: "zoom_in_blocker"; + target: "ivug.swallow.btn2"; } program { - name: "show_btn_zoom_in"; - signal: "elm,state,btn_zoom_in,show"; - source: "elm"; - action: STATE_SET "show" 0.0; - target: "mainview.btn_zoom_in"; - target: "zoom_in_blocker"; + name: "show_tool_btn2"; + signal: "elm,state,show,toolbtn2"; + source: "user"; + action: STATE_SET "default" 0.0; + target: "ivug.swallow.btn2"; } program { - name: "btn_zoom_in_mouse_down"; - signal: "mouse,down,1"; - source: "mainview.btn_zoom_in"; - action: STATE_SET "pressed" 0.0; - target: "mainview.btn_zoom_in"; + name: "hide_tool_btn3"; + signal: "elm,state,hide,toolbtn3"; + source: "user"; + action: STATE_SET "hide" 0.0; + target: "ivug.swallow.btn3"; } program { - name: "btn_zoom_in_mouse_up"; - signal: "mouse,up,1"; - source: "mainview.btn_zoom_in"; - after: "show_btn_zoom_in"; + name: "show_tool_btn3"; + signal: "elm,state,show,toolbtn3"; + source: "user"; + action: STATE_SET "default" 0.0; + target: "ivug.swallow.btn3"; } program { - name: "btn_zoom_in_clicked"; - signal: "mouse,clicked,1"; - source: "mainview.btn_zoom_in"; - action: SIGNAL_EMIT "mainview,zoom_in,clicked" ""; + name: "hide_tool_btn4"; + signal: "elm,state,hide,toolbtn4"; + source: "user"; + action: STATE_SET "hide" 0.0; + target: "ivug.swallow.btn4"; } program { - name: "enable_btn_zoom_out"; - signal: "elm,state,btn_zoom_out,enable"; - source: "elm"; + name: "show_tool_btn4"; + signal: "elm,state,show,toolbtn4"; + source: "user"; action: STATE_SET "default" 0.0; - target: "zoom_out_blocker"; - target: "mainview.btn_zoom_out"; + target: "ivug.swallow.btn4"; } program { - name: "disable_btn_zoom_out"; - signal: "elm,state,btn_zoom_out,disable"; - source: "elm"; + name: "disable_tool_btn"; + signal: "elm,state,disable,toolbtn"; + source: "user"; action: STATE_SET "disabled" 0.0; - target: "zoom_out_blocker"; - target: "mainview.btn_zoom_out"; + target: "ivug.main.disabler"; } program { - name: "enable_btn_zoom_in"; - signal: "elm,state,btn_zoom_in,enable"; - source: "elm"; + name: "enable_tool_btn"; + signal: "elm,state,enable,toolbtn"; + source: "user"; action: STATE_SET "default" 0.0; - target: "zoom_in_blocker"; - target: "mainview.btn_zoom_in"; + target: "ivug.main.disabler"; } program { - name: "disable_btn_zoom_in"; - signal: "elm,state,btn_zoom_in,disable"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "zoom_in_blocker"; - target: "mainview.btn_zoom_in"; + name: "play_sound"; + signal: "mouse,clicked,1"; + source: "ivug.swallow.btn*"; + after: "play_button_press"; + } + program { + name: "play_button_press"; + action: PLAY_SAMPLE "button-pressed" 1.0; + } + program { + name: "use_full_title"; + signal: "elm,state,enable,title_full"; + source: "user"; + action: STATE_SET "title_full" 0.0; + target: "maintitle_text_bg"; } } - } + group { + name: "select_bar"; + parts { + part { + name: "background"; + type: RECT; + mouse_events: 0; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 1.0; } + color: 61 184 203 255; + min:0 72; + } + } + part { + name: "padding.l"; + type: SPACER; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + rel1{ relative : 0.0 0.0; to:"background";} + rel2{ relative : 0.0 1.0; to:"background";} + align: 0.0 0.0; + min: 82 0; + fixed: 1 0; + } + } + part { + name: "elm.text.title"; + type: TEXT; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + visible : 1; + text { + font: "Tizen:style=regular"; + size: 24; + min: 1 1 ; + } + color : 255 255 255 255; + rel1 { relative: 1.0 0.0; to_x: "padding.l"; to_y:"background";} + rel2 { relative: 0.0 1.0; to_x: "padding.r"; to_y:"background";} + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { + name: "padding.r"; + type: SPACER; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + align: 1.0 0.0; + min: 72 0; + fixed: 1 0; + rel1 { relative: 1.0 0.0; to:"background";} + rel2 { relative: 1.0 1.0; to:"background";} + } + } + part { + name: "swallow.check"; + type: SWALLOW; + mouse_events: 1; + description { + align: 0.5 0.5; + min: 35 35; + max: 35 35; + state: "default" 0.0; + rel1 { relative: 0.0 0.0; to:"padding.r";} + rel2 { relative: 1.0 1.0; to:"padding.r";} + } + } + } + } } diff --git a/main/layout/ivug-name-view.edc b/main/layout/ivug-name-view.edc index b8655bc..b8cf086 100755 --- a/main/layout/ivug-name-view.edc +++ b/main/layout/ivug-name-view.edc @@ -1,93 +1,93 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 NAME_ENTRY_MIN_W_INC 1280 -#define NAME_ENTRY_BG_MIN_H_INC 112 -#define NAME_ENTRY_MIN_H_INC 48 - -#define NAME_ENTRY_BOTTOM_LINE_COLOR_INC 82 82 82 255 - -#define NAME_ENTRY_PART_OFFSET 16 +* Copyright (c) 2000-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. +* +*/ collections { group { name: "name_view"; parts{ + part { - name: "name_view.swallow.bg"; - type: SWALLOW; + name: "name_view.bg"; + type: RECT; mouse_events: 1; scale:1; - description { state: "default" 0.0; rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; + color: 0 0 0 255; + visible: 1; } } - part { - name: "bg_entry"; - type: RECT; - mouse_events: 0; - scale:1; - description { + part { + name: "pad.t.20"; + type: SPACER; + scale: 1; + description{ state: "default" 0.0; - min: 0 NAME_ENTRY_BG_MIN_H_INC; - max: NAME_ENTRY_MIN_W_INC NAME_ENTRY_BG_MIN_H_INC; - fixed:1 1; - rel1 { relative: 0.0 0.0; to: "name_view.swallow.bg";} - rel2 { relative: 1.0 0.0; to: "name_view.swallow.bg"; offset: 0 64;} - color: 0 0 0 0; //Fixme, set bg transparent. - //color: 255 255 255 255; - align: 0 0; + min: 0 20; + fixed: 0 1; + rel1.relative: 0.0 0.0; + rel2.relative: 1.0 0.0; + align: 0.5 0.0; } } - part { - name: "entry_part"; - type: SWALLOW; - mouse_events: 1; - scale:1; - description { - min : 0 NAME_ENTRY_MIN_H_INC; //minimum size for gap filler - max: NAME_ENTRY_MIN_W_INC NAME_ENTRY_MIN_H_INC; - fixed: 1 1; + part { + name: "pad.l.16"; + type: SPACER; + scale: 1; + description{ + state: "default" 0.0; + min: 16 0; + fixed: 1 0; + rel1.relative: 0.0 0.0; + rel2.relative: 0.0 1.0; align: 0.0 0.5; + } + } + + part { + name: "pad.r.16"; + type: SPACER; + scale: 1; + description{ state: "default" 0.0; - rel1 { relative: 0.0 0.0; to: "bg_entry"; offset: NAME_ENTRY_PART_OFFSET 0;} - rel2 { relative: 1.0 1.0; to: "bg_entry"; offset: -NAME_ENTRY_PART_OFFSET 0;} - align: 0 0; + min: 16 0; + fixed: 1 0; + rel1.relative: 1.0 0.0; + rel2.relative: 1.0 1.0; + align: 1.0 0.5; } } + part { - name: "bottom_line"; - type: RECT; - mouse_events: 0; + name: "elm.swallow.content"; + type: SWALLOW; + mouse_events: 1; scale:1; description { - min : 0 1; //minimum size for gap filler - fixed: 1 1; state: "default" 0.0; - rel1 { relative: 0.0 1.0; to: "entry_part";} - rel2 { relative: 1.0 1.0; to: "entry_part"; offset: 0 1;} - color: NAME_ENTRY_BOTTOM_LINE_COLOR_INC; - align: 0 0; + rel1 { relative: 1.0 1.0; to_x: "pad.l.16"; to_y: "pad.t.20"; } + rel2 { relative: 0.0 1.0; to_x: "pad.r.16"; } + align: 0.5 0.0; } } } diff --git a/main/layout/ivug-naviframe.edc b/main/layout/ivug-naviframe.edc deleted file mode 100755 index 4bbd08d..0000000 --- a/main/layout/ivug-naviframe.edc +++ /dev/null @@ -1,1591 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ - -/* -* Refer to themes/groups/naviframe.edc -* -* 1. "elm/naviframe/item/basic/ivug-main/default" -* 2. "elm/naviframe/item/basic/ivug-main/noindicator" -*/ - -#include "ivug-theme.edc" - -#define NAVIFRAME_VIEW_TRANS_TIME 0.3 - -/////////////////////////////////////////////////////////////////////////// -// Naviframe -/////////////////////////////////////////////////////////////////////////// -collections { - group { name:"elm/naviframe/base/ivug/default"; - parts { - part { name: "base"; - description { state: "default" 0.0; - } - } - } - } - group { name:"elm/naviframe/item/basic/ivug-main/default"; - script { - public tbar_bg = 0; //Toolbar BG Show call count - public buttons_visible = 0; //when both buttons are visible - public toolbar_buttons_visible = 0; //when both toolbar buttons are visible - public tbar_close = 0; //Toolbar lastest Open/Close status - } - parts { - part { name: "base"; - type: RECT; - mouse_events: 0; - description { state: "default" 0.0; - visible: 0; - } - description { state: "left" 0.0; - inherit: "default" 0.0; - rel1.relative: -1.0 0.0; - rel2.relative: 0.0 1.0; - } - description { state: "right" 0.0; - inherit: "default" 0.0; - rel1.relative: 1.0 0.0; - rel2.relative: 2.0 1.0; - } - } - part { name: "elm.swallow.content"; - type: SWALLOW; - scale: 1; - mouse_events: 1; - repeat_events: 0; - clip_to: "content_clip"; - description { state: "default" 0.0; - align: 0.0 0.0; - rel1.relative: 0.0 0.0; - rel1.to: "base"; - rel2.relative: 1.0 1.0; - rel2.to: "base"; - } - } - part { name: "elm.swallow.detail"; // Detail view. - type: SWALLOW; - scale: 1; - repeat_events: 0; - description { state: "default" 0.0; - color: 255 0 0 100; - align: 0.0 0.0; - rel1.relative: 0.0 1.0; - rel1.to_x: "base"; - rel1.to_y: "title_bg"; - rel1.offset: 0 -10; - rel2.relative: 1.0 0.0; - rel2.to_x: "base"; - rel2.to_y: "toolbar_bg"; - visible: 1; - } - } - - part { - name: "indicator"; - type: RECT; - scale: 1; - repeat_events : 0; - clip_to: "content_clip"; - description { - state: "default" 0.0; - min: 0 LAYOUT_INDICATOR_HEIGHT_INC; - // max: 0 LAYOUT_INDICATOR_HEIGHT_INC; - rel1.relative: 0.0 0.0; - rel2.relative: 1.0 0.0; - fixed: 0 1; - align: 0.5 0.0; - color: LAYOUT_INDICATOR_COLOR_INC; - visible: 0; - } - - description { - state: "hide" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part { name: "title_bg"; - type: RECT; - scale: 1; - description { state: "default" 0.0; - min: 1 NAVIFRAME_TITLE_H_INC; - align: 0.0 0.0; - fixed: 0 1; - rel1 { relative: 0.0 1.0; - to_x: "base"; - to_y: "indicator"; } - rel2 { relative: 1.0 1.0; - to_x: "base"; - to_y: "indicator"; } - color: NAVIFRAME_TITLE_BG_COLOR_INC; - } - description { state: "hide" 0.0; - inherit: "default" 0.0; - min: 0 0; - max: 0 0; - fixed: 1 1; - } - } - part { name: "title_clip"; - type: RECT; - mouse_events: 0; - description { state: "default" 0.0; - rel1 { to: "title_bg"; } - rel2 { to: "title_bg"; } - } - } - part { name: "top_padding"; - type: RECT; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - min: NAVIFRAME_TITLE_TOP_PADDING_INC; - fixed: 0 1; - align: 0.0 0.0; - rel1 { relative: 0.0 0.0; to: "title_bg"; } - rel2 { relative: 1.0 0.0; to: "title_bg"; } - visible: 0; - } - } - part { name: "padding_center_text1"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - min: NAVIFRAME_PADDING_INC; - fixed: 1 0; - align: 0.0 0.0; - rel1 { relative: 0.0 0.0; to: "title_bg"; } - rel2 { relative: 0.0 1.0; to: "title_bg"; } - visible: 0; - } - description { state: "icon" 0.0; - inherit: "default" 0.0; - min: NAVIFRAME_ICON_PADDING_INC; - } - } - part { name: "content_clip"; - type: RECT; - mouse_events: 0; - description { state: "default" 0.0; - rel1.to: "elm.swallow.content"; - rel2.to: "elm.swallow.content"; - } - } - part { name: "padding_center_text2"; - type: RECT; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - min: NAVIFRAME_PADDING2_INC; - fixed: 1 0; - align: 1.0 0.5; - rel1 { relative: 0.0 0.0; to: "title_left_btn"; } - rel2 { relative: 0.0 1.0; to: "title_left_btn"; } - visible: 0; - } - } - part { name: "padding_bottom_text"; - type: RECT; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - min: NAVIFRAME_BOTTOM_TEXT_PADDING_INC; - fixed: 0 1; - align: 0.0 1.0; - rel1 { relative: 0.0 1.0; to: "title_bg"; } - rel2 { relative: 1.0 1.0; to: "title_bg"; } - visible: 0; - } - } - part { name: "elm.text.title"; - type: TEXT; - scale: 1; - clip_to: "title_clip"; - effect: SHADOW BOTTOM; - description { state: "default" 0.0; - text { font: "Tizen:style=Medium"; - size: NAVIFRAME_TITLE_FONT_SIZE_INC; - min: 0 0; - max: 1 0; - align: 0.0 0.5; - text_class: "tizen"; - } - color: NAVIFRAME_TITLE_TEXT_COLOR_INC; - color2: 0 0 0 128; - color3: 0 0 0 128; - align: 0.0 0.5; - fixed: 1 1; - rel1 { relative: 1.0 1.0; to_x: "padding_center_text1"; to_y: "top_padding"; } - rel2 { relative: 0.0 0.0; to_x: "padding_center_text2"; to_y: "padding_bottom_text"; } - } - description { state: "subtitle_is_set" 0.0; - inherit: "default" 0.0; - text { font: "Tizen:style=Medium"; - size: NAVIFRAME_TITLE_SMALL_FONT_SIZE_INC; - min: 0 0; - max: 1 0; - align: 0.0 0.2; - text_class: "tizen"; - } - align: 0.0 0.0; - rel1 { relative: 1.0 0.0; to_x: "padding_center_text1"; to_y: "top_padding"; } - } - } - part { name: "elm.text.subtitle"; - type: TEXT; - scale: 1; - clip_to: "title_clip"; - description { state: "default" 0.0; - text { font: "Tizen:style=Medium"; - size: NAVIFRAME_SUBTITLE_FONT_SIZE_INC; - min: 0 0; - max: 1 0; - text_class: "tizen"; - align: 0.0 1.0; - } - color: NAVIFRAME_SUBTITLE_TEXT_COLOR_INC; - align: 0.0 1.0; - fixed: 1 0; - rel1 { - relative: 1.0 1.0; - to_x: "padding_center_text1"; - to_y: "elm.text.title"; - } - rel2 { - relative: 0.0 1.0; - to_x: "padding_center_text2"; - to_y: "elm.text.title"; - } - } - } - part { name: "padding_before_text"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 1.0 0.5; - rel1 { relative: 0.0 0.0; to: "elm.text.title"; } - rel2 { relative: 0.0 1.0; to: "elm.text.title"; } - fixed: 1 0; - min: NAVIFRAME_PADDING_INC; - visible: 0; - } - } - part { name: "elm.swallow.icon"; - type: SWALLOW; - scale: 1; - clip_to: "title_clip"; - description { state: "default" 0.0; - max: NAVIFRAME_ICON_SIZE_INC; - fixed: 1 1; - rel1 { relative: 0.0 0.0; to: "padding_before_text"; } - rel2 { relative: 0.0 1.0; to: "padding_before_text"; } - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - align: 1.0 0.5; - } - } - part { name: "click_event_area"; - ignore_flags: ON_HOLD; - repeat_events: 1; - description { state: "default" 0.0; - rel1 { to: "title_bg"; } - rel2 { to: "title_bg"; } - } - } - part { name: "title_left_btn"; - type: SWALLOW; - scale: 1; - clip_to: "title_clip"; - description { state: "default" 0.0; - max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC; - fixed: 1 1; - align: 1 0.5; - rel1 { relative: 0.0 0.0; to: "title_btns_padding"; } - rel2 { relative: 0.0 1.0; to: "title_btns_padding"; } - } - } - part { name: "title_btns_padding"; - type: RECT; - scale: 1; - description { state: "default" 0.0; - min: 0 0; - fixed: 1 1; - align: 1 0.5; - visible: 0; - rel1 { relative: 0.0 0.0; to: "title_right_btn"; } - rel2 { relative: 0.0 1.0; to: "title_right_btn"; } - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - min: NAVIFRAME_PADDING2_INC; - } - } - part { name: "bottom_right_padding"; - type: RECT; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - min: 0 0; - fixed: 1 1; - align: 1.0 1.0; - rel1 { relative: 1.0 1.0; to: "title_bg"; } - rel2 { relative: 1.0 1.0; to: "title_bg"; } - visible: 0; - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - min: NAVIFRAME_BOTTOM_RIGHT_PADDING_INC; - } - } - part { name: "title_right_btn"; - type: SWALLOW; - scale: 1; - clip_to: "title_clip"; - description { state: "default" 0.0; - max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC; - align: 1 0.5; - fixed: 1 1; - rel1 { relative: 1.0 1.0; to_x: "title_bg"; to_y: "top_padding"; } - rel2 { relative: 0.0 0.0; to: "bottom_right_padding"; } - } - } - part { name: "toolbar_bg"; - type: RECT; - scale: 1; - description { state: "default" 0.0; - min: 0 0; - max: 999999 0; - fixed: 0 1; - align: 0.0 1.0; - visible: 0; - rel1 { to: "base"; } - rel2 { to: "base"; } - color: NAVIFRAME_TOOLBAR_BG_COLOR_INC; - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - min: 0 NAVIFRAME_TOOLBAR_HEIGHT_INC; - max: 999999 NAVIFRAME_TOOLBAR_HEIGHT_INC; - visible: 1; - } - } - part { name: "more_btn_bg"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - min: NAVIFRAME_TOOLBAR_BUTTON_BG_PADDING_INC; - fixed: 1 0; - align: 0.0 0.0; - rel1 { relative: 0.0 0.0; to: "toolbar_bg"; } - rel2 { relative: 0.0 1.0; to: "toolbar_bg"; } - visible: 0; - } - } - part { name: "toolbar_more_btn"; - type: SWALLOW; - scale: 1; - clip_to: "toolbar_clip"; - description { state: "default" 0.0; - max: NAVIFRAME_PREV_FUNC_BTN_SIZE_INC; - fixed: 1 1; - rel1.to: "more_btn_bg"; - rel2.to: "more_btn_bg"; - } - } - part { name: "prev_btn_bg"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - min: NAVIFRAME_TOOLBAR_BUTTON_BG_PADDING_INC; - fixed: 1 0; - align: 1.0 0.0; - rel1 { relative: 1.0 0.0; to: "toolbar_bg"; } - rel2.to: "toolbar_bg"; - visible: 0; - } - } - part { name: "elm.swallow.prev_btn"; - type: SWALLOW; - scale: 1; - clip_to: "toolbar_clip"; - description { state: "default" 0.0; - max: NAVIFRAME_PREV_FUNC_BTN_SIZE_INC; - fixed: 1 1; - align: 0.5 0.5; - rel1.to: "prev_btn_bg"; - rel2.to: "prev_btn_bg"; - } - } - part { name: "toolbar_btns_area"; - type: RECT; - mouse_events: 0; - description { state: "default" 0.0; - rel1 { relative: 1.0 0.0; to: "more_btn_bg"; } - rel2 { relative: 0.0 1.0; to: "prev_btn_bg"; } - visible: 0; - } - } - part { name: "toolbar_clip"; - type: RECT; - mouse_events: 0; - description { state: "default" 0.0; - rel1 { to: "toolbar_bg"; } - rel2 { to: "toolbar_bg"; } - } - } - part { name: "toolbar_button1"; - type: SWALLOW; - scale: 1; - clip_to: "toolbar_clip"; - description { state: "default" 0.0; - fixed: 1 1; - align: 0.5 0.5; - rel1.to: "toolbar_btns_area"; - rel2.to: "toolbar_btns_area"; - } - description { state: "buttons_set" 0.0; - inherit: "default" 0.0; - align: 1.0 0.5; - rel2 { - relative: 0.0 1.0; - to: "toolbar_button_padding"; - } - } - } - part { name: "toolbar_button_padding"; - type: RECT; - scale : 1; - description { state: "default" 0.0; - min: NAVIFRAME_TOOLBAR_BUTTONS_PADDING_INC 0; - max: NAVIFRAME_TOOLBAR_BUTTONS_PADDING_INC 9999; - fixed : 1 0; - visible: 0; - align: 0.5 0.5; - rel1.to: "toolbar_clip"; - rel2.to: "toolbar_clip"; - } - } - part { name: "toolbar_button2"; - type: SWALLOW; - scale: 1; - clip_to: "toolbar_clip"; - description { state: "default" 0.0; - fixed: 1 1; - align: 0.5 0.5; - rel1.to: "toolbar_btns_area"; - rel2.to: "toolbar_btns_area"; - } - description { state: "buttons_set" 0.0; - inherit: "default" 0.0; - align: 0.0 0.5; - rel1 { - relative: 1.0 0.0; - to: "toolbar_button_padding"; - } - } - } - } - programs { - program { name: "content_new_pushed"; - signal: "elm,state,new,pushed,internal"; - source: ""; - action: STATE_SET "default" 0.0; - target: "base"; - transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME; - after: "show_finished"; - } - program { name: "content_cur_pushed"; - signal: "elm,state,cur,pushed,internal"; - source: ""; - action: STATE_SET "left" 0.0; - target: "base"; - transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME; - after: "pushed_finished"; - } - program { name: "content_prev_popped"; - signal: "elm,state,prev,popped,internal"; - source: ""; - action: STATE_SET "default" 0.0; - target: "base"; - transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME; - after: "show_finished"; - } - program { name: "content_cur_popped"; - signal: "elm,state,cur,popped,internal"; - source: ""; - action: STATE_SET "right" 0.0; - target: "base"; - transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME; - after: "popped_finished"; - } - program { name: "cur_pushed"; - signal: "elm,state,cur,pushed"; - source: "elm"; - script { - set_state(PART:"base", "default", 0.0); - emit("elm,state,cur,pushed,internal", ""); - } - } - program { name: "new_pushed"; - signal: "elm,state,new,pushed"; - source: "elm"; - script { - set_state(PART:"base", "right", 0.0); - emit("elm,state,new,pushed,internal", ""); - } - } - program { name: "prev_popped"; - signal: "elm,state,prev,popped"; - source: "elm"; - script { - set_state(PART:"base", "left", 0.0); - emit("elm,state,prev,popped,internal", ""); - } - } - program { name: "cur_popped"; - signal: "elm,state,cur,popped"; - source: "elm"; - script { - set_state(PART:"base", "default", 0.0); - emit("elm,state,cur,popped,internal", ""); - } - } - program { name: "visible"; - signal: "elm,state,visible"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "base"; - } - program { name: "title_show"; - signal: "elm,state,title,show"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "title_bg"; - } - program { name: "title_hide"; - signal: "elm,state,title,hide"; - source: "elm"; - action: STATE_SET "hide" 0.0; - target: "title_bg"; - } - program { name: "subtitle_show"; - signal: "elm,state,subtitle,show"; - source: "elm"; - script { - set_state(PART:"elm.text.title", "subtitle_is_set", 0.0); - } - } - program { name: "subtitle_hide"; - signal: "elm,state,subtitle,hide"; - source: "elm"; - script { - set_state(PART:"elm.text.title", "default", 0.0); - } - } - program { name: "prev_btn_show"; - signal: "elm,state,prev_btn,show"; - source: "elm"; - script { - emit("elm,state,toolbar_bg,show", "elm"); - } - } - program { name: "prev_btn_hide"; - signal: "elm,state,prev_btn,hide"; - source: "elm"; - script { - emit("elm,state,toolbar_bg,hide", "elm"); - } - } - program { name: "icon_show"; - signal: "elm,state,icon,show"; - source: "elm"; - action: STATE_SET "icon" 0.0; - target: "padding_center_text1"; - } - program { name: "icon_hide"; - signal: "elm,state,icon,hide"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "padding_center_text1"; - } - program { name: "left_btn_show"; - signal: "elm,state,title_left_btn,show"; - source: "elm"; - script { - set_int(buttons_visible, get_int(buttons_visible) + 1); - set_state(PART:"bottom_right_padding", "visible", 0.0); - if (get_int(buttons_visible) >= 2) - set_state(PART:"title_btns_padding", "visible", 0.0); - } - } - program { name: "left_btn_hide"; - signal: "elm,state,title_left_btn,hide"; - source: "elm"; - script { - set_int(buttons_visible, get_int(buttons_visible) - 1); - set_state(PART:"title_btns_padding", "default", 0.0); - if (get_int(buttons_visible) == 0) - set_state(PART:"bottom_right_padding", "default", 0.0); - } - } - program { name: "right_btn_show"; - signal: "elm,state,title_right_btn,show"; - source: "elm"; - action: STATE_SET "visible" 0.0; - script { - set_int(buttons_visible, get_int(buttons_visible) + 1); - set_state(PART:"bottom_right_padding", "visible", 0.0); - if (get_int(buttons_visible) >= 2) - set_state(PART:"title_btns_padding", "visible", 0.0); - } - } - program { name: "right_btn_hide"; - signal: "elm,state,title_right_btn,hide"; - source: "elm"; - action: STATE_SET "default" 0.0; - script { - set_int(buttons_visible, get_int(buttons_visible) - 1); - set_state(PART:"title_btns_padding", "default", 0.0); - if (get_int(buttons_visible) == 0) - set_state(PART:"bottom_right_padding", "default", 0.0); - } - } - program { name: "more_btn_show"; - signal: "elm,state,toolbar_more_btn,show"; - source: "elm"; - script { - emit("elm,state,toolbar_bg,show", "elm"); - } - } - program { name: "more_btn_hide"; - signal: "elm,state,toolbar_more_btn,hide"; - source: "elm"; - script { - emit("elm,state,toolbar_bg,hide", "elm"); - } - } - program { name: "toolbar_button1_show"; - signal: "elm,state,toolbar_button1,show"; - source: "elm"; - script { - emit("elm,state,toolbar_bg,show", "elm"); - set_int(toolbar_buttons_visible, get_int(toolbar_buttons_visible) + 1); - if (get_int(toolbar_buttons_visible) >= 2) - { - set_state(PART:"toolbar_button1", "buttons_set", 0.0); - set_state(PART:"toolbar_button2", "buttons_set", 0.0); - } - } - } - program { name: "toolbar_button1_hide"; - signal: "elm,state,toolbar_button1,hide"; - source: "elm"; - script { - emit("elm,state,toolbar_bg,hide", "elm"); - set_int(toolbar_buttons_visible, get_int(toolbar_buttons_visible) - 1); - set_state(PART:"toolbar_button1", "default", 0.0); - set_state(PART:"toolbar_button2", "default", 0.0); - } - } - program { name: "toolbar_button2_show"; - signal: "elm,state,toolbar_button2,show"; - source: "elm"; - script { - emit("elm,state,toolbar_bg,show", "elm"); - set_int(toolbar_buttons_visible, get_int(toolbar_buttons_visible) + 1); - if (get_int(toolbar_buttons_visible) >= 2) - { - set_state(PART:"toolbar_button1", "buttons_set", 0.0); - set_state(PART:"toolbar_button2", "buttons_set", 0.0); - } - } - } - program { name: "toolbar_button2_hide"; - signal: "elm,state,toolbar_button2,hide"; - source: "elm"; - script { - emit("elm,state,toolbar_bg,hide", "elm"); - set_int(toolbar_buttons_visible, get_int(toolbar_buttons_visible) - 1); - set_state(PART:"toolbar_button1", "default", 0.0); - set_state(PART:"toolbar_button2", "default", 0.0); - } - } - program { name: "toolbar_bg_show"; - signal: "elm,state,toolbar_bg,show"; - source: "elm"; - script { - set_state(PART:"toolbar_bg", "visible", 0.0); - set_int(tbar_bg, get_int(tbar_bg) + 1); - } - } - program { name: "toolbar_bg_hide"; - signal: "elm,state,toolbar_bg,hide"; - source: "elm"; - script { - set_int(tbar_bg, get_int(tbar_bg) - 1); - if (get_int(tbar_bg) <= 0) - set_state(PART:"toolbar_bg", "default", 0.0); - } - } - program { name: "toolbar_open_internal"; - signal: "elm,state,toolbar,open,internal"; - source: "elm"; - script { - set_int(tbar_close, 0); - set_state(PART:"toolbar_bg", "visible", 0.0); - } - } - program { name: "toolbar_close_internal"; - signal: "elm,state,toolbar,close,internal"; - source: "elm"; - script { - set_int(tbar_close, 1); - set_state(PART:"toolbar_bg", "default", 0.0); - } - } - program { name: "toolbar_open"; - signal: "elm,state,toolbar,open"; - source: ""; - action: STATE_SET "visible" 0.0; - target: "toolbar_bg"; - transition: LINEAR 0.2; - after: "toolbar_open_internal"; - } - program { name: "toolbar_close"; - signal: "elm,state,toolbar,close"; - source: ""; - action: STATE_SET "default" 0.0; - target: "toolbar_bg"; - transition: LINEAR 0.2; - after: "toolbar_close_internal"; - } - program { name: "toolbar_instant_open"; - signal: "elm,state,toolbar,instant_open"; - source: ""; - script { - emit("elm,state,toolbar,open,internal", "elm"); - } - } - program { name: "toolbar_instant_close"; - signal: "elm,state,toolbar,instant_close"; - source: ""; - script { - emit("elm,state,toolbar,close,internal", "elm"); - } - } - program { name: "show_finished"; - action: SIGNAL_EMIT "elm,action,show,finished" ""; - } - program { name: "pushed_finished"; - action: SIGNAL_EMIT "elm,action,pushed,finished" ""; - } - program { name: "popped_finished"; - action: SIGNAL_EMIT "elm,action,popped,finished" ""; - } - program { - name: "title_clicked"; - signal: "mouse,clicked,1"; - source: "click_event_area"; - action: SIGNAL_EMIT "elm,action,title,clicked" ""; - } - program { - name: "display_mode_compress"; - signal: "display,mode,compress"; - source: ""; - script { - set_state(PART:"toolbar_bg", "default", 0.0); - } - } - program { - name: "display_mode_default"; - signal: "display,mode,default"; - source: ""; - script { - if ((get_int(tbar_bg) > 0) && (get_int(tbar_close) == 0)) - set_state(PART:"toolbar_bg", "visible", 0.0); - } - } - } - } - - group { name:"elm/naviframe/item/basic/ivug-main/noindicator"; - script { - public tbar_bg = 0; //Toolbar BG Show call count - public buttons_visible = 0; //when both buttons are visible - public toolbar_buttons_visible = 0; //when both toolbar buttons are visible - public tbar_close = 0; //Toolbar lastest Open/Close status - } - parts { - part { name: "base"; - type: RECT; - mouse_events: 0; - description { state: "default" 0.0; - visible: 0; - } - description { state: "left" 0.0; - inherit: "default" 0.0; - rel1.relative: -1.0 0.0; - rel2.relative: 0.0 1.0; - } - description { state: "right" 0.0; - inherit: "default" 0.0; - rel1.relative: 1.0 0.0; - rel2.relative: 2.0 1.0; - } - } - part { name: "elm.swallow.content"; - type: SWALLOW; - scale: 1; - mouse_events: 1; - repeat_events: 0; - clip_to: "content_clip"; - description { state: "default" 0.0; - align: 0.0 0.0; - rel1.relative: 0.0 0.0; - rel1.to: "base"; - rel2.relative: 1.0 1.0; - rel2.to: "base"; - } - } - part { name: "elm.swallow.detail"; // Detail view. - type: SWALLOW; - scale: 1; - repeat_events: 0; - description { state: "default" 0.0; - color: 255 0 0 100; - align: 0.0 0.0; - rel1.relative: 0.0 1.0; - rel1.to_x: "base"; - rel1.to_y: "title_bg"; - rel1.offset: 0 -10; - rel2.relative: 1.0 0.0; - rel2.to_x: "base"; - rel2.to_y: "toolbar_bg"; - visible: 1; - } - } - - part { name: "title_bg"; - type: RECT; - scale: 1; - description { state: "default" 0.0; - min: 1 NAVIFRAME_TITLE_H_INC; - align: 0.0 0.0; - fixed: 0 1; - rel1 { relative: 0.0 0.0; to: "base"; } - rel2 { relative: 1.0 0.0; to: "base"; } - color: NAVIFRAME_TITLE_BG_COLOR_INC; - } - description { state: "hide" 0.0; - inherit: "default" 0.0; - min: 0 0; - max: 0 0; - fixed: 1 1; - } - } - part { name: "title_clip"; - type: RECT; - mouse_events: 0; - description { state: "default" 0.0; - rel1 { to: "title_bg"; } - rel2 { to: "title_bg"; } - } - } - part { name: "top_padding"; - type: RECT; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - min: NAVIFRAME_TITLE_TOP_PADDING_INC; - fixed: 0 1; - align: 0.0 0.0; - rel1 { relative: 0.0 0.0; to: "title_bg"; } - rel2 { relative: 1.0 0.0; to: "title_bg"; } - visible: 0; - } - } - part { name: "padding_center_text1"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - min: NAVIFRAME_PADDING_INC; - fixed: 1 0; - align: 0.0 0.0; - rel1 { relative: 0.0 0.0; to: "title_bg"; } - rel2 { relative: 0.0 1.0; to: "title_bg"; } - visible: 0; - } - description { state: "icon" 0.0; - inherit: "default" 0.0; - min: NAVIFRAME_ICON_PADDING_INC; - } - } - part { name: "content_clip"; - type: RECT; - mouse_events: 0; - description { state: "default" 0.0; - rel1.to: "elm.swallow.content"; - rel2.to: "elm.swallow.content"; - } - } - part { name: "padding_center_text2"; - type: RECT; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - min: NAVIFRAME_PADDING2_INC; - fixed: 1 0; - align: 1.0 0.5; - rel1 { relative: 0.0 0.0; to: "title_left_btn"; } - rel2 { relative: 0.0 1.0; to: "title_left_btn"; } - visible: 0; - } - } - part { name: "padding_bottom_text"; - type: RECT; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - min: NAVIFRAME_BOTTOM_TEXT_PADDING_INC; - fixed: 0 1; - align: 0.0 1.0; - rel1 { relative: 0.0 1.0; to: "title_bg"; } - rel2 { relative: 1.0 1.0; to: "title_bg"; } - visible: 0; - } - } - part { name: "elm.text.title"; - type: TEXT; - scale: 1; - clip_to: "title_clip"; - description { state: "default" 0.0; - text { font: "Tizen:style=Medium"; - size: NAVIFRAME_TITLE_FONT_SIZE_INC; - min: 0 0; - max: 1 0; - align: 0.0 0.5; - text_class: "tizen"; - } - color: NAVIFRAME_TITLE_TEXT_COLOR_INC; - align: 0.0 0.5; - fixed: 1 1; - rel1 { relative: 1.0 1.0; to_x: "padding_center_text1"; to_y: "top_padding"; } - rel2 { relative: 0.0 0.0; to_x: "padding_center_text2"; to_y: "padding_bottom_text"; } - } - description { state: "subtitle_is_set" 0.0; - inherit: "default" 0.0; - text { font: "Tizen:style=Medium"; - size: NAVIFRAME_TITLE_SMALL_FONT_SIZE_INC; - min: 0 0; - max: 1 0; - align: 0.0 0.2; - text_class: "tizen"; - } - align: 0.0 0.0; - rel1 { relative: 1.0 0.0; to_x: "padding_center_text1"; to_y: "top_padding"; } - } - } - part { name: "elm.text.subtitle"; - type: TEXT; - scale: 1; - clip_to: "title_clip"; - description { state: "default" 0.0; - text { font: "Tizen:style=Medium"; - size: NAVIFRAME_SUBTITLE_FONT_SIZE_INC; - min: 0 0; - max: 1 0; - text_class: "tizen"; - align: 0.0 1.0; - } - color: NAVIFRAME_SUBTITLE_TEXT_COLOR_INC; - align: 0.0 1.0; - fixed: 1 0; - rel1 { - relative: 1.0 1.0; - to_x: "padding_center_text1"; - to_y: "elm.text.title"; - } - rel2 { - relative: 0.0 1.0; - to_x: "padding_center_text2"; - to_y: "elm.text.title"; - } - } - } - part { name: "padding_before_text"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 1.0 0.5; - rel1 { relative: 0.0 0.0; to: "elm.text.title"; } - rel2 { relative: 0.0 1.0; to: "elm.text.title"; } - fixed: 1 0; - min: NAVIFRAME_PADDING_INC; - visible: 0; - } - } - part { name: "elm.swallow.icon"; - type: SWALLOW; - scale: 1; - clip_to: "title_clip"; - description { state: "default" 0.0; - max: NAVIFRAME_ICON_SIZE_INC; - fixed: 1 1; - rel1 { relative: 0.0 0.0; to: "padding_before_text"; } - rel2 { relative: 0.0 1.0; to: "padding_before_text"; } - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - align: 1.0 0.5; - } - } - part { name: "click_event_area"; - ignore_flags: ON_HOLD; - repeat_events: 1; - description { state: "default" 0.0; - rel1 { to: "title_bg"; } - rel2 { to: "title_bg"; } - } - } - part { name: "title_left_btn"; - type: SWALLOW; - scale: 1; - clip_to: "title_clip"; - description { state: "default" 0.0; - max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC; - fixed: 1 1; - align: 1 0.5; - rel1 { relative: 0.0 0.0; to: "title_btns_padding"; } - rel2 { relative: 0.0 1.0; to: "title_btns_padding"; } - } - } - part { name: "title_btns_padding"; - type: RECT; - scale: 1; - description { state: "default" 0.0; - min: 0 0; - fixed: 1 1; - align: 1 0.5; - visible: 0; - rel1 { relative: 0.0 0.0; to: "title_right_btn"; } - rel2 { relative: 0.0 1.0; to: "title_right_btn"; } - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - min: NAVIFRAME_PADDING2_INC; - } - } - part { name: "bottom_right_padding"; - type: RECT; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - min: 0 0; - fixed: 1 1; - align: 1.0 1.0; - rel1 { relative: 1.0 1.0; to: "title_bg"; } - rel2 { relative: 1.0 1.0; to: "title_bg"; } - visible: 0; - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - min: NAVIFRAME_BOTTOM_RIGHT_PADDING_INC; - } - } - part { name: "title_right_btn"; - type: SWALLOW; - scale: 1; - clip_to: "title_clip"; - description { state: "default" 0.0; - max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC; - align: 1 0.5; - fixed: 1 1; - rel1 { relative: 1.0 1.0; to_x: "title_bg"; to_y: "top_padding"; } - rel2 { relative: 0.0 0.0; to: "bottom_right_padding"; } - } - } - part { name: "toolbar_bg"; - type: RECT; - scale: 1; - description { state: "default" 0.0; - min: 0 0; - max: 999999 0; - fixed: 0 1; - align: 0.0 1.0; - visible: 0; - rel1 { to: "base"; } - rel2 { to: "base"; } - color: NAVIFRAME_TOOLBAR_BG_COLOR_INC; - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - min: 0 NAVIFRAME_TOOLBAR_HEIGHT_INC; - max: 999999 NAVIFRAME_TOOLBAR_HEIGHT_INC; - visible: 1; - } - } - part { name: "more_btn_bg"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - min: NAVIFRAME_TOOLBAR_BUTTON_BG_PADDING_INC; - fixed: 1 0; - align: 0.0 0.0; - rel1 { relative: 0.0 0.0; to: "toolbar_bg"; } - rel2 { relative: 0.0 1.0; to: "toolbar_bg"; } - visible: 0; - } - } - part { name: "toolbar_more_btn"; - type: SWALLOW; - scale: 1; - clip_to: "toolbar_clip"; - description { state: "default" 0.0; - max: NAVIFRAME_PREV_FUNC_BTN_SIZE_INC; - fixed: 1 1; - rel1.to: "more_btn_bg"; - rel2.to: "more_btn_bg"; - } - } - part { name: "prev_btn_bg"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - min: NAVIFRAME_TOOLBAR_BUTTON_BG_PADDING_INC; - fixed: 1 0; - align: 1.0 0.0; - rel1 { relative: 1.0 0.0; to: "toolbar_bg"; } - rel2.to: "toolbar_bg"; - visible: 0; - } - } - part { name: "elm.swallow.prev_btn"; - type: SWALLOW; - scale: 1; - clip_to: "toolbar_clip"; - description { state: "default" 0.0; - max: NAVIFRAME_PREV_FUNC_BTN_SIZE_INC; - fixed: 1 1; - align: 0.5 0.5; - rel1.to: "prev_btn_bg"; - rel2.to: "prev_btn_bg"; - } - } - part { name: "toolbar_btns_area"; - type: RECT; - mouse_events: 0; - description { state: "default" 0.0; - rel1 { relative: 1.0 0.0; to: "more_btn_bg"; } - rel2 { relative: 0.0 1.0; to: "prev_btn_bg"; } - visible: 0; - } - } - part { name: "toolbar_clip"; - type: RECT; - mouse_events: 0; - description { state: "default" 0.0; - rel1 { to: "toolbar_bg"; } - rel2 { to: "toolbar_bg"; } - } - } - part { name: "toolbar_button1"; - type: SWALLOW; - scale: 1; - clip_to: "toolbar_clip"; - description { state: "default" 0.0; - fixed: 1 1; - align: 0.5 0.5; - rel1.to: "toolbar_btns_area"; - rel2.to: "toolbar_btns_area"; - } - description { state: "buttons_set" 0.0; - inherit: "default" 0.0; - align: 1.0 0.5; - rel2 { - relative: 0.0 1.0; - to: "toolbar_button_padding"; - } - } - } - part { name: "toolbar_button_padding"; - type: RECT; - scale : 1; - description { state: "default" 0.0; - min: NAVIFRAME_TOOLBAR_BUTTONS_PADDING_INC 0; - max: NAVIFRAME_TOOLBAR_BUTTONS_PADDING_INC 9999; - fixed : 1 0; - visible: 0; - align: 0.5 0.5; - rel1.to: "toolbar_clip"; - rel2.to: "toolbar_clip"; - } - } - part { name: "toolbar_button2"; - type: SWALLOW; - scale: 1; - clip_to: "toolbar_clip"; - description { state: "default" 0.0; - fixed: 1 1; - align: 0.5 0.5; - rel1.to: "toolbar_btns_area"; - rel2.to: "toolbar_btns_area"; - } - description { state: "buttons_set" 0.0; - inherit: "default" 0.0; - align: 0.0 0.5; - rel1 { - relative: 1.0 0.0; - to: "toolbar_button_padding"; - } - } - } - } - programs { - program { name: "content_new_pushed"; - signal: "elm,state,new,pushed,internal"; - source: ""; - action: STATE_SET "default" 0.0; - target: "base"; - transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME; - after: "show_finished"; - } - program { name: "content_cur_pushed"; - signal: "elm,state,cur,pushed,internal"; - source: ""; - action: STATE_SET "left" 0.0; - target: "base"; - transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME; - after: "pushed_finished"; - } - program { name: "content_prev_popped"; - signal: "elm,state,prev,popped,internal"; - source: ""; - action: STATE_SET "default" 0.0; - target: "base"; - transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME; - after: "show_finished"; - } - program { name: "content_cur_popped"; - signal: "elm,state,cur,popped,internal"; - source: ""; - action: STATE_SET "right" 0.0; - target: "base"; - transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME; - after: "popped_finished"; - } - program { name: "cur_pushed"; - signal: "elm,state,cur,pushed"; - source: "elm"; - script { - set_state(PART:"base", "default", 0.0); - emit("elm,state,cur,pushed,internal", ""); - } - } - program { name: "new_pushed"; - signal: "elm,state,new,pushed"; - source: "elm"; - script { - set_state(PART:"base", "right", 0.0); - emit("elm,state,new,pushed,internal", ""); - } - } - program { name: "prev_popped"; - signal: "elm,state,prev,popped"; - source: "elm"; - script { - set_state(PART:"base", "left", 0.0); - emit("elm,state,prev,popped,internal", ""); - } - } - program { name: "cur_popped"; - signal: "elm,state,cur,popped"; - source: "elm"; - script { - set_state(PART:"base", "default", 0.0); - emit("elm,state,cur,popped,internal", ""); - } - } - program { name: "visible"; - signal: "elm,state,visible"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "base"; - } - program { name: "title_show"; - signal: "elm,state,title,show"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "title_bg"; - } - program { name: "title_hide"; - signal: "elm,state,title,hide"; - source: "elm"; - action: STATE_SET "hide" 0.0; - target: "title_bg"; - } - program { name: "subtitle_show"; - signal: "elm,state,subtitle,show"; - source: "elm"; - script { - set_state(PART:"elm.text.title", "subtitle_is_set", 0.0); - } - } - program { name: "subtitle_hide"; - signal: "elm,state,subtitle,hide"; - source: "elm"; - script { - set_state(PART:"elm.text.title", "default", 0.0); - } - } - program { name: "prev_btn_show"; - signal: "elm,state,prev_btn,show"; - source: "elm"; - script { - emit("elm,state,toolbar_bg,show", "elm"); - } - } - program { name: "prev_btn_hide"; - signal: "elm,state,prev_btn,hide"; - source: "elm"; - script { - emit("elm,state,toolbar_bg,hide", "elm"); - } - } - program { name: "icon_show"; - signal: "elm,state,icon,show"; - source: "elm"; - action: STATE_SET "icon" 0.0; - target: "padding_center_text1"; - } - program { name: "icon_hide"; - signal: "elm,state,icon,hide"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "padding_center_text1"; - } - program { name: "left_btn_show"; - signal: "elm,state,title_left_btn,show"; - source: "elm"; - script { - set_int(buttons_visible, get_int(buttons_visible) + 1); - set_state(PART:"bottom_right_padding", "visible", 0.0); - if (get_int(buttons_visible) >= 2) - set_state(PART:"title_btns_padding", "visible", 0.0); - } - } - program { name: "left_btn_hide"; - signal: "elm,state,title_left_btn,hide"; - source: "elm"; - script { - set_int(buttons_visible, get_int(buttons_visible) - 1); - set_state(PART:"title_btns_padding", "default", 0.0); - if (get_int(buttons_visible) == 0) - set_state(PART:"bottom_right_padding", "default", 0.0); - } - } - program { name: "right_btn_show"; - signal: "elm,state,title_right_btn,show"; - source: "elm"; - action: STATE_SET "visible" 0.0; - script { - set_int(buttons_visible, get_int(buttons_visible) + 1); - set_state(PART:"bottom_right_padding", "visible", 0.0); - if (get_int(buttons_visible) >= 2) - set_state(PART:"title_btns_padding", "visible", 0.0); - } - } - program { name: "right_btn_hide"; - signal: "elm,state,title_right_btn,hide"; - source: "elm"; - action: STATE_SET "default" 0.0; - script { - set_int(buttons_visible, get_int(buttons_visible) - 1); - set_state(PART:"title_btns_padding", "default", 0.0); - if (get_int(buttons_visible) == 0) - set_state(PART:"bottom_right_padding", "default", 0.0); - } - } - program { name: "more_btn_show"; - signal: "elm,state,toolbar_more_btn,show"; - source: "elm"; - script { - emit("elm,state,toolbar_bg,show", "elm"); - } - } - program { name: "more_btn_hide"; - signal: "elm,state,toolbar_more_btn,hide"; - source: "elm"; - script { - emit("elm,state,toolbar_bg,hide", "elm"); - } - } - program { name: "toolbar_button1_show"; - signal: "elm,state,toolbar_button1,show"; - source: "elm"; - script { - emit("elm,state,toolbar_bg,show", "elm"); - set_int(toolbar_buttons_visible, get_int(toolbar_buttons_visible) + 1); - if (get_int(toolbar_buttons_visible) >= 2) - { - set_state(PART:"toolbar_button1", "buttons_set", 0.0); - set_state(PART:"toolbar_button2", "buttons_set", 0.0); - } - } - } - program { name: "toolbar_button1_hide"; - signal: "elm,state,toolbar_button1,hide"; - source: "elm"; - script { - emit("elm,state,toolbar_bg,hide", "elm"); - set_int(toolbar_buttons_visible, get_int(toolbar_buttons_visible) - 1); - set_state(PART:"toolbar_button1", "default", 0.0); - set_state(PART:"toolbar_button2", "default", 0.0); - } - } - program { name: "toolbar_button2_show"; - signal: "elm,state,toolbar_button2,show"; - source: "elm"; - script { - emit("elm,state,toolbar_bg,show", "elm"); - set_int(toolbar_buttons_visible, get_int(toolbar_buttons_visible) + 1); - if (get_int(toolbar_buttons_visible) >= 2) - { - set_state(PART:"toolbar_button1", "buttons_set", 0.0); - set_state(PART:"toolbar_button2", "buttons_set", 0.0); - } - } - } - program { name: "toolbar_button2_hide"; - signal: "elm,state,toolbar_button2,hide"; - source: "elm"; - script { - emit("elm,state,toolbar_bg,hide", "elm"); - set_int(toolbar_buttons_visible, get_int(toolbar_buttons_visible) - 1); - set_state(PART:"toolbar_button1", "default", 0.0); - set_state(PART:"toolbar_button2", "default", 0.0); - } - } - program { name: "toolbar_bg_show"; - signal: "elm,state,toolbar_bg,show"; - source: "elm"; - script { - set_state(PART:"toolbar_bg", "visible", 0.0); - set_int(tbar_bg, get_int(tbar_bg) + 1); - } - } - program { name: "toolbar_bg_hide"; - signal: "elm,state,toolbar_bg,hide"; - source: "elm"; - script { - set_int(tbar_bg, get_int(tbar_bg) - 1); - if (get_int(tbar_bg) <= 0) - set_state(PART:"toolbar_bg", "default", 0.0); - } - } - program { name: "toolbar_open_internal"; - signal: "elm,state,toolbar,open,internal"; - source: "elm"; - script { - set_int(tbar_close, 0); - set_state(PART:"toolbar_bg", "visible", 0.0); - } - } - program { name: "toolbar_close_internal"; - signal: "elm,state,toolbar,close,internal"; - source: "elm"; - script { - set_int(tbar_close, 1); - set_state(PART:"toolbar_bg", "default", 0.0); - } - } - program { name: "toolbar_open"; - signal: "elm,state,toolbar,open"; - source: ""; - action: STATE_SET "visible" 0.0; - target: "toolbar_bg"; - transition: LINEAR 0.2; - after: "toolbar_open_internal"; - } - program { name: "toolbar_close"; - signal: "elm,state,toolbar,close"; - source: ""; - action: STATE_SET "default" 0.0; - target: "toolbar_bg"; - transition: LINEAR 0.2; - after: "toolbar_close_internal"; - } - program { name: "toolbar_instant_open"; - signal: "elm,state,toolbar,instant_open"; - source: ""; - script { - emit("elm,state,toolbar,open,internal", "elm"); - } - } - program { name: "toolbar_instant_close"; - signal: "elm,state,toolbar,instant_close"; - source: ""; - script { - emit("elm,state,toolbar,close,internal", "elm"); - } - } - program { name: "show_finished"; - action: SIGNAL_EMIT "elm,action,show,finished" ""; - } - program { name: "pushed_finished"; - action: SIGNAL_EMIT "elm,action,pushed,finished" ""; - } - program { name: "popped_finished"; - action: SIGNAL_EMIT "elm,action,popped,finished" ""; - } - program { - name: "title_clicked"; - signal: "mouse,clicked,1"; - source: "click_event_area"; - action: SIGNAL_EMIT "elm,action,title,clicked" ""; - } - program { - name: "display_mode_compress"; - signal: "display,mode,compress"; - source: ""; - script { - set_state(PART:"toolbar_bg", "default", 0.0); - } - } - program { - name: "display_mode_default"; - signal: "display,mode,default"; - source: ""; - script { - if ((get_int(tbar_bg) > 0) && (get_int(tbar_close) == 0)) - set_state(PART:"toolbar_bg", "visible", 0.0); - } - } - } - } - -} diff --git a/main/layout/ivug-nearby-device.edc b/main/layout/ivug-nearby-device.edc new file mode 100755 index 0000000..e691f71 --- /dev/null +++ b/main/layout/ivug-nearby-device.edc @@ -0,0 +1,239 @@ +/* +* Copyright (c) 2000-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 IMG_CONNECTION_INFO_PROGRESS_1 "nearby_device/T02_Player_Nearby_device_progress1.png" +#define IMG_CONNECTION_INFO_PROGRESS_2 "nearby_device/T02_Player_Nearby_device_progress2.png" +#define IMG_CONNECTION_INFO_PROGRESS_3 "nearby_device/T02_Player_Nearby_device_progress3.png" +#define IMG_CONNECTION_INFO_PROGRESS_4 "nearby_device/T02_Player_Nearby_device_progress4.png" + +collections { + group { name: "connection_info_layout"; + images { + image: IMG_CONNECTION_INFO_PROGRESS_1 COMP; + image: IMG_CONNECTION_INFO_PROGRESS_2 COMP; + image: IMG_CONNECTION_INFO_PROGRESS_3 COMP; + image: IMG_CONNECTION_INFO_PROGRESS_4 COMP; + } + parts { + part { name: "bg"; + type: RECT; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + color: 0 0 0 0; + min: 646 300; + } + } + + part { name: "center"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + rel1 { relative: 0.5 0.0; to: "bg"; } + rel2 { relative: 0.5 1.0; to: "bg"; } + min: 0 78; + fixed: 0 1; + align: 0.5 0.0; + } + } + part { name: "ceter_h"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + rel1 { relative: 0.0 (2/3); to: "bg"; } + rel2 { relative: 1.0 (2/3); to: "bg"; } + min: 0 20; + fixed: 0 1; + align: 0.0 0.0; + } + } + part { name: "left"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + rel1.to: "bg"; + rel2 { relative: 0.0 1.0; to: "center"; } + } + } + part { name: "right"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + rel1 { relative: 1.0 0.0; to: "center"; } + rel2.to: "bg"; + } + } + + part { name: "left_padding_left"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + rel1.to: "left"; + rel2 { relative: 0.0 0.0; to_x: "left"; to_y: "ceter_h"; } + min: 42 0; + fixed: 1 0; + } + } + part { name: "left_padding_right"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + rel1 { relative: 1.0 0.0; to: "left"; } + rel2 { relative: 1.0 0.0; to_x: "left"; to_y: "ceter_h"; } + min: 42 0; + fixed: 1 0; + align: 1.0 0.0; + } + } + part { name: "elm.icon.source"; + type: SWALLOW; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + rel1 { relative: 1.0 0.0; to: "left_padding_left"; } + rel2 { relative: 0.0 1.0; to: "left_padding_right"; } + } + } + part { name: "text_left_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + rel1.to: "left"; + rel2 { relative: 0.0 1.0; to: "left"; } + min: 30 0; + fixed: 1 0; + align: 0.0 0.0; + } + } + part { name: "elm.text.source"; + type: TEXT; + scale: 1; + description { state: "default" 0.0; + rel1 { relative: 1.0 1.0; to_x: "text_left_padding"; to_y: "ceter_h"; } + rel2.to: "left"; + text { + font: "Tizen:style=Medium"; + text_class: "tizen"; + size: 30; + align: 0.5 0.5; + min: 0 1; + } + color: 97 97 97 200; + } + } + + part { name: "progressing_image"; + type: IMAGE; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + rel1 { relative: 0.0 (1/3); to: "center"; } + rel2 { relative: 0.1 (1/3); to: "center"; } + image.normal: IMG_CONNECTION_INFO_PROGRESS_1; + min: 78 14; + fixed: 1 1; + align: 0.5 0.5; + } + description { state: "default" 0.1; + inherit: "default" 0.0; + image.normal: IMG_CONNECTION_INFO_PROGRESS_2; + } + description { state: "default" 0.2; + inherit: "default" 0.0; + image.normal: IMG_CONNECTION_INFO_PROGRESS_3; + } + description { state: "default" 0.3; + inherit: "default" 0.0; + image.normal: IMG_CONNECTION_INFO_PROGRESS_4; + } + } + + part { name: "right_padding_left"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + rel1.to: "right"; + rel2 { relative: 0.0 0.0; to_x: "right"; to_y: "ceter_h"; } + min: 42 0; + fixed: 1 0; + } + } + part { name: "right_padding_right"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + rel1 { relative: 1.0 0.0; to: "right"; } + rel2 { relative: 1.0 0.0; to_x: "right"; to_y: "ceter_h"; } + min: 42 0; + fixed: 1 0; + align: 1.0 0.0; + } + } + part { name: "elm.icon.destination"; + type: SWALLOW; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + rel1 { relative: 1.0 0.0; to: "right_padding_left"; } + rel2 { relative: 0.0 1.0; to: "right_padding_right"; } + } + } + part { name: "text_right_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + rel1 { relative: 1.0 0.0; to: "right"; } + rel2.to: "right"; + min: 30 0; + fixed: 1 0; + align: 1.0 0.0; + } + } + part { name: "elm.text.destination"; + type: TEXT; + scale: 1; + description { state: "default" 0.0; + rel1 { relative: 0.0 1.0; to_x: "right"; to_y: "ceter_h"; } + rel2 { relative: 0.0 1.0; to: "text_right_padding"; } + text { + font: "Tizen:style=Medium"; + text_class: "tizen"; + size: 30; + align: 0.5 0.5; + min: 0 1; + } + color: 97 97 97 200; + } + } + } + + programs { + program { name: "pgm_change_progress_image"; + signal: "sig_update_progress_image"; + source: "*"; + script { + new st[31]; + new Float:vl; + get_state(PART:"progressing_image", st, 30, vl); + if (vl == 0.3) vl = 0.0 + else vl = vl + 0.1; + set_state(PART:"progressing_image", st, vl); + } + } + } + } +} diff --git a/main/layout/ivug-popup.edc b/main/layout/ivug-popup.edc index 40aba02..ae7662d 100755 --- a/main/layout/ivug-popup.edc +++ b/main/layout/ivug-popup.edc @@ -1,172 +1,283 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ - -/* referenced by elm_demo "popup_checkview" in popup_custom.edc */ -collections { - group { name: "popup_checkview"; - parts{ - part { name: "background"; - type: RECT; - scale: 1; - description { - state: "default" 0.0; - color: 0 0 0 0; - visible: 1; - rel1 { relative: 0.0 0.0; } - rel2 { relative: 1.0 1.0; } - } - } - - part { name: "pad_t"; - scale : 1; - mouse_events: 0; - repeat_events: 1; - description { state: "default" 0.0; - align: 0.5 0.0; - min: 0 14; - fixed: 0 1; - rel1 { - relative: 1.0 0.0;to_x: "pad_l"; - } - rel2 { - relative: 0.0 0.0;to_x: "pad_r"; - } - } - } - part { name: "pad_l"; - scale: 1; - description { state: "default" 0.0; - min : 10 0; - fixed: 1 0; - rel1 { - relative: 0.0 0.0; - } - rel2 { - relative: 0.0 1.0; - } - align: 0.0 0.0; - } - } - part { name: "pad_r"; - scale: 1; - description { state: "default" 0.0; - min : 10 0; - fixed: 1 0; - rel1 { - relative: 1.0 0.0; - } - rel2 { - relative: 1.0 1.0; - } - align: 1.0 0.0; - } - } - part{ name:"elm.swallow.content"; - type: SWALLOW; - scale : 1; - description { state: "default" 0.0; - min: 380 0; - align: 0.5 0.5; - fixed: 1 0; - rel1 { - relative: 0.5 1.0; - to: "pad_t"; - } - rel2 { - relative: 0.5 0.0; - to: "pad_b"; - } - } - } - part { name: "pad_b"; - scale : 1; - mouse_events: 0; - repeat_events: 1; - description { state: "default" 0.0; - align: 0.5 1.0; - min: 0 100; - fixed: 0 1; - rel1 { - relative: 1.0 1.0;to_x: "pad_l"; - } - rel2 { - relative: 0.0 1.0;to_x: "pad_r"; - } - } - } - part { name: "elm.swallow.end"; - type: SWALLOW; - scale : 1; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - align: 0.0 1.0; - rel1 { - relative: 0.1 0.0; - to: "pad_b"; - } - rel2 { - relative: 1.0 1.0; - to: "pad_b"; - } - } - } - part { name: "elm.text"; - type: TEXT; - scale : 1; - mouse_events: 0; - description { state: "default" 0.0; - text { - font: "Tizen:style=Medium"; - size: 36; - min: 0 0; - align: 0.5 0.5; - text_class: "slp_medium"; - } - color: 0 0 0 255; - align: 0.0 1.0; - rel1 { - relative: 0.2 0.0; - to: "pad_b"; - } - rel2 { - relative: 0.8 1.0; - to: "pad_b"; - } - } - } - } - } - - group { name: "popup_entryview"; - parts{ - part{ name:"elm.swallow.content"; - type: SWALLOW; - scale : 1; - description { state: "default" 0.0; - align: 0.5 0.5; - rel1 { - relative: 0.0 0.0; - } - rel2 { - relative: 1.0 1.0; - } - } - } - } - } -} - +/* +* Copyright (c) 2000-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. +* +*/ + +/* referenced by elm_demo "popup_checkview" in popup_custom.edc */ + +#define POPUP_CONTENT_DEFAULT_PADDING_LEFT_MIN_INC 15 +#define POPUP_EDITFIELD_LAYOUT_MINMAX_HEIGHT_INC 56 + +collections { + group { name: "popup_checkview"; + parts { + part { name: "pad_t"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + align: 0.5 0.0; + min: 0 0; + fixed: 0 1; + rel1 { + relative: 1.0 0.0;to_x: "pad_l"; + } + rel2 { + relative: 0.0 0.0;to_x: "pad_r"; + } + } + } + part { name: "pad_l"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 0 0; + max: 0 0; + fixed: 1 0; + rel1 { + relative: 0.0 0.0; + } + rel2 { + relative: 0.0 1.0; + } + align: 0.0 0.0; + } + } + part { name: "pad_r"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 0 0; + max: 0 0; + fixed: 1 0; + rel1 { + relative: 1.0 0.0; + } + rel2 { + relative: 1.0 1.0; + } + align: 1.0 0.0; + } + } + part { name: "elm.swallow.content"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + fixed: 1 0; + rel1 { + relative: 1.0 1.0; + to_x: "pad_l"; + to_y: "pad_t"; + } + rel2 { + relative: 0.0 0.0; + to_x: "pad_r"; + to_y: "pad_b"; + } + } + } + part { name: "pad_b"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + align: 0.5 1.0; + min: 0 84; + fixed: 0 1; + rel1 { + relative: 0.0 1.0; + } + rel2 { + relative: 1.0 1.0; + } + + } + } + part { name: "elm.swallow.end"; + type: SWALLOW; + scale: 1; + mouse_events: 1; + repeat_events: 1; + description { state: "default" 0.0; + align: 0.5 1.0; + min: 63 63; + fixed: 0 1; + rel1 { + relative: 1.0 1.0; + to_x: "pad_l"; + to_y: "pad_b"; + } + rel2 { + relative: 0.0 1.0; + to_x: "pad_r"; + to_y: "pad_b"; + } + } + } + } + } + + group { name: "popup_entryview"; + parts{ + part{ name:"elm.swallow.content"; + type: SWALLOW; + scale : 1; + description { state: "default" 0.0; + align: 0.5 0.5; + rel1 { + relative: 0.0 0.0; + } + rel2 { + relative: 1.0 1.0; + } + } + } + } + } +group { name: "popup_input_text"; + parts { + part { name: "pad_l"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: POPUP_CONTENT_DEFAULT_PADDING_LEFT_MIN_INC 0; + fixed: 1 0; + rel1.relative: 0.0 0.0; + rel2.relative: 0.0 1.0; + align: 0.0 0.0; + } + } + part { name: "pad_r"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: POPUP_CONTENT_DEFAULT_PADDING_LEFT_MIN_INC 0; + fixed: 1 0; + rel1.relative: 1.0 0.0; + rel2.relative: 1.0 1.0; + align: 1.0 0.0; + } + } + part { name: "elm.swallow.content"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + min: 0 POPUP_EDITFIELD_LAYOUT_MINMAX_HEIGHT_INC; + max: -1 POPUP_EDITFIELD_LAYOUT_MINMAX_HEIGHT_INC; + align: 0.5 0.5; + rel1{ + relative: 1.0 0.0 ; + to_x: "pad_l"; + } + rel2{ + relative: 0.0 1.0; + to_x: "pad_r"; + } + } + } + } +} + +// From EFL demo - popup_custom.edc +group { name: "popup_processingview_1button"; +#define DEMO_POPUP_PROCESSINGVIEW1BUTTON_CONTENT_MIN 568 120 + parts { + part { name: "base"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: DEMO_POPUP_PROCESSINGVIEW1BUTTON_CONTENT_MIN; + fixed: 1 0; + } + } + part { name:"pad_t"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 0 12; + fixed: 0 1; + align: 0 0; + rel1.to: "base"; + rel2 { + relative: 1.0 0.0; + to: "base"; + } + } + } + part { name:"elm.swallow.content"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + align: 0.0 0.0; + fixed: 1 1; + rel1 { + relative: 0.0 1.0; + to: "pad_t"; + } + rel2 { + relative: 1.0 1.0; + to: "pad_t"; + } + } + } + part { name:"pad_after_content"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 0 20; + fixed: 0 1; + rel1 { + relative: 0.0 1.0; + to: "elm.swallow.content"; + } + rel2 { + relative: 1.0 1.0; + to: "elm.swallow.content"; + } + } + } + part { name:"elm.swallow.text"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + align: 0.5 0.5; + fixed: 1 1; + rel1 { + relative: 0.0 1.0; + to: "pad_after_content"; + } + rel2 { + relative: 1.0 0.0; + to: "pad_b"; + } + } + } + part { name:"pad_b"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 0 0; + fixed: 0 1; + align: 1 1; + rel1 { + relative: 0.0 1.0; + to: "base"; + } + rel2.to: "base"; + } + } + } +#undef DEMO_POPUP_PROCESSINGVIEW1BUTTON_CONTENT_MIN +} +} + diff --git a/main/layout/ivug-setas.edc b/main/layout/ivug-setas.edc index da97d07..ecaad9a 100755 --- a/main/layout/ivug-setas.edc +++ b/main/layout/ivug-setas.edc @@ -1,24 +1,24 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ivug-theme.edc" +* Copyright (c) 2000-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 PADDING_VISIBILITY 0 -#define NOTIFY_HEIGHT 47 +// SetAsCallerImage +#define TOOLBAR_LARGE_HEIGHT_INC 98 collections { @@ -42,66 +42,24 @@ collections { } part { - name: "indicator"; - type: RECT; + name: "setasview.contents"; + type: SPACER; scale: 1; - repeat_events : 0; + description { state: "default" 0.0; - min: 0 LAYOUT_INDICATOR_HEIGHT_INC; - // max: 0 LAYOUT_INDICATOR_HEIGHT_INC; rel1.relative: 0.0 0.0; - rel2.relative: 1.0 0.0; - fixed: 0 1; - align: 0.5 0.0; - color: LAYOUT_INDICATOR_COLOR_INC; - visible: 0; + rel2.relative: 1.0 0.0; rel2.to: "elm.swallow.toolbar"; } - description { - state: "hide" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - - part { name: "setasview.contents"; - type: RECT; - scale: 1; - repeat_events: 0; - description { state: "default" 0.0; - color: 0 0 0 100; - align: 0.0 0.0; - rel1.relative: 0.0 1.0; - rel1.to_x: "bg"; - rel1.to_y: "indicator"; - rel1.offset: 0 0; - rel2.relative: 1.0 0.0; - rel2.to_x: "bg"; - rel2.to_y: "toolbar_bg"; - rel2.offset: 0 -NOTIFY_HEIGHT; //for notify - visible: 1; - } - } - + }; part { name: "setasview.contents.swallow"; type: SWALLOW; scale: 1; repeat_events: 0; description { state: "default" 0.0; - rel1 { relative: 0 0; to:setasview.contents; } - rel2 { relative: 1 1; to:setasview.contents; } - visible: 1; - } - } - - part { name: "setasview.contents.swallow.notify"; - type: RECT; - scale: 1; - repeat_events: 0; - description { state: "default" 0.0; - rel1 { relative: 0 0; to:setasview.contents; } - rel2 { relative: 1 1; to:setasview.contents; offset: 0 NOTIFY_HEIGHT;} + rel1 { relative: 0.0 0.0; to:"setasview.contents"; } + rel2 { relative: 1.0 1.0; to:"setasview.contents"; } visible: 1; } } @@ -116,8 +74,8 @@ collections { description { state: "default" 0.0; visible: 1; - rel1 { relative: 0 0; to:setasview.contents; } - rel2 { relative: 1 1; to:setasview.contents; } + rel1 { relative: 0.0 0.0; to:"setasview.contents"; } + rel2 { relative: 1.0 1.0; to:"setasview.contents"; } } } @@ -131,8 +89,8 @@ collections { state: "default" 0.0; align: 0.5 0.5; visible: 1; - rel1 { relative: 0 0; to:setasview.contents; } - rel2 { relative: 1 1; to:setasview.contents; } + rel1 { relative: 0.0 0.0; to:"setasview.contents"; } + rel2 { relative: 1.0 1.0; to:"setasview.contents"; } } } @@ -172,31 +130,69 @@ collections { name: "setasview.scissorbox"; type: SWALLOW; mouse_events: 1; - repeat_events: 1; + repeat_events: 0; scale: 1; description { state: "default" 0.0; - visible: 0; - rel1 { relative: 0 0; to:setasview.contents; } - rel2 { relative: 1 1; to:setasview.contents; } + visible: 1; + rel1 { relative: 0.0 0.0; to:"setasview.contents"; } + rel2 { relative: 1.0 1.0; to:"setasview.contents"; } + } + } + part { name: "setasview.contents.text.notify"; + type: TEXT; + scale: 1; + description { + state: "default" 0.0; + min: 0 64; + fixed: 0 1; + rel1 { relative: 0.0 0.0; to: "notify.pad.16"; } + rel2 { relative: 1.0 0.0; to: "notify.pad.16"; } + align: 0.5 1.0; + color: 250 250 250 255; + text { + font: "Tizen:style=Roman"; + size: 32; + min: 0 1; + align: 0.5 0.5; + text_class: "tizen"; + } } } - part { name: "toolbar_bg"; - type: RECT; + part { + name: "notify.pad.16"; + type: SPACER; scale: 1; - description { state: "default" 0.0; - min: 0 NAVIFRAME_TOOLBAR_HEIGHT_INC; - max: 999999 NAVIFRAME_TOOLBAR_HEIGHT_INC; + description { + state: "default" 0.0; + min: 0 16; fixed: 0 1; - align: 0.0 1.0; - visible: 0; - rel1 { to: "bg"; } - rel2 { to: "bg"; } - color: NAVIFRAME_TOOLBAR_BG_COLOR_INC; + align: 0.5 1.0; + rel1 { relative: 0.0 0.0; to: "elm.swallow.toolbar"; } + rel2 { relative: 1.0 0.0; to: "elm.swallow.toolbar"; } } } + part { + name: "elm.swallow.toolbar"; // Toolbar on bottom side + scale: 1; + type: SWALLOW; + description { + state: "default" 0.0; + visible: 1; + min: 0 TOOLBAR_LARGE_HEIGHT_INC; + fixed: 0 1; + align: 0.5 1.0; + rel1 { relative: 0.0 1.0; to: "bg";} + rel2 { relative: 1.0 1.0; to: "bg";} + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } } programs { program { diff --git a/main/layout/ivug-slider-new-hd.edc b/main/layout/ivug-slider-new-hd.edc new file mode 100755 index 0000000..3f229c0 --- /dev/null +++ b/main/layout/ivug-slider-new-hd.edc @@ -0,0 +1,589 @@ +/* +* Copyright (c) 2000-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 PV_IMAGE_VIEW_FLICK_TIMER 0.3 +#define ICON_PLAY_VIDEO_260x260 "metaphore/T01-1_album_video_play.png" + +collections { + group { + name: "slider_new"; + images { + image: ICON_PLAY_VIDEO_260x260 COMP; + } + parts{ + part { + name: "glsurface"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + scale:1; + description { + state: "default" 0.0; + color: 0 0 0 255; + rel1.relative: 0.0 0.0; + +// When Pixmap size is changed( rotate ), we should re-create pixmap with changed size. +// But this procedure takes some time( ~ several mili-second) +// So we fixs it'size to 1280x1280 and just change view port size. + align: 0.5 0.5; + min: 300 493; + max: 300 493; + fixed: 1 1; + } + description { + state: "defualt_select_mode" 0.0; + color: 0 0 0 255; + rel1.relative: 0.0 0.0; + align: 0.0 0.5; + min: 300 460; + max: 300 460; + fixed: 1 1; + } + description { + state: "landscape" 0.0; + color: 0 0 0 255; + rel1.relative: 0.0 0.0; + +// When Pixmap size is changed( rotate ), we should re-create pixmap with changed size. +// But this procedure takes some time( ~ several mili-second) +// So we fixs it'size to 1280x1280 and just change view port size. + align: 0.5 0.5; + min: 480 277; + max: 480 277; + fixed: 1 1; + } + description { + state: "landscape_select_mode" 0.0; + color: 0 0 0 255; + rel1.relative: 0.0 0.0; + align: 0.5 1; + min: 480 245; + max: 480 245; + fixed: 1 1; + } + } + part { + name: "event_box"; // Getting event + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + scale:1; + description { + state: "default" 0.0; + color: 0 0 0 0; + rel1.relative: 0.0 0.0; + align: 0.0 0.0; + min: 240 320; + max: 240 320; + fixed: 1 1; + } + } + part { + name: "slider.event"; + type: RECT; + mouse_events: 1; + repeat_events: 1; + scale:1; + description { + state: "default" 0.0; + color: 0 0 0 0; + rel1.relative: 0.0 0.0; + rel2.relative: 1.0 1.0; + visible: 1; + } + } + + /* image view area */ + part { + name: "imageview_area"; + mouse_events: 1; + repeat_events: 1; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + align: 0.0 0.0; + visible: 1; + rel1 { + relative: 0 0; + to: "glsurface"; + } + rel2 { + relative: 1 1; + to: "glsurface"; + } + color: 0 0 0 0; + } + description { + state: "stop" 0.0; + align: 0 0; + visible: 1; + rel1 { + relative: 0 0; + to: "glsurface"; + } + rel2 { + relative: 1 1; + to: "glsurface"; + } + color: 0 0 0 0; + } + description { + state: "left" 0.0; + inherit: "default" 0.0; + rel1 { + relative: -1 0; + to: "glsurface"; + } + rel2 { + relative: 0 1; + to: "glsurface"; + } + } + description { + state: "right" 0.0; + inherit: "default" 0.0; + rel1 { + relative: 1 0; + to: "glsurface"; + } + rel2 { + relative: 2 1; + to: "glsurface"; + } + } + } + + /* temp image view area */ + part { + name: "imageview_area_temp2"; + mouse_events: 1; + repeat_events: 1; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + align: 0 0; + visible: 1; + rel1 { + relative: 0 0; + to: "glsurface"; + } + rel2 { + relative: 1 1; + to: "glsurface"; + } + color: 0 0 0 0; + } + description { + state: "stop" 0.0; + align: 0 0; + visible: 1; + rel1 { + relative: 0 0; + to: "glsurface"; + } + rel2 { + relative: 1 1; + to: "glsurface"; + } + color: 0 0 0 0; + } + description { + state: "left" 0.0; + inherit: "default" 0.0; + rel1 { + relative: -1 0; + to: "glsurface"; + } + rel2 { + relative: 0 1; + to: "glsurface"; + } + } + description { + state: "right" 0.0; + inherit: "default" 0.0; + rel1 { + relative: 1 0; + to: "glsurface"; + } + rel2 { + relative: 2 1; + to: "glsurface"; + } + } + description { state: "invisible" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { + name: "imageview_area_temp0"; + mouse_events: 1; + repeat_events: 1; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + align: 0 0; + visible: 1; + rel1 { + relative: 0 0; + to: "glsurface"; + } + rel2 { + relative: 1 1; + to: "glsurface"; + } + color: 0 0 0 0; + } + description { + state: "stop" 0.0; + align: 0 0; + visible: 1; + rel1 { + relative: 0 0; + to: "glsurface"; + } + rel2 { + relative: 1 1; + to: "glsurface"; + } + color: 0 0 0 0; + } + description { + state: "left" 0.0; + inherit: "default" 0.0; + rel1 { + relative: -1 0; + to: "glsurface"; + } + rel2 { + relative: 0 1; + to: "glsurface"; + } + } + description { + state: "right" 0.0; + inherit: "default" 0.0; + rel1 { + relative: 1 0; + to: "glsurface"; + } + rel2 { + relative: 2 1; + to: "glsurface"; + } + } + description { state: "invisible" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { + name: "Dummy_ForeGround"; + mouse_events: 1; + repeat_events: 1; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + align: 0 0; + visible: 0; + rel1 { + relative: 0 0; + to: "glsurface"; + } + rel2 { + relative: 1 1; + to: "glsurface"; + } + color: 0 0 0 255; + } + description { + state: "show" 0.0; + align: 0 0; + visible: 1; + rel1 { + relative: 0 0; + to: "glsurface"; + } + rel2 { + relative: 1 1; + to: "glsurface"; + } + color: 0 0 0 255; + } + } + part { + name: "video_play_icon"; + type: IMAGE; + mouse_events: 1; + repeat_events: 1; + scale: 0.2; + description { + state: "default" 0.0; + align: 0.5 0.5; + min: 96 96 ; + max: 96 96 ; + visible : 1 ; + image.normal : ICON_PLAY_VIDEO_260x260 ; + fixed: 1 1; + } + description { + state: "hide" 0.0; + align: 0.5 0.5; + min: 96 96 ; + max: 96 96 ; + visible : 0 ; + image.normal : ICON_PLAY_VIDEO_260x260 ; + fixed: 1 1; + } + } + } + script { + public t; + public Toggler(val) + { + if (val == 1) { + cancel_timer(t); + set_state(PART:"Dummy_ForeGround","default",0.0); + } else { + set_state(PART:"Dummy_ForeGround","show",0.0); + t = timer(0.01,"Toggler",val + 1); + } + } + } + programs { + program { + name: "video_icon_hide"; + signal: "hide,icon"; + source: "video_play_icon"; + action: STATE_SET "hide" 0.0; + target: "video_play_icon"; + } + program { + name: "video_icon_show"; + signal: "show,icon"; + source: "video_play_icon"; + action: STATE_SET "default" 0.0; + target: "video_play_icon"; + } + program { + name:"video_icon_clicked"; + source:"video_play_icon"; + signal : "mouse,down,1" ; + action: SIGNAL_EMIT "play" "elm"; + } + program { + name: "landscape"; + signal: "set_landscape"; + source: "glsurface"; + action: STATE_SET "landscape" 0.0; + target: "glsurface"; + } + program { + name: "Show_Dummy_ForeGround_landscape"; + signal: "set_landscape"; + source: "glsurface"; + script { + Toggler(0); + } + } + program { + name: "portrait"; + signal: "set_portrait"; + source: "glsurface"; + action: STATE_SET "default" 0.0; + target: "glsurface"; + } + program { + name: "Show_Dummy_ForeGround_portrait"; + signal: "set_portrait"; + source: "glsurface"; + script { + Toggler(0); + } + } + program { + name: "select_view_landscape"; + signal: "set_select_view_landscape"; + source: "glsurface"; + action: STATE_SET "landscape_select_mode" 0.0; + target: "glsurface"; + } + program { + name: "Show_Dummy_ForeGround_landscape_select_view"; + signal: "set_select_view_landscape"; + source: "glsurface"; + script { + Toggler(0); + } + } + program { + name: "select_view_portrait"; + signal: "set_select_view_portrait"; + source: "glsurface"; + action: STATE_SET "defualt_select_mode" 0.0; + target: "glsurface"; + } + program { + name: "Show_Dummy_ForeGround_portrait_select_view"; + signal: "set_select_view_portrait"; + source: "glsurface"; + script { + Toggler(0); + } + } + program { + name: "flick_left"; + signal: "flick_left"; + source: "imageview_area"; + action: STATE_SET "left" 0.0; + target: "imageview_area"; + transition: LINEAR PV_IMAGE_VIEW_FLICK_TIMER CURRENT; + } + program { + name: "flick_left_temp2"; + signal: "flick_left"; + source: "imageview_area_temp2"; + action: STATE_SET "left" 0.0; + target: "imageview_area_temp2"; + transition: LINEAR PV_IMAGE_VIEW_FLICK_TIMER CURRENT; + } + program { + name: "flick_left_temp0"; + signal: "flick_left"; + source: "imageview_area_temp0"; + action: STATE_SET "left" 0.0; + target: "imageview_area_temp0"; + transition: LINEAR PV_IMAGE_VIEW_FLICK_TIMER CURRENT; + } + program { + name: "flick_right"; + signal: "flick_right"; + source: "imageview_area"; + action: STATE_SET "right" 0.0; + target: "imageview_area"; + transition: LINEAR PV_IMAGE_VIEW_FLICK_TIMER CURRENT; + } + program { + name: "flick_right_temp0"; + signal: "flick_right"; + source: "imageview_area_temp0"; + action: STATE_SET "right" 0.0; + target: "imageview_area_temp0"; + transition: LINEAR PV_IMAGE_VIEW_FLICK_TIMER CURRENT; + } + program { + name: "flick_right_temp2"; + signal: "flick_right"; + source: "imageview_area_temp2"; + action: STATE_SET "right" 0.0; + target: "imageview_area_temp2"; + transition: LINEAR PV_IMAGE_VIEW_FLICK_TIMER CURRENT; + } + program { + name: "set_right_temp2"; + signal: "set_right"; + source: "imageview_area_temp2"; + action: STATE_SET "right" 0.0; + target: "imageview_area_temp2"; + } + program { + name: "set_right_temp0"; + signal: "set_right"; + source: "imageview_area_temp0"; + action: STATE_SET "right" 0.0; + target: "imageview_area_temp0"; + } + program { + name: "set_right"; + signal: "set_right"; + source: "imageview_area"; + action: STATE_SET "right" 0.0; + target: "imageview_area"; + } + program { + name: "set_left_temp0"; + signal: "set_left"; + source: "imageview_area_temp0"; + action: STATE_SET "left" 0.0; + target: "imageview_area_temp0"; + } + program { + name: "set_left"; + signal: "set_left"; + source: "imageview_area"; + action: STATE_SET "left" 0.0; + target: "imageview_area"; + } + program { + name: "set_left_temp2"; + signal: "set_left"; + source: "imageview_area_temp2"; + action: STATE_SET "left" 0.0; + target: "imageview_area_temp2"; + } + program { + name: "set_default_temp"; + signal: "set_default"; + source: "imageview_area_temp2"; + action: STATE_SET "default" 0.0; + target: "imageview_area_temp2"; + transition: LINEAR PV_IMAGE_VIEW_FLICK_TIMER CURRENT; + } + program { + name: "set_stop_temp2"; + signal: "set_stop"; + source: "imageview_area_temp2"; + action: STATE_SET "stop" 0.0; + target: "imageview_area_temp2"; + } + program { + name: "set_stop"; + signal: "set_stop"; + source: "imageview_area"; + action: STATE_SET "stop" 0.0; + target: "imageview_area"; + } + program { + name: "set_stop_temp0"; + signal: "set_stop"; + source: "imageview_area_temp0"; + action: STATE_SET "stop" 0.0; + target: "imageview_area_temp0"; + } + program { + name: "set_default"; + signal: "set_default"; + source: "imageview_area"; + action: STATE_SET "default" 0.0; + target: "imageview_area"; + after : "set_default_temp_invsible"; + } + program { + name: "set_default_temp_invsible"; + signal: "set_temp_invsible"; + source: "imageview_area_temp2"; + action: STATE_SET "invisible" 0.0; + target: "imageview_area_temp2"; + } + } + } +} diff --git a/main/layout/ivug-slider-new.edc b/main/layout/ivug-slider-new.edc new file mode 100755 index 0000000..b6d2e3b --- /dev/null +++ b/main/layout/ivug-slider-new.edc @@ -0,0 +1,605 @@ +/* +* Copyright (c) 2000-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 PV_IMAGE_VIEW_FLICK_TIMER 0.3 +#define ICON_PLAY_VIDEO_260x260 "metaphore/T01-1_album_video_play.png" + +collections { + group { + name: "slider_new"; + images { + image: ICON_PLAY_VIDEO_260x260 COMP; + } + parts{ + part { + name: "glsurface"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + scale:1; + description { + state: "default" 0.0; + color: 0 0 0 255; + //color: 0 255 0 255; + rel1.relative: 0.0 0.0; + +// When Pixmap size is changed( rotate ), we should re-create pixmap with changed size. +// But this procedure takes some time( ~ several mili-second) +// So we fixs it'size to 1280x1280 and just change view port size. + align: 0.5 0.5; + min: 267 444; + max: 267 444; +// min: 480 800; +// max: 480 800; + fixed: 1 1; + } + description { + state: "defualt_select_mode" 0.0; + color: 0 0 0 255; + rel1.relative: 0.0 0.0; + align: 0.0 0.5; + min: 267 403; + max: 267 403; + fixed: 1 1; + } + description { + state: "landscape" 0.0; + color: 0 0 0 255; + //color: 0 255 0 255; + rel1.relative: 0.0 0.0; + +// When Pixmap size is changed( rotate ), we should re-create pixmap with changed size. +// But this procedure takes some time( ~ several mili-second) +// So we fixs it'size to 1280x1280 and just change view port size. + align: 0.5 0.5; + min: 444 267; + max: 444 267; +// min: 480 800; +// max: 480 800; + fixed: 1 1; + } + description { + state: "landscape_select_mode" 0.0; + color: 0 0 0 255; + rel1.relative: 0.0 0.0; + align: 0.5 1; + min: 444 226; + max: 444 226; + fixed: 1 1; + } + } + part { + name: "event_box"; // Getting event + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + scale:1; + description { + state: "default" 0.0; + color: 0 0 0 0; + rel1.relative: 0.0 0.0; + align: 0.0 0.0; + min: 240 320; + max: 240 320; + fixed: 1 1; + + } + } + + part { + name: "slider.event"; + type: RECT; + mouse_events: 1; + repeat_events: 1; + scale:1; + description { + state: "default" 0.0; + color: 0 0 0 0; + rel1.relative: 0.0 0.0; + rel2.relative: 1.0 1.0; + visible: 1; + } + } + + + /* image view area */ + part { + name: "imageview_area"; + mouse_events: 1; + repeat_events: 1; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + align: 0.0 0.0; + visible: 1; + rel1 { + relative: 0 0; + to: "glsurface"; + } + rel2 { + relative: 1 1; + to: "glsurface"; + } + color: 0 0 0 0; + } + description { + state: "stop" 0.0; + align: 0 0; + visible: 1; + rel1 { + relative: 0 0; + to: "glsurface"; + } + rel2 { + relative: 1 1; + to: "glsurface"; + } + color: 0 0 0 0; + } + description { + state: "left" 0.0; + inherit: "default" 0.0; + rel1 { + relative: -1 0; + to: "glsurface"; + } + rel2 { + relative: 0 1; + to: "glsurface"; + } + } + description { + state: "right" 0.0; + inherit: "default" 0.0; + rel1 { + relative: 1 0; + to: "glsurface"; + } + rel2 { + relative: 2 1; + to: "glsurface"; + } + } + } + /* temp image view area */ + part { + name: "imageview_area_temp2"; + mouse_events: 1; + repeat_events: 1; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + align: 0 0; + visible: 1; + rel1 { + relative: 0 0; + to: "glsurface"; + } + rel2 { + relative: 1 1; + to: "glsurface"; + } + color: 0 0 0 0; + } + description { + state: "stop" 0.0; + align: 0 0; + visible: 1; + rel1 { + relative: 0 0; + to: "glsurface"; + } + rel2 { + relative: 1 1; + to: "glsurface"; + } + color: 0 0 0 0; + } + description { + state: "left" 0.0; + inherit: "default" 0.0; + rel1 { + relative: -1 0; + to: "glsurface"; + } + rel2 { + relative: 0 1; + to: "glsurface"; + } + } + description { + state: "right" 0.0; + inherit: "default" 0.0; + rel1 { + relative: 1 0; + to: "glsurface"; + } + rel2 { + relative: 2 1; + to: "glsurface"; + } + } + description { state: "invisible" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { + name: "imageview_area_temp0"; + mouse_events: 1; + repeat_events: 1; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + align: 0 0; + visible: 1; + rel1 { + relative: 0 0; + to: "glsurface"; + } + rel2 { + relative: 1 1; + to: "glsurface"; + } + color: 0 0 0 0; + } + description { + state: "stop" 0.0; + align: 0 0; + visible: 1; + rel1 { + relative: 0 0; + to: "glsurface"; + } + rel2 { + relative: 1 1; + to: "glsurface"; + } + color: 0 0 0 0; + } + description { + state: "left" 0.0; + inherit: "default" 0.0; + rel1 { + relative: -1 0; + to: "glsurface"; + } + rel2 { + relative: 0 1; + to: "glsurface"; + } + } + description { + state: "right" 0.0; + inherit: "default" 0.0; + rel1 { + relative: 1 0; + to: "glsurface"; + } + rel2 { + relative: 2 1; + to: "glsurface"; + } + } + description { state: "invisible" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { + name: "Dummy_ForeGround"; + mouse_events: 1; + repeat_events: 1; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + align: 0 0; + visible: 0; + rel1 { + relative: 0 0; + to: "glsurface"; + } + rel2 { + relative: 1 1; + to: "glsurface"; + } + color: 0 0 0 255; + } + description { + state: "show" 0.0; + align: 0 0; + visible: 1; + rel1 { + relative: 0 0; + to: "glsurface"; + } + rel2 { + relative: 1 1; + to: "glsurface"; + } + color: 0 0 0 255; + } + } + part { + name: "video_play_icon"; + type: IMAGE; + mouse_events: 1; + repeat_events: 1; + scale: 0.2; + description { + state: "default" 0.0; + align: 0.5 0.5; + min: 96 96 ; + max: 96 96 ; + visible : 1 ; + image.normal : ICON_PLAY_VIDEO_260x260 ; + fixed: 1 1; + } + description { + state: "hide" 0.0; + align: 0.5 0.5; + min: 96 96 ; + max: 96 96 ; + visible : 0 ; + image.normal : ICON_PLAY_VIDEO_260x260 ; + fixed: 1 1; + } + } + } + script { + public t; + public Toggler(val) + { + if (val == 1) { + cancel_timer(t); + set_state(PART:"Dummy_ForeGround","default",0.0); + } else { + set_state(PART:"Dummy_ForeGround","show",0.0); + t = timer(0.01,"Toggler",val + 1); + } + } + } + programs { + program { + name: "video_icon_hide"; + signal: "hide,icon"; + source: "video_play_icon"; + action: STATE_SET "hide" 0.0; + target: "video_play_icon"; + } + program { + name: "video_icon_show"; + signal: "show,icon"; + source: "video_play_icon"; + action: STATE_SET "default" 0.0; + target: "video_play_icon"; + } + program { + name:"video_icon_clicked"; + source:"video_play_icon"; + signal : "mouse,down,1" ; + action: SIGNAL_EMIT "play" "elm"; + } + program { + name: "landscape"; + signal: "set_landscape"; + source: "glsurface"; + action: STATE_SET "landscape" 0.0; + target: "glsurface"; + } + program { + name: "Show_Dummy_ForeGround_landscape"; + signal: "set_landscape"; + source: "glsurface"; + script { + Toggler(0); + } + } + program { + name: "portrait"; + signal: "set_portrait"; + source: "glsurface"; + action: STATE_SET "default" 0.0; + target: "glsurface"; + } + program { + name: "Show_Dummy_ForeGround_portrait"; + signal: "set_portrait"; + source: "glsurface"; + script { + Toggler(0); + } + } + program { + name: "select_view_landscape"; + signal: "set_select_view_landscape"; + source: "glsurface"; + action: STATE_SET "landscape_select_mode" 0.0; + target: "glsurface"; + } + program { + name: "Show_Dummy_ForeGround_landscape_select_view"; + signal: "set_select_view_landscape"; + source: "glsurface"; + script { + Toggler(0); + } + } + program { + name: "select_view_portrait"; + signal: "set_select_view_portrait"; + source: "glsurface"; + action: STATE_SET "defualt_select_mode" 0.0; + target: "glsurface"; + } + program { + name: "Show_Dummy_ForeGround_portrait_select_view"; + signal: "set_select_view_portrait"; + source: "glsurface"; + script { + Toggler(0); + } + } + program { + name: "flick_left"; + signal: "flick_left"; + source: "imageview_area"; + action: STATE_SET "left" 0.0; + target: "imageview_area"; + transition: LINEAR PV_IMAGE_VIEW_FLICK_TIMER CURRENT; + } + program { + name: "flick_left_temp2"; + signal: "flick_left"; + source: "imageview_area_temp2"; + action: STATE_SET "left" 0.0; + target: "imageview_area_temp2"; + transition: LINEAR PV_IMAGE_VIEW_FLICK_TIMER CURRENT; + } + program { + name: "flick_left_temp0"; + signal: "flick_left"; + source: "imageview_area_temp0"; + action: STATE_SET "left" 0.0; + target: "imageview_area_temp0"; + transition: LINEAR PV_IMAGE_VIEW_FLICK_TIMER CURRENT; + } + program { + name: "flick_right"; + signal: "flick_right"; + source: "imageview_area"; + action: STATE_SET "right" 0.0; + target: "imageview_area"; + transition: LINEAR PV_IMAGE_VIEW_FLICK_TIMER CURRENT; + } + program { + name: "flick_right_temp0"; + signal: "flick_right"; + source: "imageview_area_temp0"; + action: STATE_SET "right" 0.0; + target: "imageview_area_temp0"; + transition: LINEAR PV_IMAGE_VIEW_FLICK_TIMER CURRENT; + } + program { + name: "flick_right_temp2"; + signal: "flick_right"; + source: "imageview_area_temp2"; + action: STATE_SET "right" 0.0; + target: "imageview_area_temp2"; + transition: LINEAR PV_IMAGE_VIEW_FLICK_TIMER CURRENT; + } + program { + name: "set_right_temp2"; + signal: "set_right"; + source: "imageview_area_temp2"; + action: STATE_SET "right" 0.0; + target: "imageview_area_temp2"; + } + program { + name: "set_right_temp0"; + signal: "set_right"; + source: "imageview_area_temp0"; + action: STATE_SET "right" 0.0; + target: "imageview_area_temp0"; + } + program { + name: "set_right"; + signal: "set_right"; + source: "imageview_area"; + action: STATE_SET "right" 0.0; + target: "imageview_area"; + } + program { + name: "set_left_temp0"; + signal: "set_left"; + source: "imageview_area_temp0"; + action: STATE_SET "left" 0.0; + target: "imageview_area_temp0"; + } + program { + name: "set_left"; + signal: "set_left"; + source: "imageview_area"; + action: STATE_SET "left" 0.0; + target: "imageview_area"; + } + program { + name: "set_left_temp2"; + signal: "set_left"; + source: "imageview_area_temp2"; + action: STATE_SET "left" 0.0; + target: "imageview_area_temp2"; + } + program { + name: "set_default_temp"; + signal: "set_default"; + source: "imageview_area_temp2"; + action: STATE_SET "default" 0.0; + target: "imageview_area_temp2"; + transition: LINEAR PV_IMAGE_VIEW_FLICK_TIMER CURRENT; + //after :"imageview_area_transit_done"; + } + program { + name: "set_stop_temp2"; + signal: "set_stop"; + source: "imageview_area_temp2"; + action: STATE_SET "stop" 0.0; + target: "imageview_area_temp2"; + //transition: LINEAR PV_IMAGE_VIEW_FLICK_TIMER CURRENT; + //after :"imageview_area_transit_done"; + } + program { + name: "set_stop"; + signal: "set_stop"; + source: "imageview_area"; + action: STATE_SET "stop" 0.0; + target: "imageview_area"; + // after : "set_default_temp_invsible"; + // transition: LINEAR PV_IMAGE_VIEW_FLICK_TIMER CURRENT; + //after : "imageview_area_transit_done"; + } + program { + name: "set_stop_temp0"; + signal: "set_stop"; + source: "imageview_area_temp0"; + action: STATE_SET "stop" 0.0; + target: "imageview_area_temp0"; + //transition: LINEAR PV_IMAGE_VIEW_FLICK_TIMER CURRENT; + //after :"imageview_area_transit_done"; + } + program { + name: "set_default"; + signal: "set_default"; + source: "imageview_area"; + action: STATE_SET "default" 0.0; + target: "imageview_area"; + after : "set_default_temp_invsible"; + } + program { + name: "set_default_temp_invsible"; + signal: "set_temp_invsible"; + source: "imageview_area_temp2"; + action: STATE_SET "invisible" 0.0; + target: "imageview_area_temp2"; + } + } + } +} diff --git a/main/layout/ivug-slider.edc b/main/layout/ivug-slider.edc index 51c0aaa..b102878 100755 --- a/main/layout/ivug-slider.edc +++ b/main/layout/ivug-slider.edc @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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. +* +*/ // slider layout @@ -21,11 +22,6 @@ group { name: "slider"; - images { - image: "T01_btn_play.png" COMP; - image: "T01_btn_paused.png" COMP; - } - parts { part { name: "background"; @@ -72,42 +68,27 @@ group { visible: 1; } } -#if 0 - part { name: "clipper"; - type: RECT; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - color: 128 255 255 255; - visible: 1; - rel1 { relative: 0.0 0.0;} - rel2 { relative: 1.0 1.0;} - } - } -#endif - #if 1 part { name: "slider.icon"; type: SWALLOW; mouse_events: 1; scale: 1; description { - state: "default" 0.0; + state: "default" 0.0; align: 0.5 0.5; - visible: 0; + visible: 0; fixed: 1 1; max: 72 72; - rel1 { relative: 0.0 0.0; } - rel2 { relative: 1.0 1.0; } - } + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 1.0; } + } description { state: "show" 0.0; inherit: "default" 0.0; - visible: 1; - } - } + visible: 1; + } + } #endif part { name: "slider.progress"; diff --git a/main/layout/ivug-slideshow-view.edc b/main/layout/ivug-slideshow-view.edc deleted file mode 100755 index 26cb515..0000000 --- a/main/layout/ivug-slideshow-view.edc +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ - -collections { - group { - name: "ssview"; - parts { - part { name: "background"; - type: RECT; - scale: 1; - description { - state: "default" 0.0; - color: 0 0 0 0; // Invisible area - visible: 1; - rel1 { relative: 0.0 0.0;} - rel2 { relative: 1.0 1.0;} - } - } - } - } -} diff --git a/main/layout/ivug-tag-buddy.edc b/main/layout/ivug-tag-buddy.edc new file mode 100755 index 0000000..f887dbc --- /dev/null +++ b/main/layout/ivug-tag-buddy.edc @@ -0,0 +1,298 @@ +/* +* Copyright (c) 2000-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 PADDING_COLOR 255 0 0 0 + +#define DOCK_PART_PADDING_LEFT(param_name, param_padding_size ) \ + part { name: param_name; \ + type: SPACER; \ + scale: 1; \ + description { state: "default" 0.0; \ + min: param_padding_size 0; \ + fixed: 1 0; \ + rel1.relative: 0.0 0.0; \ + rel2.relative: 0.0 1.0; \ + align: 0.0 0.5; \ + } \ + } +//"elm.padding.right" +#define DOCK_PART_PADDING_RIGHT(param_name, param_padding_size ) \ + part { name: param_name; \ + type: SPACER; \ + scale: 1; \ + description { state: "default" 0.0; \ + min: param_padding_size 0; \ + fixed: 1 0; \ + rel1.relative: 1.0 0.0; \ + rel2.relative: 1.0 1.0; \ + align: 1.0 0.5; \ + } \ + } +//"elm.padding.top" +#define DOCK_PART_PADDING_TOP(param_name, param_padding_size ) \ + part { name: param_name; \ + type: SPACER; \ + scale: 1; \ + description { state: "default" 0.0; \ + min: 0 param_padding_size; \ + fixed: 0 1; \ + rel2.relative: 1.0 0.0; \ + align: 0.5 0.0; \ + } \ + } +//"elm.padding.bottom" +#define DOCK_PART_PADDING_BOTTOM(param_name, param_padding_size ) \ + part { name: param_name; \ + type: SPACER; \ + scale: 1; \ + description { state: "default" 0.0; \ + min: 0 param_padding_size; \ + fixed: 0 1; \ + rel1.relative: 0.0 1.0; \ + rel2.relative: 1.0 1.0; \ + align: 0.5 1.0; \ + } \ + } + + +collections { + + group { + name: "tag_buddy"; + parts{ + part { name: "clipper"; + type: RECT; + scale:1; + description { + state: "default" 0.0; + color: 255 255 255 255; + visible: 1; + rel1.to: "bg"; + rel2.to: "bg"; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + color: 255 255 255 0; + } + } + + part { + name: "bg"; + type: RECT; + scale: 1; + clip_to: "clipper"; + description { + state: "default" 0.0; + rel1 { + relative: 0.0 0.0; + to_y: "top.pad.16"; + } + + rel2 { + relative: 1.0 1.0; + } + color: 0 0 0 128; + visible: 0; + } + + description { + state: "hide" 0.0; // only name is hide. actually this is shown state. + inherit: "default" 0.0; + visible: 0; + } + + description { + state: "show" 0.0; // only name is hide. actually this is shown state. + inherit: "default" 0.0; + visible: 1; + } + + } + + DOCK_PART_PADDING_BOTTOM("tag_buddy_bottom", 56); + + part { name: "tag_buddy_left"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 24 0; + fixed: 1 0; + rel1.relative: 0.0 0.0; + rel2.relative: 0.0 1.0; + align: 0.0 0.5; + } + } + + part { name: "tag_buddy_right"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 24 0; + fixed: 1 0; + rel1.relative: 1.0 0.0; + rel2.relative: 1.0 1.0; + align: 1.0 0.5; + } + } + part { + name: "top.pad.16"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + rel1 { + relative: 0.0 0.0; + to_y: "content"; + } + rel2 { + relative: 1.0 0.0; + to_y: "content"; + } + align: 0.5 1.0; + min: 0 16; + fixed: 0 1; + } + } + + part { + name: "content"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + scale:1; + clip_to: "clipper"; + description { + state: "default" 0.0; + visible: 1; + fixed: 1 1; + align: 0.5 1.0; + rel1 { relative: 1.0 0.0; + to_x: "tag_buddy_left"; + to_y: "tag_buddy_bottom"; + } + + rel2 { relative: 0.0 0.0; + to_x: "tag_buddy_right"; + to_y: "tag_buddy_bottom"; + } + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + + description { + state: "show" 0.0; // only name is hide. actually this is shown state. + inherit: "default" 0.0; + visible: 1; + } + } + } + programs { + program { + name: "click"; + signal: "mouse,down,1"; + source: "content"; + action: SIGNAL_EMIT "elm,action,press" ""; + } + program { + name: "hide_content"; + signal: "tag_buddy,hide"; + source: "elm"; + action: STATE_SET "hide" 0.0; + transition: LINEAR 0.3; + target: "clipper"; + after: "hide_finished"; + } + + program { + name: "hide_finished"; + action: STATE_SET "hide" 0.0; + target: "bg"; + target: "content"; + after: "show_finished"; + } + + program { + name: "show_content"; + signal: "tag_buddy,show"; + source: "elm"; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.3; + target: "clipper"; + after: "show_finished"; + } + + program { + name: "show_finished"; + action: STATE_SET "show" 0.0; + target: "bg"; + target: "content"; + + } + } + } // End of Group + + styles { + style { name: "comment_font_style"; + base: "font=Tizen:style=Medium font_size=32 valign=top align=center ellipsis=1.0"; + tag: "br" "\n"; + tag: "tab" "\t"; + } + } + + group { + name: "comment"; + + parts { + part { name: "comment.bg"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + color: 0 0 0 0; + visible: 1; + rel1.to: "comment"; + rel2.to: "comment"; + } + } + + part { + name: "comment"; + type: TEXTBLOCK; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 1.0; } + text { + style: "comment_font_style"; + min: 0 0; + max: 0 0; + align: 0.5 0.0; + ellipsis: 1.0; + } + color: 255 255 255 255; + } + } + + } + } // End of Group - comment +} + diff --git a/main/layout/ivug-theme.edc b/main/layout/ivug-theme.edc deleted file mode 100755 index b22cc9b..0000000 --- a/main/layout/ivug-theme.edc +++ /dev/null @@ -1,225 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ - -/* -* Refer to themes/groups/naviframe.edc -*/ - -#define WHITE_THEME - -#ifdef BLUE_THEME - -#define GENLIST_PART_FONT_INDEX_LIST_COLOR_INC 240 240 240 255 -#define GENLIST_DIALOGUE_GROUP_BG_COLOR_INC 15 15 15 255 - -#define GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC "#F9F9F9FF" -#define GENLIST_PART_MATCH_TAG_COLOR_INC "+ color=#3F8DAD" - -#define GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_STYLE_COLOR_INC "#F9F9F9FF" -#define GENLIST_PART_FONT_LIST_SUB_TEXT_STYLE_COLOR_INC "#646464FF" -#define GENLIST_PART_FONT_FLEXIBLE_TEXT_MAIN_STYLE_COLOR_INC "#F9F9F9FF" -#define GENLIST_PART_FONT_FLEXIBLE_TEXT_SUB_STYLE_COLOR_INC "#959595FF" -#define GENLIST_PART_FONT_MULTILINE_TEXT_STYLE_COLOR_INC "#959595FF" -#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_READ_STYLE_COLOR_INC "#F9F9F9FF" -#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_UNREAD_STYLE_COLOR_INC "#F9F9F9FF" -#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_FOCUS_STYLE_COLOR_INC "#F9F9F9FF" -#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_2_STYLE_COLOR_INC "#F9F9F9FF"//"#688998FF" -#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_2_FOCUS_STYLE_COLOR_INC "#F9F9F9FF" -#define GENLIST_PART_FONT_HELP_TEXT_STYLE_COLOR_INC "#929292FF" - -#define GENLIST_PART_BG_COLOR_INC 0 0 0 0 - -#define GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC 249 249 249 255 -#define GENLIST_PART_TEXT_PRESS_COLOR_INC 249 249 249 255 - -#define GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC 100 100 100 255 - -#define GENLIST_PART_DISCLIP_COLOR_INC 255 255 255 64 - -#define GENLIST_PART_LIST_BG_COLOR_INC 0 0 0 0 -#define GENLIST_PART_LIST_LINE_COLOR_INC 68 68 68 0 -#define GENLIST_PART_LIST_PRESS_COLOR_INC 0 140 210 255 - -#define LAYOUT_INDICATOR_HEIGHT_INC 60 -#define LAYOUT_INDICATOR_COLOR_INC 41 61 94 255 // Same as Naviframe - -#define NAVIFRAME_TEXT_PADDING_INC 144 -#define NAVIFRAME_TEXT_PADDING_MORE_BUTTON_INC 278 -#define NAVIFRAME_TEXT_PADDING_ICON_VISIBLE_INC 186 - -#define NAVIFRAME_TITLE_H_INC 100 -#define NAVIFRAME_OH_CLOSED_H_INC 8 -#define NAVIFRAME_OH_OPENED_H_INC 106 -#define NAVIFRAME_OH_CONTENT_H_INC 74 -#define NAVIFRAME_OH_PADDING_INC 16 -#define NAVIFRAME_OH_OPENED_DOUBLE_H_INC 196 -#define NAVIFRAME_OH_SHADOW_H_INC 0 -#define NAVIFRAME_INDICATOR_W_INC 128 -#define NAVIFRAME_PADDING_EXPANDED_INC 141 -#define NAVIFRAME_TITLE_FONT_SIZE_INC 36 -#define NAVIFRAME_ICON_SIZE_INC 32 32 -#define NAVIFRAME_ICON_PADDING_INC 16 0 -#define NAVIFRAME_OH_ARROW_SIZE_INC 19 12 -#define NAVIFRAME_TITLE_TEXT_COLOR_INC 235 236 237 255 -#define NAVIFRAME_TITLE_BG_COLOR_INC 41 61 94 255 -#define NAVIFRAME_TITLE_LEFT_SEPARATOR_COLOR_INC 3 3 3 255 -#define NAVIFRAME_TITLE_RIGHT_SEPARATOR_COLOR_INC 52 52 52 255 -#define NAVIFRAME_OH_BORDER_INC 0 0 4 0 -#define NAVIFRAME_PADDING_INC 16 0 - -#define NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 10 -#define NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 10 -#define NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC 124 80 -#define NAVIFRAME_TITLE_PREV_BTN_BG_SIZE_INC 144 -#define NAVIFRAME_NO_BUTTON_ICON_PADDING_INC 52 -#define NAVIFRAME_CONTROLBAR_BG_COLOR_INC 25 35 51 255 -#define CONTROLBAR_LARGE_HEIGHT_INC 122 -#define CONTROLBAR_SMALL_HEIGHT_INC 114 -#define NAVIFRAME_PREV_BTN_W_INC 124 -#define NAVIFRAME_CONTROLBAR_PADDING_INC 5 -#define NAVIFRAME_SEGMENT_TITLE_H_INC 136 -#define NAVIFRAME_SEGMENT_TITLE_FUNC_BTN_SIZE_INC 118 62 - - -#define NAVIFRAME_TITLE_SEGMENT_FONT_SIZE_INC 28 -#define NAVIFRAME_TITLE_SEGMENT_TEXT_H_INC 50 -#define NAVIFRAME_TITLE_SEGMENT_H_INC 74 - -#elif WHITE_THEME - -// List bg color -#define GENLIST_LIST_BG_COLOR 248 246 239 102 -#define GENLIST_DIALOGUE_BG_COLOR 248 246 239 255 -#define GENLIST_LIST_PRESS_COLOR 87 135 194 255 -#define GENLIST_LIST_DIM_COLOR 219 217 212 255 -#define GENLIST_LIST_LINE1_COLOR 211 209 203 255 -#define GENLIST_LIST_LINE2_COLOR 255 255 255 255 -#define GENLIST_LIST_DIVIDER1_COLOR 185 184 178 255 -#define GENLIST_LIST_DIVIDER2_COLOR 255 255 255 255 -#define GENLIST_LIST_CENTERLINE1_COLOR 206 205 202 255 -#define GENLIST_SELECT_ALL_BG_COLOR 220 218 211 255 - -// Group Index -#define GENLIST_GROUPINDEX_LIST_SIZE 32 -#define GENLIST_GROUPINDEX_LIST_COLOR 59 115 182 255 -#define GENLIST_GROUPINDEX_LIST_FOCUS_COLOR 255 255 255 255 - -#define GENLIST_GROUPINDEX_LIST_BG_COLOR 248 246 239 255 -#define GENLIST_GROUPINDEX_LIST_PRESS_COLOR 132 162 198 255 -#define GENLIST_GROUPINDEX_LINE_COLOR 59 115 182 255 -#define GENLIST_GROUPINDEX_LINE_FOCUS_COLOR 255 255 255 255 - -// Genlist Text -#define GENLIST_LIST_MAIN_TEXT_SIZE 44 -#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR 0 0 0 255 -#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE "#000000FF" -#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR 0 0 0 102 -#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE "#00000066" -#define GENLIST_LIST_MAIN_TEXT_READ_COLOR 128 128 128 255 -#define GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR 128 128 128 204 -#define GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR 255 255 255 255 -#define GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR_STYLE "#FFFFFFFF" - -#define GENLIST_LIST_SUB_TEXT_SIZE 32 -#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR 128 128 128 255 -#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR_STYLE "#808080FF" -#define GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR 128 128 128 204 -#define GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR_STYLE "#808080CC" -#define GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR 59 115 182 255 -#define GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR_STYLE "#3B73B6FF" -#define GENLIST_LIST_SUB_TEXT_SETTINGS_DIM_COLOR 59 115 182 76 -#define GENLIST_LIST_SUB_TEXT_SETTINGS_DIM_COLOR_STYLE "#3B73B64C" -#define GENLIST_LIST_SUB_TEXT_FOCUS_COLOR 255 255 255 255 -#define GENLIST_LIST_SUB_TEXT_FOCUS_COLOR_STYLE "#FFFFFFFF" - -#define GENLIST_CONTENTS_TEXT_SIZE 28 -#define GENLIST_CONTENTS_TEXT_COLOR 128 128 128 255 -#define GENLIST_CONTENTS_TEXT_COLOR_STYLE "#808080FF" - -#define GENLIST_LIST_BUBBLE_TEXT_SIZE 32 -#define GENLIST_LIST_BUBBLE_TEXT_COLOR 249 249 249 255 - -// Dialogue group -#define GENLIST_DIALOGUE_GROUP_TITLE_SIZE 32 -#define GENLIST_DIALOGUE_GROUP_TITLE_COLOR 59 115 182 255 - -#define GENLIST_APPS_NAME_SIZE 30 -#define GENLIST_APPS_NAME_COLOR 128 128 128 255 -#define GENLIST_APPS_INC_SIZE 30 -#define GENLIST_APPS_INC_COLOR 0 0 0 255 -#define GENLIST_APPS_RATING_SIZE 24 -#define GENLIST_APPS_RATING_COLOR 128 128 128 255 -#define GENLIST_APPS_PRICE_SIZE 24 -#define GENLIST_APPS_PRICE_ORIGINAL_COLOR 59 115 182 255 -#define GENLIST_APPS_PRICE_SALE_COLOR 229 33 52 255 -#define GENLIST_APPS_PRICE_FREE_COLOR 59 115 182 255 - -#define DIALOGUE_PASSWORD_TITLE_SIZE 32 -#define DIALOGUE_PASSWORD_TITLE_COLOR 128 128 128 255 - -#define GENLIST_DIALOGUE_GROUP_HELP_TEXT_SIZE 32 -#define GENLIST_DIALOGUE_GROUP_HELP_TEXT_COLOR_STYLE "#808080FF" -#define GENLIST_PART_MATCH_TAG_COLOR "+ color=#3F8DAD" - - -#define LAYOUT_INDICATOR_HEIGHT_INC 60 -#define LAYOUT_INDICATOR_COLOR_INC 0 0 0 255 - -#define NAVIFRAME_TITLE_PREV_BTN_BG_SIZE_INC 144 //temp - -#define NAVIFRAME_TITLE_BG_COLOR_INC 248 246 239 0 //fixed by ivug -#define NAVIFRAME_TOOLBAR_BG_COLOR_INC 248 246 239 255 -#define NAVIFRAME_TITLE_TOP_PADDING_INC 0 32 -#define NAVIFRAME_TITLE_H_INC 111 -#define NAVIFRAME_TAB_TITLE_H_INC 165 -#define NAVIFRAME_TOOLBAR_HEIGHT_INC 98 -#define NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC 68 68 -#define NAVIFRAME_PREV_FUNC_BTN_SIZE_INC 60 60 -#define NAVIFRAME_TITLE_TAB_H_INC 68 -#define NAVIFRAME_TITLE_TAB_LARGE_H_INC 111 -#define NAVIFRAME_TITLE_TAB_FONT_SIZE_INC 44 -#define NAVIFRAME_TITLE_TAB_TEXT_H_INC 87 -#define NAVIFRAME_TITLE_FONT_SIZE_INC 56 -#define NAVIFRAME_TITLE_SMALL_FONT_SIZE_INC 44 -#define NAVIFRAME_ICON_SIZE_INC 38 38 -#define NAVIFRAME_PADDING_INC 16 0 -#define NAVIFRAME_PADDING2_INC 18 0 -#define NAVIFRAME_PADDING3_INC 8 0 -#define NAVIFRAME_BOTTOM_TEXT_PADDING_INC 0 11 -#define NAVIFRAME_BOTTOM_RIGHT_PADDING_INC 26 11 -#define NAVIFRAME_BOTTOM_PADDING_INC 0 10 -#define NAVIFRAME_TOOLBAR_BUTTON_BG_PADDING_INC 115 0 -#define NAVIFRAME_TOOLBAR_BUTTONS_PADDING_INC 15 -#define NAVIFRAME_ICON_PADDING_INC 70 0 -#define NAVIFRAME_TITLE_TEXT_COLOR_INC 255 255 255 255 // fixed by ivug -#define NAVIFRAME_SUBTITLE_TEXT_COLOR_INC 59 115 182 255 -#define NAVIFRAME_SUBTITLE_FONT_SIZE_INC 32 - -#define CONTROLBAR_LARGE_HEIGHT_INC 122 -#define CONTROLBAR_SMALL_HEIGHT_INC 114 - -#define GENGRID_FONT_STYLE_18_INC "26" -// #define GENGRID_PART_BG_COLOR_INC 0 0 0 0 -#define GENGRID_PART_BG_COLOR_INC 0 0 0 0 -// #define GENGRID_PART_ITEM_BG_COLOR_INC 239 239 239 255 -#define GENGRID_PART_ITEM_BG_COLOR_INC 0 0 0 255 -#define GENGRID_PART_REORDER_BG_COLOR_INC 0 0 0 128 -#define GENGRID_PART_TEXTBLOCK_STYLE_COLOR_INC "#F9F9F9" - -#endif - - - diff --git a/main/layout/ivug-thumblist.edc b/main/layout/ivug-thumblist.edc new file mode 100755 index 0000000..b7f3df4 --- /dev/null +++ b/main/layout/ivug-thumblist.edc @@ -0,0 +1,194 @@ +/* +* Copyright (c) 2000-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. +* +*/ + +#undef ENALBLE_SELECTED + +collections { + images { + image: "T01-1_thumbnail_focus.PNG" COMP; + } + + sounds { + sample { + name: "button-pressed" RAW; + source: "button-pressed.wav"; + } + } + + group { + name: "thumblist.item"; + + parts { + + part { name: "border"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + color: 63 63 63 255; + visible: 1; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 1.0; } + } + } + + part { name: "bg"; + type: SPACER; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; +// color: 0 0 0 0; +// visible: 1; + rel1 { relative: 0.0 0.0; offset: 1 1; } // Deflate by 1 + rel2 { relative: 1.0 1.0; offset: -2 -2; } + } + } + + part { name: "item"; + type: SWALLOW; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; to: "bg"; } + rel2 { relative: 1.0 1.0; to: "bg"; } + } + } + + part { name: "thumblist.vicon"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + align: 0.5 0.5; + min: 48 48; + fixed: 1 1; + rel1 { relative: 0.5 0.5; to: "bg"; } + rel2 { relative: 0.5 0.5; to: "bg"; } + } + + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + + } + + part { name: "thumblist.metaphore"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + align: 0.0 1.0; + min: 48 48; + fixed: 1 1; + rel1 { relative: 0.0 1.0; to: "bg"; } + rel2 { relative: 0.0 1.0; to: "bg"; } + } + + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + part { name: "focus_bg"; + type: IMAGE; + description { + state: "default" 0.0; + visible: 0; + rel1.to: "border"; + rel2.to: "border"; + image.normal: "T01-1_thumbnail_focus.PNG"; + image.border: 9 9 9 9; + } + description { + state: "enabled" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + } // parts + + programs { + program { + name: "hide_metaphore"; + signal: "thumbnail,hide,metaphore"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "thumblist.metaphore"; + } + program { + name: "show_metaphore"; + signal: "thumbnail,show,metaphore"; + source: "elm"; + action: STATE_SET "show" 0.0; + target: "thumblist.metaphore"; + } + program { + name: "hide_vicon"; + signal: "thumbnail,hide,vicon"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "thumblist.vicon"; + } + program { + name: "show_icon"; + signal: "thumbnail,show,vicon"; + source: "elm"; + action: STATE_SET "show" 0.0; + target: "thumblist.vicon"; + } + program { + name: "set_selected"; + signal: "elm,state,selected"; + source: "app"; + action: STATE_SET "enabled" 0.0; + target: "focus_bg"; + + } + program { + name: "set_unselected"; + signal: "elm,state,unselected"; + source: "app"; + action: STATE_SET "default" 0.0; + target: "focus_bg"; + + } + + program { name: "play_sound"; + signal: "mouse,clicked,1"; + source: "item"; + after: "play_button_press"; + } + program { name: "play_button_press"; + action: PLAY_SAMPLE "button-pressed" 1.0; + } + + } + + } // group + +} // collections + diff --git a/main/layout/sounds/button-pressed.wav b/main/layout/sounds/button-pressed.wav new file mode 100755 index 0000000..99ba74d Binary files /dev/null and b/main/layout/sounds/button-pressed.wav differ diff --git a/main/layout/thumblist/T01-1_thumbnail_focus.PNG b/main/layout/thumblist/T01-1_thumbnail_focus.PNG new file mode 100755 index 0000000..33b79d4 Binary files /dev/null and b/main/layout/thumblist/T01-1_thumbnail_focus.PNG differ diff --git a/main/layout/weather-tag-buddy.edc b/main/layout/weather-tag-buddy.edc new file mode 100755 index 0000000..398c975 --- /dev/null +++ b/main/layout/weather-tag-buddy.edc @@ -0,0 +1,119 @@ +/* +* Copyright (c) 2000-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 TAG_BUDDY_BOTTOM_LINE_COLOR_INC 255 255 255 255 + +collections { + + group { + name: "tag_buddy"; + parts{ + part { name: "bg"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + color: 0 0 0 125; + visible: 1; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0;} + } + } + part { + name: "preview_bg"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + scale:1; + description { + state: "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0;} + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { + name: "accuweather"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + scale:1; + description { + state: "default" 0.0; + visible: 1; + min: 200 0; + max: -1 36; + fixed: 1 1; + align: 0 0; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 0.0 0.0;offset: 200 52;} + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { + name: "content"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + scale:1; + + description { + state: "default" 0.0; + visible: 1; + align: 0.0 0.5; + rel1 { relative: 0.0 1.0; to:"accuweather";offset: 20 0;} + rel2 { relative: 1.0 0.0; to: "time_tag";} + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { + name: "time_tag"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + scale:1; + + description { + state: "default" 0.0; + visible: 1; + align: 0.0 1.0; + rel1 { relative: 0.0 0.80;offset: 20 0;} + rel2 { relative: 1.0 1.0;} + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + } + } +} + diff --git a/main/layout/images/00_zoom_in.png b/main/res/images/T01-1_control_icon_save.png similarity index 56% rename from main/layout/images/00_zoom_in.png rename to main/res/images/T01-1_control_icon_save.png index 3685b2c..888474e 100755 Binary files a/main/layout/images/00_zoom_in.png and b/main/res/images/T01-1_control_icon_save.png differ diff --git a/main/res/images/image_drm_no_rights.jpg b/main/res/images/image_drm_no_rights.jpg deleted file mode 100644 index 453af00..0000000 Binary files a/main/res/images/image_drm_no_rights.jpg and /dev/null differ diff --git a/main/src/control/ivug-buddy-ug.cpp b/main/src/control/ivug-buddy-ug.cpp deleted file mode 100755 index dc16a62..0000000 --- a/main/src/control/ivug-buddy-ug.cpp +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 // ug_destroy_me, ug_send_result - -#include "ivug-buddy-view.h" -#include "ivug-buddy-ug.h" - -#include "ivug-debug.h" -#include "ivug-string.h" -#include "ivug-context.h" - -#undef LOG_LVL -#define LOG_LVL DBG_MSG_LVL_MED - -#undef LOG_CAT -#define LOG_CAT "IV-BUDDY-UG" - -static void -_send_result(ui_gadget_h ug, const char *key1, const char *val1, const char *key2, const char *val2) -{ - ivug_ret_if(!ug); - - service_h service; - service_create(&service); - - if(key1 && val1) - { - MSG_HIGH("Bundle 1 : [%s = %s]", key1, val1); - service_add_extra_data(service, key1, val1); - } - if(key2 && val2) - { - MSG_HIGH("Bundle 2 : [%s = %s]", key2, val2); - service_add_extra_data(service, key2, val2); - } - ug_send_result(gGetUGHandle(), service); - - service_destroy(service); -} - -IvugCropUG * ivug_crop_ug_create(Evas_Object *parent, int w, int h, bool bRatioFix, const char *filepath) -{ - IvugCropUG *crop_ug = (IvugCropUG *)calloc(1, sizeof(IvugCropUG)); - if(crop_ug == NULL) - { - MSG_ERROR("crop_ug calloc error"); - return NULL; - } - - IvugCropView *crop_view = NULL; - Evas_Object *layout = NULL; - - crop_view = ivug_crop_view_create(parent); - if(crop_view == NULL) - { - MSG_ERROR("ivug_crop_view_create error"); - free(crop_ug); - return NULL; - } - - ivug_crop_view_box_size_set(crop_view, w, h); - //ivug_crop_view_file_set(crop_view, filepath); - ivug_crop_view_box_ratio_fix(crop_view, bRatioFix); - - layout = ivug_crop_view_get_object(crop_view); - - evas_object_smart_callback_add(layout, "ok,clicked", _ivug_crop_view_ok_clicked_cb, crop_ug); - evas_object_smart_callback_add(layout, "cancel,clicked", _ivug_crop_view_cancel_clicked_cb, crop_ug); - evas_object_smart_callback_add(layout, "destroyed", _ivug_crop_view_destroyed_cb, crop_ug); - evas_object_smart_callback_add(layout, "download,failed", _on_msg_load_failed, crop_ug); - - crop_ug->crop_view = crop_view; - crop_ug->layout = layout; - crop_ug->parent = parent; - crop_ug->filepath = strdup(filepath); - - crop_ug->navi_bar = elm_naviframe_add(parent); - - evas_object_name_set(crop_ug->navi_bar, "Crop ug naviframe"); - -// Layout life cycle is controlled by application explictily. - elm_naviframe_content_preserve_on_pop_set(crop_ug->navi_bar, EINA_TRUE); - - Evas_Object *back_btn = ivug_button_add(crop_ug->navi_bar, "naviframe/end_btn/default", - IDS_BACK, NULL, on_crop_view_btn_back_clicked, crop_ug); - - crop_ug->navi_it = elm_naviframe_item_push(crop_ug->navi_bar, IDS_LOADING, back_btn, NULL, crop_ug->layout, NULL); - elm_naviframe_item_title_visible_set(crop_ug->navi_it, EINA_FALSE); - - ivug_crop_view_create_menu(crop_view, crop_ug->navi_bar); - - return crop_ug; -} - -Evas_Object * ivug_crop_ug_get_layout(IvugCropUG * crop_ug) -{ - IV_ASSERT(crop_ug != NULL); - - return crop_ug->navi_bar; -} - -bool ivug_crop_ug_destroy(IvugCropUG * crop_ug) -{ - IV_ASSERT(crop_ug != NULL); - - if(crop_ug->filepath) - { - free(crop_ug->filepath); - crop_ug->filepath = NULL; - } - - if(crop_ug->crop_view) - { - ivug_crop_view_destroy(crop_ug->crop_view); - crop_ug->crop_view = NULL; - } - crop_ug->layout = NULL; - - free(crop_ug); - - return true; -} - -bool ivug_crop_ug_start(IvugCropUG * crop_ug) -{ - MSG_HIGH("ivug_crop_ug_start"); - IV_ASSERT(crop_ug != NULL); - - ivug_crop_view_file_set(crop_ug->crop_view, crop_ug->filepath); - - return true; -} - diff --git a/main/src/control/ivug-buddy-ug.h b/main/src/control/ivug-buddy-ug.h deleted file mode 100755 index e823e95..0000000 --- a/main/src/control/ivug-buddy-ug.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 __IVUG_BUDDY_UG_H__ -#define __IVUG_BUDDY_UG_H__ - -#include "ivug-buddy-view.h" - -typedef struct { - Ivug_BuddyView *buddy_view; - - Evas_Object *layout; - Evas_Object *parent; - - Evas_Object *navi_bar; - Elm_Object_Item *navi_it; - - char *filepath; -} IvugBuddyUG; - -#ifdef __cplusplus -extern "C" { -#endif - -IvugBuddyUG * ivug_buddy_ug_create(Evas_Object *parent, const char *filepath); - -Evas_Object * ivug_buddy_ug_get_layout(IvugBuddyUG * buddy_ug); - -bool ivug_buddy_ug_destroy(IvugBuddyUG * buddy_ug); - -bool ivug_buddy_ug_start(IvugBuddyUG * buddy_ug); - -#ifdef __cplusplus -} -#endif - -#endif // __IVUG_BUDDY_UG_H__ - diff --git a/main/src/control/ivug-context.c b/main/src/control/ivug-context.c index 1d8eb86..13523d7 100755 --- a/main/src/control/ivug-context.c +++ b/main/src/control/ivug-context.c @@ -1,47 +1,63 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 "ivug-common.h" #include "ivug-util.h" +#include "ivug-widget.h" #include "ivug-db.h" #include // ug_destroy_me #include "ivug-context.h" -#include "ivug-callback.h" +#include "ivug-language-mgr.h" #define MAX_INSTALNCE (5) +#undef USE_DEBUG_DUMP_CONTEXT + typedef struct { + int index; ui_gadget_h ug; // ug handle Evas_Object *parent_win; + Evas_Object *parent_layout; // EFL theme Elm_Theme *th; // Window Geometry int win_w, win_h; //size - int rot; //window rotation value ( 0~360 ) + int rot; //window rotation value (0~360) callback_handle_t *callback_handle; + language_handle_t language_handle; + bool bDesktopMode; + bool bDestroying; + + app_control_h app_control_handle; +// Store indicator status + Elm_Win_Indicator_Opacity_Mode indi_o_mode; + Elm_Win_Indicator_Mode indi_mode; + Eina_Bool oMode; + char ALBUM_INDEX[256]; } AppData; static Eina_List *ContextList = NULL; @@ -88,17 +104,7 @@ gSetRotationDegree(int degree) int gGetRotationDegree(void) { -#if 0 - AppData *ugContext; - ugContext = eina_list_data_get(ContextList); - - IV_ASSERT(ugContext != NULL); - - return ugContext->rot; -#else return elm_win_rotation_get(ug_get_window()); -#endif - } int gGetScreenWidth() @@ -160,59 +166,146 @@ gGetCallbackHandle(void) return ugContext->callback_handle; } -bool -gIsDesktopMode(void) +language_handle_t +gGetLanguageHandle(void) { AppData *ugContext; ugContext = eina_list_data_get(ContextList); IV_ASSERT(ugContext != NULL); - return ugContext->bDesktopMode; + return ugContext->language_handle; } -void -gSetDesktopMode(bool isDesktop) +void gSetAlbumIndex(const char* val) { AppData *ugContext; ugContext = eina_list_data_get(ContextList); IV_ASSERT(ugContext != NULL); + if (val != NULL) + { + snprintf(ugContext->ALBUM_INDEX, 256, "%s",val); + } +} +const char* gGetAlbumIndex() +{ + AppData *ugContext; + ugContext = eina_list_data_get(ContextList); + + IV_ASSERT(ugContext != NULL); + + return ugContext->ALBUM_INDEX; +} + +Evas_Object *gGetParentLayout() +{ + AppData *ugContext; + ugContext = eina_list_data_get(ContextList); + + IV_ASSERT(ugContext != NULL); + + return ugContext->parent_layout; + +} + + +bool gGetDestroying() +{ + AppData *ugContext; + ugContext = eina_list_data_get(ContextList); + + IV_ASSERT(ugContext != NULL); + + return ugContext->bDestroying; +} + +void gSetDestroying(bool isDestroying) +{ + AppData *ugContext; + ugContext = eina_list_data_get(ContextList); + + IV_ASSERT(ugContext != NULL); + + ugContext->bDestroying = isDestroying; +} + +app_control_h gGetServiceHandle() +{ + AppData *ugContext; + ugContext = eina_list_data_get(ContextList); + + IV_ASSERT(ugContext != NULL); + + return ugContext->app_control_handle; +} + +void gSetServiceHandle(app_control_h service) +{ + AppData *ugContext; + ugContext = eina_list_data_get(ContextList); + + IV_ASSERT(ugContext != NULL); + + if (ugContext->app_control_handle) + { + app_control_destroy(ugContext->app_control_handle); + } - ugContext->bDesktopMode = isDesktop; + app_control_clone(&ugContext->app_control_handle, service); } -#define IVUG_NAVIFRAME_NAME EDJ_PATH"/ivug-naviframe.edj" -#define IVUG_TOOLBAR_NAME EDJ_PATH"/ivug-toolbar.edj" -#define IVUG_BUTTON_NAME EDJ_PATH"/ivug-button.edj" -#define IVUG_SELECTION_INFO_NAME EDJ_PATH"/ivug-selectioninfo.edj" -#define IVUG_GENLIST EDJ_PATH"/ivug-genlist.edj" -#define IVUG_GENGRID EDJ_PATH"/ivug-gengrid.edj" - -static char *edj[] = { - IVUG_NAVIFRAME_NAME, - IVUG_TOOLBAR_NAME, - IVUG_BUTTON_NAME, - IVUG_SELECTION_INFO_NAME, - IVUG_GENLIST, - IVUG_GENGRID, - NULL, +static const char *szMode[] = { "Unknown", "Hide", "Show" }; + +static const char *szOpacity[] = { + "Unknown", + "Opaque", + "Translucent", + "Transparent", +}; + +static const char *szOverlap[] = { + "Non-overlap", + "Overlap", }; +static void _dump_context(const char *title) +{ +#ifdef USE_DEBUG_DUMP_CONTEXT + Eina_List *l; + void *data; + + MSG_IVUG_HIGH("**** Context : %-15s **********", title); + + EINA_LIST_FOREACH(ContextList, l, data) + { + AppData *Context = (AppData *)data; + + MSG_IVUG_HIGH(" Idx=%d Context=0x%08x UG=0x%08x", Context->index, Context, Context->ug); + } + + MSG_IVUG_HIGH("****************************************"); +#endif +} + + bool ivug_context_init(ui_gadget_h ug) { + static int index = 0; + AppData *Context = (AppData *)calloc(1, sizeof(AppData)); - if(Context == NULL) + if (Context == NULL) { MSG_IVUG_ERROR("Cannot allock memory"); return false; } + Context->index = ++index; Context->ug = ug; Context->parent_win = ug_get_window(); - if ( Context->parent_win ) + if (Context->parent_win) { Context->rot = elm_win_rotation_get(Context->parent_win); } @@ -222,30 +315,42 @@ ivug_context_init(ui_gadget_h ug) Context->rot = 0; } + Context->parent_layout = ug_get_parent_layout(ug); //get window width, height int w, h; evas_object_geometry_get(Context->parent_win, NULL, NULL, &w, &h); - MSG_IMAGEVIEW_HIGH("Screen WH(%dx%d)", w, h); + // ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h); Context->win_w = w; Context->win_h = h; + Context->indi_mode = elm_win_indicator_mode_get(Context->parent_win); + Context->indi_o_mode = elm_win_indicator_opacity_get(Context->parent_win); - PERF_CHECK_BEGIN(LVL2, "theme add"); + int overlap = (int)evas_object_data_get((Evas_Object *)ug_get_conformant(), "overlap"); + + if (overlap == 0) + { + Context->oMode = EINA_FALSE; + } + else + { + Context->oMode = EINA_TRUE; + } + + MSG_IMAGEVIEW_HIGH("Screen WH(%dx%d) Indicator(%s,%s,%s)", w, h, szMode[Context->indi_mode], szOpacity[Context->indi_o_mode], szOverlap[Context->oMode]); - int i = 0; + PERF_CHECK_BEGIN(LVL2, "theme add"); Context->th = elm_theme_new(); IV_ASSERT(Context->th != NULL); + elm_theme_set(Context->th, "tizen-QVGA-dark"); //set dark theme elm_theme_ref_set(Context->th, NULL); - for ( i = 0; edj[i] != NULL; i++) - { - elm_theme_extension_add(Context->th, edj[i]); - } + elm_theme_extension_add(Context->th, EDJ_PATH"/ivug-custom.edj"); PERF_CHECK_END(LVL2, "theme add"); @@ -262,7 +367,7 @@ ivug_context_init(ui_gadget_h ug) #endif Context->callback_handle = ivug_callback_register(); - if(Context->callback_handle == NULL) + if (Context->callback_handle == NULL) { MSG_IVUG_ERROR("ivug_callback_register error"); goto ERROR; @@ -275,18 +380,21 @@ ivug_context_init(ui_gadget_h ug) Context->bDesktopMode = true; } + ivug_language_mgr_create(&(Context->language_handle)); + bindtextdomain(IVUG_TEXT_DOMAIN, IVUG_LOCALEDIR); //bind text domain + + _dump_context("Init"); return TRUE; /**** Error routine ****/ ERROR: - if(Context->callback_handle) + if (Context->callback_handle) { ivug_callback_unregister(Context->callback_handle); } - #ifdef USE_NEW_DB_API ivug_db_destroy(); #endif @@ -294,14 +402,9 @@ ERROR: Context = eina_list_data_get(ContextList); ContextList = eina_list_remove_list(ContextList, ContextList); - if(Context->th) + if (Context->th) { - int i = 0; - for ( i = 0; edj[i] != NULL; i++) - { - elm_theme_extension_del(Context->th, edj[i]); - } - + elm_theme_extension_del(Context->th, EDJ_PATH"/ivug-custom.edj"); elm_theme_free(Context->th); } @@ -318,18 +421,20 @@ ivug_context_deinit(ui_gadget_h ug) { AppData *Context = NULL; - if(ContextList == NULL) + if (ContextList == NULL) { MSG_IVUG_ERROR("ContextList is NULL"); return false; } + _dump_context("Before DeInit"); + Eina_List *l = NULL; Eina_List *l_next = NULL; EINA_LIST_FOREACH_SAFE(ContextList, l, l_next, Context) { - if(Context == NULL) + if (Context == NULL) { MSG_IVUG_ERROR("Context is NULL"); return false; @@ -343,13 +448,25 @@ ivug_context_deinit(ui_gadget_h ug) } } - if(Context->callback_handle) + if (Context->language_handle) + { + ivug_language_mgr_destroy(Context->language_handle); + Context->language_handle = NULL; + } + + if (Context->callback_handle) { MSG_IVUG_HIGH("Removing Callback"); ivug_callback_unregister(Context->callback_handle); Context->callback_handle = NULL; } + if (Context->app_control_handle) + { + app_control_destroy(Context->app_control_handle); + Context->app_control_handle = NULL; + } + #ifdef USE_NEW_DB_API PERF_CHECK_BEGIN(LVL2, "ivug_db_destroy"); ivug_db_destroy(); @@ -357,42 +474,72 @@ ivug_context_deinit(ui_gadget_h ug) #endif PERF_CHECK_BEGIN(LVL2, "elm_theme_free"); - if(Context->th) + if (Context->th) { - int i = 0; - for ( i = 0; edj[i] != NULL; i++) - { - elm_theme_extension_del(Context->th, edj[i]); - } + elm_theme_extension_del(Context->th, EDJ_PATH"/ivug-custom.edj"); elm_theme_free(Context->th); } + PERF_CHECK_END(LVL2, "elm_theme_free"); MSG_IVUG_HIGH("Remove from list. Context=0x%08x, ug=0x%08x", Context, Context->ug); free(Context); + _dump_context("After DeInit"); + return true; } void ivug_context_destroy_me(const char *file, int line) { - AppData *ugContext; - ugContext = eina_list_data_get(ContextList); + AppData *Context = NULL; + Eina_List *list = NULL; + + EINA_LIST_FOREACH(ContextList, list, Context) + { + if (Context->bDestroying == false) + break; + } char *fname = strrchr(file, '/'); - if (NULL != ugContext) + if (NULL != Context) { - MSG_IMAGEVIEW_HIGH("Request to destory ug. UGhandle(0x%08x) from L(%d) %s", ugContext->ug, line, fname); - ug_destroy_me(ugContext->ug); + _dump_context("DestroyME"); + + MSG_IMAGEVIEW_HIGH("Request to destory ug. UGhandle(0x%08x) from L(%d) %s", Context->ug, line, fname); + // Store indicator mode + elm_win_indicator_mode_set(Context->parent_win, Context->indi_mode); + +// When app does not set opacity mode, unknown is returned in _get() +// W/IV-COMMON(5576): 0:00:00.003[F:ivug-context.c L: 367][HIGH] Screen WH(720x1280) Indicator(Show,Unknown,Overlap) <--- From email. +// Woraround. If opacity is unknown, set as different. + if (Context->indi_o_mode == ELM_WIN_INDICATOR_OPACITY_UNKNOWN) + { + Context->indi_o_mode = ELM_WIN_INDICATOR_OPAQUE; + } + + elm_win_indicator_opacity_set(Context->parent_win, Context->indi_o_mode); + + if (Context->oMode == EINA_TRUE) + { + ivug_set_indicator_overlap_mode(true); + } + else + { + ivug_set_indicator_overlap_mode(false); + } + + MSG_IMAGEVIEW_HIGH("Restore Indicator(%s,%s,%s)", szMode[Context->indi_mode], szOpacity[Context->indi_o_mode], szOverlap[Context->oMode]); + + ug_destroy_me(Context->ug); } else { - MSG_IMAGEVIEW_WARN("ugContext is NULL. from L(%d) %s", line, fname); + MSG_IMAGEVIEW_WARN("Context is NULL. from L(%d) %s", line, fname); } - } diff --git a/main/src/control/ivug-context.h b/main/src/control/ivug-context.h index d16b379..0cda7fc 100755 --- a/main/src/control/ivug-context.h +++ b/main/src/control/ivug-context.h @@ -1,28 +1,29 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_CONTEXT_H__ #define __IVUG_CONTEXT_H__ -#include "ivug-common.h" - +#include "ivug-define.h" #include "ivug-callback.h" +#include "ivug-language-mgr.h" #include /* @@ -46,6 +47,8 @@ ivug_context_destroy_me(const char *file, int line); ivug_context_destroy_me(__FILE__, __LINE__); \ } while(0) + + void gSetRotationDegree(int degree); @@ -61,18 +64,26 @@ gGetUGHandle(void); Evas_Object * gGetCurrentWindow(void); - callback_handle_t * gGetCallbackHandle(void); -bool -gIsDesktopMode(void); +language_handle_t +gGetLanguageHandle(void); -void -gSetDesktopMode(bool isDesktop); +int +gGetScreenWidth(); + +int +gGetScreenHeight(); + +void gSetAlbumIndex(const char* val); +const char* gGetAlbumIndex(); + +bool gGetDestroying(); + +void gSetDestroying(bool isDestroying); -int gGetScreenWidth(); -int gGetScreenHeight(); +Evas_Object *gGetParentLayout(); #ifdef __cplusplus } diff --git a/main/src/control/ivug-crop-ug.cpp b/main/src/control/ivug-crop-ug.cpp index b6cf52e..2ef96d2 100755 --- a/main/src/control/ivug-crop-ug.cpp +++ b/main/src/control/ivug-crop-ug.cpp @@ -1,32 +1,34 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 // ug_destroy_me, ug_send_result -#include "ivug-crop-view.h" #include "ivug-crop-ug.h" +#include "ivug-crop-view.h" #include "ivug-debug.h" #include "ivug-string.h" #include "ivug-context.h" #include "ivug-db.h" -#include "ivug-setas-view.h" +#include "ivug-language-mgr.h" +#include "ivug-common.h" #undef LOG_LVL #define LOG_LVL DBG_MSG_LVL_MED @@ -34,58 +36,150 @@ #undef LOG_CAT #define LOG_CAT "IV-CROP-UG" + + +/* +Setting->Wallpaper setting(UG) + W/IV-COMMON( 4050): 0:00:00.003[F:ivug-parameter.c L: 444][HIGH] ********************************** + W/IV-COMMON( 4050): 0:00:00.003[F:ivug-parameter.c L: 370][HIGH] Path : /opt/usr/media/Images/image9.jpg + W/IV-COMMON( 4050): 0:00:00.003[F:ivug-parameter.c L: 370][HIGH] View Mode : SETAS + W/IV-COMMON( 4050): 0:00:00.004[F:ivug-parameter.c L: 370][HIGH] Setas type : Wallpaper + W/IV-COMMON( 4050): 0:00:00.004[F:ivug-parameter.c L: 446][HIGH] ********************************** + +Setting -> Lockscreen setting(UG) + W/IV-COMMON( 4050): 0:02:42.425[F:ivug-parameter.c L: 444][HIGH] ********************************** + W/IV-COMMON( 4050): 0:02:42.425[F:ivug-parameter.c L: 370][HIGH] Path : /opt/usr/media/Images/Home_default.jpg + W/IV-COMMON( 4050): 0:02:42.425[F:ivug-parameter.c L: 370][HIGH] View Mode : SETAS + W/IV-COMMON( 4050): 0:02:42.426[F:ivug-parameter.c L: 370][HIGH] Setas type : Lockscreen + W/IV-COMMON( 4050): 0:02:42.426[F:ivug-parameter.c L: 446][HIGH] ********************************** + +Contacts -> CallerID(UG) + W/IV-COMMON( 7761): 0:00:00.010[F:ivug-parameter.c L: 444][HIGH] ********************************** + W/IV-COMMON( 7761): 0:00:00.010[F:ivug-parameter.c L: 370][HIGH] Path : /opt/usr/media/Downloads/aaa_1_1_1.jpg + W/IV-COMMON( 7761): 0:00:00.010[F:ivug-parameter.c L: 370][HIGH] View Mode : SETAS + W/IV-COMMON( 7761): 0:00:00.010[F:ivug-parameter.c L: 370][HIGH] Setas type : CallerID + W/IV-COMMON( 7761): 0:00:00.011[F:ivug-parameter.c L: 370][HIGH] Area Size : 100 + W/IV-COMMON( 7761): 0:00:00.011[F:ivug-parameter.c L: 370][HIGH] Resolution : 480x480 + W/IV-COMMON( 7761): 0:00:00.011[F:ivug-parameter.c L: 446][HIGH] ********************************** + +Long Press in homescreen -> Menu -> Change wallpaper + W/IV-COMMON( 7229): 0:00:00.012[F:ivug-parameter.c L: 444][HIGH] ********************************** + W/IV-COMMON( 7229): 0:00:00.013[F:ivug-parameter.c L: 370][HIGH] View Mode : SETAS + W/IV-COMMON( 7229): 0:00:00.013[F:ivug-parameter.c L: 370][HIGH] Path : /opt/usr/media/Images/image2.jpg + W/IV-COMMON( 7229): 0:00:00.014[F:ivug-parameter.c L: 370][HIGH] Setas type : Wallpaper Crop + W/IV-COMMON( 7229): 0:00:00.014[F:ivug-parameter.c L: 370][HIGH] Fixed ratio : TRUE + W/IV-COMMON( 7229): 0:00:00.014[F:ivug-parameter.c L: 370][HIGH] Resolution : 720x1280 + W/IV-COMMON( 7229): 0:00:00.015[F:ivug-parameter.c L: 446][HIGH] ********************************** + +Gallery -> Image Viewer -> Menu -> Print + W/IV-COMMON( 5951): 0:00:00.004[F:ivug-parameter.c L: 444][HIGH] ********************************** + W/IV-COMMON( 5951): 0:00:00.004[F:ivug-parameter.c L: 370][HIGH] View Mode : SETAS + W/IV-COMMON( 5951): 0:00:00.004[F:ivug-parameter.c L: 370][HIGH] Path : /opt/usr/media/Images/Home_default.jpg + W/IV-COMMON( 5951): 0:00:00.004[F:ivug-parameter.c L: 370][HIGH] Setas type : Crop + W/IV-COMMON( 5951): 0:00:00.004[F:ivug-parameter.c L: 370][HIGH] Fixed ratio : TRUE + W/IV-COMMON( 5951): 0:00:00.004[F:ivug-parameter.c L: 370][HIGH] Resolution : 450x300 + W/IV-COMMON( 5951): 0:00:00.004[F:ivug-parameter.c L: 446][HIGH] ********************************** + +SMEMO -> Add image + + W/IV-COMMON( 8138): 0:00:00.008[F:ivug-parameter.c L: 444][HIGH] ********************************** + W/IV-COMMON( 8138): 0:00:00.008[F:ivug-parameter.c L: 370][HIGH] Path : /opt/usr/media/Camera/20130525-193717.jpg + W/IV-COMMON( 8138): 0:00:00.008[F:ivug-parameter.c L: 370][HIGH] View Mode : SETAS + W/IV-COMMON( 8138): 0:00:00.008[F:ivug-parameter.c L: 370][HIGH] Setas type : Crop + W/IV-COMMON( 8138): 0:00:00.008[F:ivug-parameter.c L: 446][HIGH] ********************************** + +--> On Save�� + W/IV-CROP-UG( 7925): 0:00:33.557[F:ivug-crop-ug.cpp L: 94][HIGH] Bundle 1 : [crop_image_path = /opt/usr/media/Images/image2_1.jpg] + W/IV-CROP-UG( 7925): 0:00:33.557[F:ivug-crop-ug.cpp L: 99][HIGH] Bundle 2 : [http://tizen.org/appcontrol/data/selected = /opt/usr/media/Images/image2_1.jpg] +*/ + + +struct _IvugCropUG { + + Evas_Object *layout; + Evas_Object *parent; + +// Not using navi_bar +// Evas_Object *navi_bar; +// Elm_Object_Item *navi_it; + + char *filepath; + + bool bAddtoDB; +} ; + static void _send_result(ui_gadget_h ug, const char *key1, const char *val1, const char *key2, const char *val2) { ivug_ret_if(!ug); - service_h service; - service_create(&service); + app_control_h service = NULL; + int ret = app_control_create(&service); + if (ret != APP_CONTROL_ERROR_NONE) { + MSG_ERROR("app_control_create failed"); + } - if(key1 && val1) + if (key1 && val1) { - MSG_HIGH("Bundle 1 : [%s = %s]", key1, val1); - service_add_extra_data(service, key1, val1); + MSG_SEC("Bundle 1 : [%s = %s]", key1, val1); + ret = app_control_add_extra_data(service, key1, val1); + if (ret != APP_CONTROL_ERROR_NONE) { + MSG_HIGH("app_control_add_extra_data failed"); + } } - if(key2 && val2) + + if (key2 && val2) { - MSG_HIGH("Bundle 2 : [%s = %s]", key2, val2); - service_add_extra_data(service, key2, val2); + MSG_SEC("Bundle 2 : [%s = %s]", key2, val2); + ret = app_control_add_extra_data(service, key2, val2); + if (ret != APP_CONTROL_ERROR_NONE) { + MSG_HIGH("app_control_add_extra_data failed"); + } } + ug_send_result(gGetUGHandle(), service); - service_destroy(service); + app_control_destroy(service); } static void _ivug_crop_view_ok_clicked_cb(void *data, Evas_Object *obj, void *event_info) { + IvugCropUG *crop_ug = (IvugCropUG *)data; + char *path = (char *)event_info; evas_object_smart_callback_del(obj, "ok,clicked", _ivug_crop_view_ok_clicked_cb); - media_handle m_handle = NULL; - - m_handle = ivug_db_insert_file_to_DB(path); - if(m_handle == NULL) + if (crop_ug->bAddtoDB == true ) { - MSG_ERROR("ivug_db_insert_file_to_DB failed %s", path); - } - else - { - ivug_db_destroy_file_handle(m_handle); + media_handle m_handle = NULL; + + m_handle = ivug_db_insert_file_to_DB(path); + if(m_handle == NULL) + { + MSG_ERROR("ivug_db_insert_file_to_DB failed %s", path); + } + else + { + ivug_db_destroy_file_handle(m_handle); + } } _send_result(gGetUGHandle(), "crop_image_path", path, "http://tizen.org/appcontrol/data/selected", path); - MSG_HIGH("Start destroy ug"); - ug_destroy_me(gGetUGHandle()); + MSG_HIGH("Start destroy crop ug. bAddToDB=%d", crop_ug->bAddtoDB); + +// ivug_set_indicator_overlap_mode(false); +// ug_destroy_me(gGetUGHandle()); + DESTROY_ME(); + } static void _ivug_setas_crop_view_ok_clicked_cb(void *data, Evas_Object *obj, void *event_info) { char *path = (char *)event_info; - MSG_MAIN_HIGH("_ivug_setas_view_ok_clicked_cb path = %s", path); + MSG_MAIN_HIGH("_ivug_setas_crop_view_ok_clicked_cb path = %s", path); evas_object_smart_callback_del(obj, "ok,clicked", _ivug_setas_crop_view_ok_clicked_cb); @@ -94,321 +188,60 @@ static void _ivug_setas_crop_view_ok_clicked_cb(void *data, Evas_Object *obj, vo int setas_data = (int)evas_object_data_get(obj, "setas_type"); ivug_set_screen_type type = (ivug_set_screen_type)setas_data; - int setas_mode = (int)evas_object_data_get(obj, "setas_mode"); - ivug_setas_mode mode = (ivug_setas_mode)setas_mode; - const char* homescreen_path = IVUG_HOME_SCREEN_PATH; const char* lockscreen_path = IVUG_LOCK_SCREEN_PATH; - const char* appsvc_home_path = IVUG_APPSVC_HOME_SCREEN_PATH; - if(mode == IVUG_SETAS_CROP) - { - ivug_copy_file(path, appsvc_home_path); - _send_result(gGetUGHandle(), "crop_image_path", appsvc_home_path, - "http://tizen.org/appcontrol/data/selected", appsvc_home_path); - } - else + if(type == IVUG_CTRLBAR_SET_SCREEN_HOME) { - if(type == IVUG_CTRLBAR_SET_SCREEN_HOME) - { - ivug_copy_file(path, homescreen_path); - ivug_config_set_homescreen_image(homescreen_path); - _send_result(gGetUGHandle(), "homescreen_path", homescreen_path, NULL, NULL); - } - else if(type == IVUG_CTRLBAR_SET_SCREEN_LOCK) - { - ivug_copy_file(path, lockscreen_path); - ivug_config_set_lockscreen_image(lockscreen_path); - _send_result(gGetUGHandle(), "lockscreen_path", lockscreen_path, NULL, NULL); - } - else if(type == IVUG_CTRLBAR_SET_SCREEN_BOTH) - { - ivug_copy_file(path, homescreen_path); - ivug_config_set_homescreen_image(homescreen_path); - ivug_copy_file(path, lockscreen_path); - ivug_config_set_lockscreen_image(lockscreen_path); - _send_result(gGetUGHandle(), "homescreen_path", homescreen_path, "lockscreen_path", lockscreen_path); - } - } + ivug_copy_file(path, homescreen_path); - MSG_HIGH("Start destroy ug"); - ug_destroy_me(gGetUGHandle()); -} - - -static void _ivug_crop_view_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info) -{ - //ivug_crop_ug_destroy((IvugCropUG *)data); - - evas_object_smart_callback_del(obj, "cancel,clicked", _ivug_crop_view_cancel_clicked_cb); - - _send_result(gGetUGHandle(), "crop_image_path", NULL, "http://tizen.org/appcontrol/data/selected", NULL); - - MSG_HIGH("Start destroy ug"); - ug_destroy_me(gGetUGHandle()); -} - -static void _ivug_crop_view_destroyed_cb(void *data, Evas_Object *obj, void *event_info) -{ - IvugCropUG *crop_ug = (IvugCropUG *)data; - - ivug_crop_view_destroy(crop_ug->crop_view); - - crop_ug->crop_view = NULL; -} - -static void on_crop_view_btn_back_clicked(void *data, Evas_Object *obj, void *event_info) -{ - IvugCropUG *crop_ug = (IvugCropUG *)data; - - ivug_crop_view_destroy(crop_ug->crop_view); - - crop_ug->crop_view = NULL; - - _send_result(gGetUGHandle(), "crop_image_path", NULL, "http://tizen.org/appcontrol/data/selected", NULL); - - MSG_HIGH("Start destroy ug"); - ug_destroy_me(gGetUGHandle()); -} - -static void _ivug_crop_view_clicked_cb(void *data, Evas_Object *obj, void *event_info) -{ - IvugCropUG *crop_ug = (IvugCropUG *)data; - bool bShowMenu = (bool)event_info; - - if(bShowMenu) - { - elm_object_item_signal_emit(crop_ug->navi_it, "elm,state,toolbar,open", ""); - } - else - { - elm_object_item_signal_emit(crop_ug->navi_it, "elm,state,toolbar,close", ""); + _send_result(gGetUGHandle(), "homescreen_path", homescreen_path, NULL, NULL); } -} - -static Evas_Object* -_show_exit_popup( Evas_Object *parent, const char *title, const char *desc, void *data) -{ - MSG_SETAS_HIGH( "title: %s, desc %s", title, desc); - - Evas_Object* style1_popup = elm_popup_add(parent); - evas_object_size_hint_weight_set(style1_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_popup_timeout_set(style1_popup, (double)2.0); - elm_object_text_set(style1_popup, desc); - elm_object_part_text_set(style1_popup, "title,text", title); - - evas_object_smart_callback_add(style1_popup, "timeout", _ivug_crop_view_cancel_clicked_cb, data); - - evas_object_show(style1_popup); - evas_object_layer_set(style1_popup, EVAS_LAYER_MAX); - - return style1_popup; -} - -static void -_on_msg_load_failed(void *data, Evas_Object *obj, void *event_info) -{ - int error = (int)event_info; - - const char *szMsg = NULL; - - switch(error) + else if(type == IVUG_CTRLBAR_SET_SCREEN_LOCK) { - case CROP_ERROR_TYPE_INVALID_FILE: - szMsg = IDS_INVALID_IMAGE_FILE; - break; - case CROP_ERROR_TYPE_PERMISSION_DENIED: - szMsg = IDS_PERMISSION_DENIED; - break; - case CROP_ERROR_TYPE_UNKNOWN_FORMAT: - szMsg = "Unknown format"; - break; - case CROP_ERROR_TYPE_GENERAL: - default: - szMsg = IDS_FAILED; - break; - } - - MSG_ERROR("Load failed : %s", szMsg); + ivug_copy_file(path, lockscreen_path); - _show_exit_popup(obj, IDS_ERROR, szMsg, data); -} - -IvugCropUG * ivug_crop_ug_create(Evas_Object *parent, int w, int h, bool bRatioFix, const char *filepath) -{ - IvugCropUG *crop_ug = (IvugCropUG *)calloc(1, sizeof(IvugCropUG)); - if(crop_ug == NULL) - { - MSG_ERROR("crop_ug calloc error"); - return NULL; + _send_result(gGetUGHandle(), "lockscreen_path", lockscreen_path, NULL, NULL); } - - IvugCropView *crop_view = NULL; - Evas_Object *layout = NULL; - - crop_view = ivug_crop_view_create(parent); - if(crop_view == NULL) + else if(type == IVUG_CTRLBAR_SET_SCREEN_BOTH) { - MSG_ERROR("ivug_crop_view_create error"); - free(crop_ug); - return NULL; - } - - ivug_crop_view_box_size_set(crop_view, w, h); - //ivug_crop_view_file_set(crop_view, filepath); - ivug_crop_view_box_ratio_fix(crop_view, bRatioFix); - - layout = ivug_crop_view_get_object(crop_view); + ivug_copy_file(path, homescreen_path); + ivug_config_set_homescreen_image(homescreen_path); + ivug_copy_file(path, lockscreen_path); - evas_object_smart_callback_add(layout, "ok,clicked", _ivug_crop_view_ok_clicked_cb, crop_ug); - evas_object_smart_callback_add(layout, "cancel,clicked", _ivug_crop_view_cancel_clicked_cb, crop_ug); - evas_object_smart_callback_add(layout, "destroyed", _ivug_crop_view_destroyed_cb, crop_ug); - evas_object_smart_callback_add(layout, "download,failed", _on_msg_load_failed, crop_ug); - //evas_object_smart_callback_add(layout, "clicked", _ivug_crop_view_clicked_cb, crop_ug); - - crop_ug->crop_view = crop_view; - crop_ug->layout = layout; - crop_ug->parent = parent; - crop_ug->filepath = strdup(filepath); - - crop_ug->navi_bar = elm_naviframe_add(parent); - -#ifdef USE_CUSTOM_STYLE - elm_object_theme_set(crop_ug->navi_bar, gGetSystemTheme() ); -#endif - const char *profile = elm_config_profile_get(); - if (!strcmp(profile,"mobile")) - { - elm_object_style_set(crop_ug->navi_bar, "ivug-main/default"); + _send_result(gGetUGHandle(), "homescreen_path", homescreen_path, "lockscreen_path", lockscreen_path); } - else if (!strcmp(profile,"desktop")) - { - elm_object_style_set(crop_ug->navi_bar, "ivug-main/noindicator"); - } - else - { - MSG_MAIN_ERROR("Unknown profile : %s", profile); - } - - evas_object_name_set(crop_ug->navi_bar, "Crop ug naviframe"); -// Layout life cycle is controlled by application explictily. - elm_naviframe_content_preserve_on_pop_set(crop_ug->navi_bar, EINA_TRUE); - - Evas_Object *back_btn = ivug_button_add(crop_ug->navi_bar, "naviframe/end_btn/default", - IDS_BACK, NULL, on_crop_view_btn_back_clicked, crop_ug); - - crop_ug->navi_it = elm_naviframe_item_push(crop_ug->navi_bar, IDS_LOADING, back_btn, NULL, crop_ug->layout, NULL); - elm_naviframe_item_title_visible_set(crop_ug->navi_it, EINA_FALSE); - - ivug_crop_view_create_menu(crop_view, crop_ug->navi_bar); + MSG_HIGH("Start destroy ug"); - //Evas_Object *conformant = (Evas_Object *)ug_get_conformant(); - //elm_object_signal_emit(conformant, "elm,state,indicator,nooverlap", ""); +// ivug_set_indicator_overlap_mode(false); +// ug_destroy_me(gGetUGHandle()); + DESTROY_ME(); - return crop_ug; } -IvugCropUG * ivug_setas_crop_ug_create(Evas_Object *parent, const char *filepath, ivug_setas_mode mode, ivug_set_screen_type type) -{ - IvugCropUG *crop_ug = (IvugCropUG *)calloc(1, sizeof(IvugCropUG)); - if(crop_ug == NULL) - { - MSG_ERROR("crop_ug calloc error"); - return NULL; - } - - IvugCropView *crop_view = NULL; - Evas_Object *layout = NULL; - - crop_view = ivug_crop_view_create(parent); - if(crop_view == NULL) - { - MSG_ERROR("ivug_crop_view_create error"); - free(crop_ug); - return NULL; - } - - layout = ivug_crop_view_get_object(crop_view); - - evas_object_smart_callback_add(layout, "ok,clicked", _ivug_setas_crop_view_ok_clicked_cb, crop_ug); - evas_object_smart_callback_add(layout, "cancel,clicked", _ivug_crop_view_cancel_clicked_cb, crop_ug); - evas_object_smart_callback_add(layout, "destroyed", _ivug_crop_view_destroyed_cb, crop_ug); - evas_object_smart_callback_add(layout, "download,failed", _on_msg_load_failed, crop_ug); - //evas_object_smart_callback_add(layout, "clicked", _ivug_crop_view_clicked_cb, crop_ug); - evas_object_data_set(layout, "setas_type", (void *)type); - evas_object_data_set(layout, "setas_mode", (void *)mode); - - crop_ug->crop_view = crop_view; - crop_ug->layout = layout; - crop_ug->parent = parent; - crop_ug->filepath = strdup(filepath); - - crop_ug->navi_bar = elm_naviframe_add(parent); - -#ifdef USE_CUSTOM_STYLE - elm_object_theme_set(crop_ug->navi_bar, gGetSystemTheme() ); -#endif - const char *profile = elm_config_profile_get(); - if (!strcmp(profile,"mobile")) - { - elm_object_style_set(crop_ug->navi_bar, "ivug-main/default"); - } - else if (!strcmp(profile,"desktop")) - { - elm_object_style_set(crop_ug->navi_bar, "ivug-main/noindicator"); - } - else - { - MSG_MAIN_ERROR("Unknown profile : %s", profile); - } - - evas_object_name_set(crop_ug->navi_bar, "Crop ug naviframe"); - -// Layout life cycle is controlled by application explictily. - elm_naviframe_content_preserve_on_pop_set(crop_ug->navi_bar, EINA_TRUE); - - Evas_Object *back_btn = ivug_button_add(crop_ug->navi_bar, "naviframe/end_btn/default", - IDS_BACK, NULL, on_crop_view_btn_back_clicked, crop_ug); - - crop_ug->navi_it = elm_naviframe_item_push(crop_ug->navi_bar, IDS_LOADING, back_btn, NULL, crop_ug->layout, NULL); - elm_naviframe_item_title_visible_set(crop_ug->navi_it, EINA_FALSE); - - //Evas_Object *conformant = (Evas_Object *)ug_get_conformant(); - //elm_object_signal_emit(conformant, "elm,state,indicator,nooverlap", ""); - - int lcd_x = 0; - int lcd_y = 0; - int lcd_w = 0; - int lcd_h = 0; - int rot = 0; - - ivug_crop_view_create_menu(crop_view, crop_ug->navi_bar); +static void _ivug_crop_view_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info) +{ + //ivug_crop_ug_destroy((IvugCropUG *)data); - ivug_crop_view_destination_set(crop_view, DATA_PATH, ".iv_setas.jpg"); + evas_object_smart_callback_del(obj, "cancel,clicked", _ivug_crop_view_cancel_clicked_cb); - evas_object_geometry_get((Evas_Object *)ug_get_window(), &lcd_x, &lcd_y, &lcd_w, &lcd_h); - rot = gGetRotationDegree(); - if(rot == 90 || rot == 270) - { - int temp = lcd_w; - lcd_w = lcd_h; - lcd_h = temp; - } + _send_result(gGetUGHandle(), "crop_image_path", NULL, "http://tizen.org/appcontrol/data/selected", NULL); - ivug_crop_view_box_size_set(crop_view, lcd_w, lcd_h); + MSG_HIGH("Start destroy ug. ugHandle=0x%08x", gGetUGHandle()); - ivug_crop_view_box_ratio_fix(crop_view, true); +// ivug_set_indicator_overlap_mode(false); +// ug_destroy_me(gGetUGHandle()); + DESTROY_ME(); - return crop_ug; } Evas_Object * ivug_crop_ug_get_layout(IvugCropUG * crop_ug) { IV_ASSERT(crop_ug != NULL); - return crop_ug->navi_bar; + return crop_ug->layout; } bool ivug_crop_ug_destroy(IvugCropUG * crop_ug) @@ -421,11 +254,6 @@ bool ivug_crop_ug_destroy(IvugCropUG * crop_ug) crop_ug->filepath = NULL; } - if(crop_ug->crop_view) - { - ivug_crop_view_destroy(crop_ug->crop_view); - crop_ug->crop_view = NULL; - } crop_ug->layout = NULL; free(crop_ug); @@ -438,11 +266,6 @@ bool ivug_crop_ug_start(IvugCropUG * crop_ug) MSG_HIGH("ivug_crop_ug_start"); IV_ASSERT(crop_ug != NULL); - //Evas_Object *conformant = (Evas_Object *)ug_get_conformant(); - //elm_object_signal_emit(conformant, "elm,state,indicator,nooverlap", ""); - - ivug_crop_view_file_set(crop_ug->crop_view, crop_ug->filepath); - return true; } diff --git a/main/src/control/ivug-crop-ug.h b/main/src/control/ivug-crop-ug.h index 1cebee3..9c3cf86 100755 --- a/main/src/control/ivug-crop-ug.h +++ b/main/src/control/ivug-crop-ug.h @@ -1,52 +1,37 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_CROP_UG_H__ #define __IVUG_CROP_UG_H__ #include "ivug-crop-view.h" -#include "ivug-setas-view.h" -typedef struct { - IvugCropView *crop_view; - - Evas_Object *layout; - Evas_Object *parent; - - Evas_Object *navi_bar; - Elm_Object_Item *navi_it; - - char *filepath; -} IvugCropUG; +typedef struct _IvugCropUG IvugCropUG; #ifdef __cplusplus extern "C" { #endif -IvugCropUG * ivug_crop_ug_create(Evas_Object *parent, int w, int h, bool bRatioFix, const char *filepath); - -IvugCropUG * ivug_setas_crop_ug_create(Evas_Object *parent, const char *filepath, - ivug_setas_mode mode, ivug_set_screen_type type); - Evas_Object * ivug_crop_ug_get_layout(IvugCropUG * crop_ug); -bool ivug_crop_ug_destroy(IvugCropUG * crop_ug); - bool ivug_crop_ug_start(IvugCropUG * crop_ug); +bool ivug_crop_ug_destroy(IvugCropUG * crop_ug); + #ifdef __cplusplus } #endif diff --git a/main/src/control/ivug-detail-info.c b/main/src/control/ivug-detail-info.c deleted file mode 100755 index 86076c1..0000000 --- a/main/src/control/ivug-detail-info.c +++ /dev/null @@ -1,723 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ivug-detail-info.h" - -#include - -#include - -#include "ivug-details-view.h" -#include - -#include "ivug-drm-common.h" - -#include "ivug-file-info.h" - -#include "ivug-string.h" - -#include "ivug-util.h" - - -#define NOMAL_BUF 128 - -#define DETAILS_DIR_PATH_LEN_MAX 4096 - -enum IVUG_SIZE_TYPE -{ - SIZE_BYTE = 0, - SIZE_KB, - SIZE_MB, - SIZE_GB -}; - -/* - Should free returned value after use -*/ -static char * -_get_drm_availabile_string(drm_permission_type_e permissionType) -{ - switch(permissionType) - { - case DRM_PERMISSION_TYPE_ANY: - return strdup(IDS_ANY); - break; - - case DRM_PERMISSION_TYPE_PLAY: - return strdup(IDS_PLAY); - break; - - case DRM_PERMISSION_TYPE_COLLABORATIVE_PLAY: - return strdup(IDS_COLLABORATIVE_PLAY); - break; - - case DRM_PERMISSION_TYPE_DISPLAY: - return strdup(IDS_DISPLAY); - break; - - case DRM_PERMISSION_TYPE_EXECUTE: - return strdup(IDS_EXECUTE); - break; - - case DRM_PERMISSION_TYPE_PRINT: - return strdup(IDS_PRINT); - break; - - case DRM_PERMISSION_TYPE_EXPORT_COPY: - return strdup(IDS_COPY); - break; - - case DRM_PERMISSION_TYPE_EXPORT_MOVE: - return strdup(IDS_MOVE); - break; - - default: - return strdup(IDS_N_A); - break; - - } -} - -static char * -_get_filesize_string(long long size) -{ -#define FILE_SIZE_LEN_MAX 64 - - MSG_DETAIL_HIGH("Entered size = %lld", size); - - char *tmp = (char *)calloc(1, sizeof(char)*(FILE_SIZE_LEN_MAX+1)); - if (tmp == NULL) - { - return NULL; - } - - if(size > (1<<30)) // GB - { - snprintf(tmp,FILE_SIZE_LEN_MAX,"%.1f GB", (double)size/(1<<30)); - } - else if(size > (1<<20)) // MB - { - snprintf(tmp,FILE_SIZE_LEN_MAX,"%.1f MB", (double)size/(1<<20)); - } - else if(size > (1<<10)) // KB - { - snprintf(tmp,FILE_SIZE_LEN_MAX,"%.0f KB", (double)size/(1<<10)); - } - else // Byte - { - snprintf(tmp,FILE_SIZE_LEN_MAX,"%lld B", size); - } - - MSG_DETAIL_HIGH("Result Size = %s", tmp); - return tmp; -} - -void _add_string(char **org, char *add_string) -{ - char *string = strdup(add_string); - if(*org == NULL) - { - *org = string; - } - else - { - *org = g_strconcat(*org, "/", string, NULL); - free(string); - } -} - -bool -ivug_datail_get_exif_info(/*out*/char** name, /*out*/char **contents, - const char *path, Media_Type stype, exif_info_type_e type) -{ -#define UG_EXIF_ARR_LENGTH 255 - - bool bret = false; - char *string = NULL; - int status = 0; - - double latitude = 0.0; - double longtitude = 0.0; - - switch(type) - { - case EXIF_INFO_ORIENTATION: - status = ivug_fileinfo_get_orientation(path); - if(status < 0) - return false; - *name = strdup(IDS_ORIENTATION); - switch(status) - { - case 1: - case 2: - *contents = strdup("0"); - break; - case 3: - case 4: - *contents = strdup("180"); - break; - case 5: - case 8: - *contents = strdup("270"); - break; - case 6: - case 7: - *contents = strdup("90"); - break; - default: - *contents = strdup(IDS_UNKNOWN); - break; - } - break; - case EXIF_INFO_LATITUDE: - if(stype == SLIDE_TYPE_IMAGE) // this will be removed!!!! - { - bret = ivug_fileinfo_get_image_gps_info(path, &latitude, &longtitude); - } - else if(stype == SLIDE_TYPE_VIDEO) - { - bret = ivug_fileinfo_get_video_gps_info(path, &latitude, &longtitude); - } - if(bret == false) - { - MSG_DETAIL_WARN("get latitude error"); - return false; - } - string = calloc(1, sizeof(char)*UG_EXIF_ARR_LENGTH); - snprintf(string , UG_EXIF_ARR_LENGTH, "%.5f", latitude); - - *name = strdup(IDS_LATITUDE); - *contents = string; - break; - - case EXIF_INFO_LONGITTUDE: - if(stype == SLIDE_TYPE_IMAGE) // this will be removed!!!! - { - bret = ivug_fileinfo_get_image_gps_info(path, &latitude, &longtitude); - } - else if(stype == SLIDE_TYPE_VIDEO) - { - bret = ivug_fileinfo_get_video_gps_info(path, &latitude, &longtitude); - } - if(bret == false) - { - MSG_DETAIL_WARN("get longtitude error"); - return false; - } - string = calloc(1, sizeof(char)*UG_EXIF_ARR_LENGTH); - snprintf(string , UG_EXIF_ARR_LENGTH, "%.5f", longtitude); - - *name = strdup(IDS_LONGITUDE); - *contents = string; - break; - - case EXIF_INFO_MANUFACTURE: - string = ivug_fileinfo_get_maker_name(path); - if(string == NULL) - return false; - *name = strdup(IDS_MANUFACTURE); - *contents = string; - break; - case EXIF_INFO_MODEL: - string = ivug_fileinfo_get_model_name(path); - if(string == NULL) - return false; - *name = strdup(IDS_MODEL); - *contents = string; - break; - case EXIF_INFO_FLASH: - status = ivug_fileinfo_get_flash_status(path); - if(status < 0) - return false; - *name = strdup(IDS_FLASH); - if(status == 1) - { - *contents = strdup(IDS_FLASH); - } - else - { - *contents = strdup(IDS_NO_FLASH); - } - break; - case EXIF_INFO_FOCAL_LENGTH: - string = ivug_fileinfo_get_focal_length(path); - if(string == NULL) - return false; - *name = strdup(IDS_FOCAL_LENGTH); - *contents = string; - break; - case EXIF_INFO_WHITE_BALANCE: - status = ivug_fileinfo_get_white_balance(path); - if(status < 0) - return false; - *name = strdup(IDS_WHITE_BALANCE); - if(status == 0) - { - *contents = strdup(IDS_AUTO); - } - else - { - *contents = strdup(IDS_MANUAL); - } - break; - case EXIF_INFO_APERTURE: - string = ivug_fileinfo_get_aperture(path); - if(string == NULL) - return false; - *name = strdup(IDS_APERTURE); - *contents = string; - break; - case EXIF_INFO_EXPOSURE_TIME: - string = ivug_fileinfo_get_exposure_time(path); - if(string == NULL) - return false; - *name = strdup(IDS_EXPOSURE_TIME); - *contents = string; - break; - case EXIF_INFO_ISO: - string = ivug_fileinfo_get_iso(path); - if(string == NULL) - return false; - *name = strdup(IDS_ISO); - *contents = string; - break; - default: - break; - } - - return true; -} - - -bool -ivug_datail_get_file_info(/*out*/char** name, /*out*/char **contents, - const char *path, Media_Type stype, file_info_type_e type) -{ - struct stat statbuf; - int width = 0; - int height = 0; - - switch(type) - { - case FILE_INFO_NAME: - *name = strdup(IDS_NAME); - *contents = ecore_file_strip_ext(ecore_file_file_get(path)); - break; - case FILE_INFO_FORMAT: - *name = strdup(IDS_FORMAT); - *contents = ivug_fileinfo_get_file_extension(path); - if(*contents == NULL) - { - *contents = strdup(IDS_UNKNOWN); - } - break; - case FILE_INFO_DATE_CREATED: - *name = strdup(IDS_DATE_CREATED); - if(stat(path, &statbuf) == -1) - { - MSG_DETAIL_ERROR("Cannot get stat()"); - *contents = strdup(IDS_UNKNOWN); - break; - } - *contents = ivug_get_icu_date(statbuf.st_mtime); - if(*contents == NULL) - { - *contents = strdup(IDS_UNKNOWN); - } - break; - case FILE_INFO_SIZE: - *name = strdup(IDS_SIZE); - if(stat(path, &statbuf) == -1) - { - MSG_DETAIL_ERROR("Cannot get stat()"); - *contents = strdup(IDS_UNKNOWN); - break; - } - *contents = _get_filesize_string(statbuf.st_size); - if(*contents == NULL) - { - *contents = strdup(IDS_UNKNOWN); - } - break; - case FILE_INFO_RESOLUTION: - *name = strdup(IDS_RESOLUTION); - *contents = (char *)calloc(1, sizeof(char)*NOMAL_BUF+1); - if(stype == SLIDE_TYPE_IMAGE) - { - if(ivug_fileinfo_get_image_resolution(path, &width, &height) == false) - { - snprintf(*contents, NOMAL_BUF, "%s", IDS_N_A); - } - else - { - snprintf(*contents, NOMAL_BUF,"%dX%d", width, height); - } - } - else if(stype == SLIDE_TYPE_VIDEO) - { - if ( ivug_fileinfo_get_video_resolution(path, &width, &height) == false) - { - snprintf(*contents, NOMAL_BUF, "%s", IDS_N_A); - } - else - { - snprintf(*contents, NOMAL_BUF,"%dX%d", width, height); - } - } - else - { - snprintf(*contents, NOMAL_BUF, "%s", IDS_N_A); - } - - break; - case FILE_INFO_FILE_LOCATION: - *name = strdup(IDS_LOCATION); - *contents = strdup(path); - break; - default: - break; - } - - return true; -} - - -bool -ivug_datail_get_drm_info(/*out*/char** name, /*out*/char **contents, - const char *path, Media_Type stype, drm_info_type_e type) -{ -#define VALIDITY_SIZE 80 - -#define MOUNTH_COUNT 12 //used for drm file info, -#define DAY_COUNT 30 -#define HOUR_COUNT 24 -#define SECOND_COUNT 3600.0 - - bool bret = false; - - if(ivug_drm_has_valid_ro(path) == false) - { - MSG_DETAIL_WARN("%s is not valid right object", path); - return false; - } - - char *string = NULL; - drm_constraint_info_s constraint_info; - drm_file_info_s info; - int ret = -1; - int i = -1; - char validity[VALIDITY_SIZE] = ""; - - switch(type) - { - case DRM_INFO_VENDOR: - *name = strdup(IDS_VENDOR); - *contents = ivug_drm_get_drm_vendor_info(path); - if(*contents == NULL) - { - *contents = strdup(IDS_UNKNOWN); - } - break; - case DRM_INFO_FORWARDING: - *name = strdup(IDS_FORWARDING); - bret = ivug_drm_get_forwarding_info(path); - if(bret == true) - { - *contents = strdup(IDS_POSSIBLE); - } - else - { - *contents = strdup(IDS_IMPOSSIBLE); - } - break; - case DRM_INFO_AVAILABLE_USES: - { - *name = strdup(IDS_AVAILABLE_USES); - - memset(&info, 0x0, sizeof(drm_file_info_s)); - ret = drm_get_file_info(path, &info); - if(ret != DRM_RETURN_SUCCESS) - { - MSG_IVUG_ERROR("drm_get_file_info Failed!!, ret=0x%x", ret); - *contents = strdup(IDS_UNKNOWN); - return true; - } - if (info.oma_info.method == DRM_METHOD_TYPE_FORWARD_LOCK) - { - MSG_IVUG_HIGH("DRM_METHOD_TYPE_FORWARD_LOCK"); - *contents = strdup(IDS_ANY); - return true; - } - - for(i=DRM_PERMISSION_TYPE_NONE; i<=DRM_PERMISSION_TYPE_EXPORT_MOVE; i++) - { - memset(&constraint_info, 0x0, sizeof(drm_constraint_info_s)); - - ret = drm_get_constraint_info(path, i, &constraint_info); - if(ret != DRM_RETURN_SUCCESS) - { - MSG_IVUG_ERROR("drm_get_constraint_info Failed!!, perm_type=%d ret=0x%x", i, ret); - continue; - } - - string = _get_drm_availabile_string(i); - _add_string(contents, string); - free(string); - } - if(*contents == NULL) - { - *contents = strdup(IDS_UNKNOWN); - } - } - break; - case DRM_INFO_TYPE: - { - *name = strdup(IDS_TYPE); - - memset(&info, 0x0, sizeof(drm_file_info_s)); - ret = drm_get_file_info(path, &info); - if(ret != DRM_RETURN_SUCCESS) - { - MSG_IVUG_ERROR("drm_get_file_info Failed!!, ret=0x%x", ret); - *contents = strdup(IDS_UNKNOWN); - return true; - } - if (info.oma_info.method == DRM_METHOD_TYPE_FORWARD_LOCK) - { - MSG_IVUG_HIGH("DRM_METHOD_TYPE_FORWARD_LOCK"); - *contents = strdup(IDS_UNLIMITED); - return true; - } - - for(i=DRM_PERMISSION_TYPE_NONE; i<=DRM_PERMISSION_TYPE_EXPORT_MOVE; i++) - { - memset(&constraint_info, 0x0, sizeof(drm_constraint_info_s)); - - ret = drm_get_constraint_info(path, i, &constraint_info); - if(ret != DRM_RETURN_SUCCESS) - { - MSG_IVUG_ERROR("drm_get_constraint_info Failed!!, perm_type=%d ret=0x%x", i, ret); - continue; - } - if(constraint_info.const_type.is_unlimited) - _add_string(contents, IDS_UNLIMITED); - - if(constraint_info.const_type.is_accumulated) - _add_string(contents, IDS_ACCUMULATED_TIME); - - if(constraint_info.const_type.is_count) - _add_string(contents, IDS_COUNT); - - if(constraint_info.const_type.is_datetime) - _add_string(contents, IDS_TIME); - - if(constraint_info.const_type.is_individual) - _add_string(contents, IDS_INDIVIDUAL); - - if(constraint_info.const_type.is_interval) - _add_string(contents, IDS_INTERVAL); - - if(constraint_info.const_type.is_system) - _add_string(contents, IDS_SYSTEM); - - if(constraint_info.const_type.is_timedcount) - _add_string(contents, IDS_TIMED_COUNT); - } - if(*contents == NULL) - { - *contents = strdup(IDS_UNKNOWN); - } - } - break; - case DRM_INFO_VALIDITY: - *name = strdup(IDS_VALIDITY); - - memset(&info, 0x0, sizeof(drm_file_info_s)); - ret = drm_get_file_info(path, &info); - if(ret != DRM_RETURN_SUCCESS) - { - MSG_IVUG_ERROR("drm_get_file_info Failed!!, ret=0x%x", ret); - *contents = strdup(IDS_UNKNOWN); - return true; - } - if (info.oma_info.method == DRM_METHOD_TYPE_FORWARD_LOCK) - { - MSG_IVUG_HIGH("DRM_METHOD_TYPE_FORWARD_LOCK"); - *contents = strdup(IDS_UNLIMITED); - return true; - } - - for(i=DRM_PERMISSION_TYPE_NONE; i<=DRM_PERMISSION_TYPE_EXPORT_MOVE; i++) - { - memset(&constraint_info, 0x0, sizeof(drm_constraint_info_s)); - - ret = drm_get_constraint_info(path, i, &constraint_info); - if(ret != DRM_RETURN_SUCCESS) - { - MSG_IVUG_ERROR("drm_get_constraint_info Failed!!, perm_type=%d ret=0x%x", i, ret); - continue; - } - - if(constraint_info.const_type.is_unlimited) - { - MSG_IVUG_HIGH("Unlimited:for permission=%d", i); - _add_string(contents, IDS_UNLIMITED); - } - - if(constraint_info.const_type.is_accumulated) - { - MSG_IVUG_HIGH("Accumulated Constraint is present"); - MSG_IVUG_HIGH("accumulated_original_seconds=%d", - constraint_info.accumulated_original_seconds); - MSG_IVUG_HIGH("accumulated_remaining_seconds=%d", - constraint_info.accumulated_remaining_seconds); - - snprintf(validity, sizeof(validity),"Total %.1f hours", - constraint_info.accumulated_remaining_seconds/SECOND_COUNT); - _add_string(contents, validity); - } - - if(constraint_info.const_type.is_count) - { - MSG_IVUG_HIGH("Count Constraint is present"); - MSG_IVUG_HIGH("original_count=%d", - constraint_info.original_count); - MSG_IVUG_HIGH("remaining_count=%d", - constraint_info.remaining_count); - - snprintf(validity, sizeof(validity),"%d left", constraint_info.remaining_count); - _add_string(contents, validity); - } - - if(constraint_info.const_type.is_datetime) - { - MSG_IVUG_HIGH("DATETIME Constraint is present"); - MSG_IVUG_HIGH("start_time:" - "Year=%d,Month=%d,Day=%d,Hour=%d, minute=%d, Second=%d", - constraint_info.start_time.tm_year, - constraint_info.start_time.tm_mon, - constraint_info.start_time.tm_mday, - constraint_info.start_time.tm_hour, - constraint_info.start_time.tm_min, - constraint_info.start_time.tm_sec); - - MSG_IVUG_HIGH("end_time:" - "Year=%d,Month=%d,Day=%d,Hour=%d, minute=%d, Second=%d", - constraint_info.end_time.tm_year, - constraint_info.end_time.tm_mon, - constraint_info.end_time.tm_mday, - constraint_info.end_time.tm_hour, - constraint_info.end_time.tm_min, - constraint_info.end_time.tm_sec); - - snprintf(validity, sizeof(validity),"%d.%d.%d %d:%d ~ %d.%d.%d %d:%d:%d", - constraint_info.start_time.tm_mday, - constraint_info.start_time.tm_mon, - constraint_info.start_time.tm_year, - constraint_info.start_time.tm_hour, - constraint_info.start_time.tm_sec, - constraint_info.end_time.tm_mday, - constraint_info.end_time.tm_mon, - constraint_info.end_time.tm_year, - constraint_info.end_time.tm_hour, - constraint_info.end_time.tm_min, - constraint_info.end_time.tm_sec - ); - _add_string(contents, validity); - } - - if(constraint_info.const_type.is_individual) - { - MSG_IVUG_HIGH("INDIVIDUAL Constraint is present"); - MSG_IVUG_HIGH("individual_identity_type=%d " - "individual_id=%s", - constraint_info.individual_identity_type, - constraint_info.individual_id); - - _add_string(contents, IDS_INDIVIDUAL); - } - - if(constraint_info.const_type.is_interval) - { - MSG_IVUG_HIGH("INTERVAL Constraint is present"); - MSG_IVUG_HIGH("interval_time:" - "Year=%d,Month=%d,Day=%d,Hour=%d, minute=%d, Second=%d", - constraint_info.interval_time.tm_year, - constraint_info.interval_time.tm_mon, - constraint_info.interval_time.tm_mday, - constraint_info.interval_time.tm_hour, - constraint_info.interval_time.tm_min, - constraint_info.interval_time.tm_sec); - - if(constraint_info.interval_time.tm_year == 0 - && constraint_info.interval_time.tm_mon == 0 - && constraint_info.interval_time.tm_mday == 0 - && constraint_info.interval_time.tm_hour == 0) - { - snprintf(validity, sizeof(validity),"Total %d miniutes", constraint_info.interval_time.tm_min); - } - else - { - snprintf(validity, sizeof(validity),"Total %d hours", - ((constraint_info.interval_time.tm_year*MOUNTH_COUNT - + constraint_info.interval_time.tm_mon)*DAY_COUNT - + constraint_info.interval_time.tm_mday)*HOUR_COUNT - + constraint_info.interval_time.tm_hour - ); - } - _add_string(contents, validity); - } - - if(constraint_info.const_type.is_system){ - MSG_IVUG_HIGH("SYSTEM Constraint is present"); - MSG_IVUG_HIGH("system_identity_type=%d " - "system_id=%s", - constraint_info.system_identity_type, - constraint_info.system_id); - - _add_string(contents, IDS_SYSTEM); - } - - if(constraint_info.const_type.is_timedcount){ - MSG_IVUG_HIGH("TIMED-COUNT Constraint is present"); - MSG_IVUG_HIGH("timed_original_count=%d", - constraint_info.timed_original_count); - - MSG_IVUG_HIGH("timed_remaining_count=%d", - constraint_info.timed_remaining_count); - - MSG_IVUG_HIGH("timed_count_timer=%d", - constraint_info.timed_count_timer); - - snprintf(validity, sizeof(validity),"%d (%d sec)", - constraint_info.timed_remaining_count, - constraint_info.timed_count_timer - ); - _add_string(contents, validity); - } - } - if(*contents == NULL) - { - *contents = strdup(IDS_UNKNOWN); - } - break; - default: - break; - } - - return true; -} - diff --git a/main/src/control/ivug-detail-info.h b/main/src/control/ivug-detail-info.h deleted file mode 100755 index 021f646..0000000 --- a/main/src/control/ivug-detail-info.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 __IVUG_DETAIL_COMMON_H__ -#define __IVUG_DETAIL_COMMON_H__ - -#include - -#include "ivug-common.h" -#include "ivug-drm-common.h" -#include "ivug-media.h" - -typedef enum { - IVUG_DETAIL_ERROR_TYPE = -1, - IVUG_DETAIL_IMAGE_TYPE, - IVUG_DETAIL_VIDEO_TYPE -} ivug_detail_file_t; - -typedef enum -{ - FILE_INFO_NAME, - FILE_INFO_FORMAT, - FILE_INFO_DATE_CREATED, - FILE_INFO_SIZE, - FILE_INFO_RESOLUTION, - FILE_INFO_FILE_LOCATION, - FILE_INFO_MAX -}file_info_type_e; - -typedef enum -{ - EXIF_INFO_ORIENTATION, - EXIF_INFO_LATITUDE, - EXIF_INFO_LONGITTUDE, - EXIF_INFO_MANUFACTURE, - EXIF_INFO_MODEL, - EXIF_INFO_FLASH, - EXIF_INFO_FOCAL_LENGTH, - EXIF_INFO_WHITE_BALANCE, - EXIF_INFO_APERTURE, - EXIF_INFO_EXPOSURE_TIME, - EXIF_INFO_ISO, - EXIF_INFO_MAX -}exif_info_type_e; - -typedef enum -{ - DRM_INFO_VENDOR, - DRM_INFO_FORWARDING, - DRM_INFO_AVAILABLE_USES, - DRM_INFO_TYPE, - DRM_INFO_VALIDITY, - DRM_INFO_MAX -}drm_info_type_e; - -#ifdef __cplusplus -extern "C" { -#endif - -bool -ivug_datail_get_exif_info(/*out*/char** name_, /*out*/char **contents_, - const char *path, Media_Type stype, exif_info_type_e type); - -bool -ivug_datail_get_file_info(/*out*/char** name, /*out*/char **contents, - const char *path, Media_Type stype, file_info_type_e type); - -bool -ivug_datail_get_drm_info(/*out*/char** name, /*out*/char **contents, - const char *path, Media_Type stype, drm_info_type_e type); - - - -#ifdef __cplusplus -} -#endif - - -#endif // __IVUG_DETAIL_COMMON_H__ - diff --git a/main/src/control/ivug-ext-ug.c b/main/src/control/ivug-ext-ug.c new file mode 100755 index 0000000..a005bcd --- /dev/null +++ b/main/src/control/ivug-ext-ug.c @@ -0,0 +1,2132 @@ +/* +* Copyright (c) 2000-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 "ivug-ext-ug.h" +#include "ivug-util.h" +#include "ivug-debug.h" +#include "ivug-db.h" +#include "ivug-context.h" + +#include "ivug-widget.h" + +/* + ug itself has responsibility to set indicator status. so I undefined this feature +*/ +#undef USE_INDICATOR_STATE_SET + +//definition +#define MESSAGE_UG_NAME "msg-composer-efl" +#define S_NOTE_UG_NAME "smemo-efl" +#define EMAIL_UG_NAME "email-composer-efl" +#define CONTACT_UG_NAME "contacts-list-efl" +#define MYFILE_DETAIL_UG_NAME "myfile-detail-efl" +#define BLUETOOTH_UG_NAME "setting-bluetooth-efl" +#define MYFILE_UG_NAME "myfile-efl" +#define GALLERY_UG_NAME "gallery-efl" + +#define CONTACT_SELECT_UG_NAME "contacts-tabui-efl" +#define CONTACT_EDIT_UG_NAME "contacts-details-efl" +#define GL_UG_PKG_TAGBUDDY_SETTING "setting-tagbuddy-efl" + + +#define VIDEOPLAYER_PKG_NAME "com.samsung.video-player" +#define BLUETOOTH_PKG_NAME "com.samsung.bluetooth" +#define BROWSER_PKG_NAME "com.samsung.browser" +#define MESSAGE_PKG_NAME "com.samsung.message" +#define EMAIL_PKG_NAME "com.samsung.email" +#define FACEBOOK_PKG_NAME "com.samsung.facebook" +#define IMAGE_EDITOR_PKG_NAME "com.samsung.image-editor" +#define IMAGE_VIEWER_PKG_NAME "com.samsung.image-viewer" + +#define WIFI_FILE_TRANSFER_UG_NAME "fileshare-efl" + +#define PRINT_PKG_NAME "com.samsung.mobileprint" + +#define ALLSHARE_CAST_APP_NAME "com.samsung.allshare-cast-popup" + +#define OPERATION_NAME_PRINT "http://tizen.org/appcontrol/operation/print" + +#define APP_CONTROL_PRINT_FILES_TYPE "app_control_print_files_type" + +#define MIME_TYPE_LEN 255 + +#define FILE_PREFIX "file://" + +typedef struct { + ug_destroy_cb destroy_func; + ug_result_cb result_func; + ug_end_cb end_func; + void *cb_data; +}ext_ug_t; + +static bool _data_print(app_control_h service, const char *key, void *user_data) +{ + char *value; + + char **value_array; + int array_len = 1; + int i; + bool array = false; + + app_control_is_extra_data_array(service, key, &array); + if (array == false) + { + app_control_get_extra_data(service, key, &value); + MSG_IVUG_HIGH(" %s : %s", key, value); + free(value); + } + else + { + app_control_get_extra_data_array(service, key, &value_array, &array_len); + MSG_IVUG_HIGH(" %s :", key); + for (i=0; iresult_func) + { + ug_struct->result_func(ug, result, ug_struct->cb_data); + } +} + + +static void +_ivug_ext_ug_destroy_cb(ui_gadget_h ug, void *priv) +{ + if (!ug) return; + + ext_ug_t *ug_struct = (ext_ug_t *)priv; + + MSG_IMAGEVIEW_HIGH("Callback destroy ug. ext_ug_t=0x%08x", ug_struct); + +#ifdef USE_INDICATOR_STATE_SET + ivug_set_indicator_visibility(false); + ivug_set_indicator_overlap_mode(true); +#endif + + ug_destroy(ug); + + if (ug_struct->destroy_func) + { + ug_struct->destroy_func(ug, ug_struct->cb_data); + } + +} + +static void +_ivug_ext_ug_end_cb(ui_gadget_h ug, void *priv) +{ + if (!ug) return; + + ext_ug_t *ug_struct = (ext_ug_t *)priv; + + MSG_IMAGEVIEW_HIGH("Callback end ug. ext_ug_t=0x%08x", ug_struct); + +// Call when animation eneded. +#ifdef USE_INDICATOR_STATE_SET + ivug_set_indicator_visibility(false); + ivug_set_indicator_overlap_mode(true); +#endif + + if (ug_struct == NULL) + return; + + if (ug_struct->end_func) + { + ug_struct->end_func(ug, ug_struct->cb_data); + } + + free(ug_struct); + ug_struct = NULL; +} + +ui_gadget_h _ivug_ext_launch_ug(const char *pkgname, app_control_h service, ug_destroy_cb func, void *data) +{ + ui_gadget_h ug = NULL; + struct ug_cbs cbs = {0, }; + + ext_ug_t *ug_struct = calloc(1, sizeof(ext_ug_t)); + + if (ug_struct != NULL) { + ug_struct->result_func = NULL; + ug_struct->destroy_func = func; + ug_struct->cb_data = data; + } + + cbs.layout_cb = _ivug_ext_ug_layout_cb; + cbs.result_cb = _ivug_ext_ug_result_cb; + cbs.destroy_cb = _ivug_ext_ug_destroy_cb; + cbs.end_cb = _ivug_ext_ug_end_cb; + cbs.priv = ug_struct; + + ug = ug_create(NULL, pkgname, UG_MODE_FULLVIEW, service, &cbs); + + return ug; +} + +ui_gadget_h _ivug_ext_launch_ug_with_result(const char *pkgname, + app_control_h service, ug_result_cb result_func, ug_destroy_cb destroy_func, void *data) +{ + ui_gadget_h ug = NULL; + struct ug_cbs cbs = {0, }; + + ext_ug_t *ug_struct = calloc(1, sizeof(ext_ug_t)); + + if (ug_struct != NULL) { + ug_struct->result_func = result_func; + ug_struct->destroy_func = destroy_func; + ug_struct->cb_data = data; + } + + cbs.layout_cb = _ivug_ext_ug_layout_cb; + cbs.result_cb = _ivug_ext_ug_result_cb; + cbs.destroy_cb = _ivug_ext_ug_destroy_cb; + cbs.end_cb = _ivug_ext_ug_end_cb; + cbs.priv = ug_struct; + + ug = ug_create(NULL, pkgname, UG_MODE_FULLVIEW, service, &cbs); + + return ug; +} + + +void ivug_ext_app_control_reply_cb(app_control_h request, app_control_h reply, app_control_result_e result, void *user_data) +{ + MSG_IMAGEVIEW_HIGH("ivug_ext_app_control_reply_cb"); + switch (result) + { + case APP_CONTROL_RESULT_SUCCEEDED: + MSG_IMAGEVIEW_HIGH("APP_CONTROL_RESULT_SUCCEEDED"); + break; + case APP_CONTROL_RESULT_FAILED: + MSG_IMAGEVIEW_HIGH("APP_CONTROL_RESULT_FAILED"); + break; + case APP_CONTROL_RESULT_CANCELED: + MSG_IMAGEVIEW_HIGH("APP_CONTROL_RESULT_CANCELED"); + break; + default: + MSG_IMAGEVIEW_ERROR("unhandled value %d", result); + break; + } +} + +ui_gadget_h ivug_ext_launch_wifi_file_transfer(const char *uri, ug_destroy_cb func, void *data) +{ + MSG_IMAGEVIEW_HIGH("%s. URI=%s", __func__, uri); + + int ret = -1; + int destroy_ret = -1; + + app_control_h handle; + ui_gadget_h ug = NULL; + + ret = app_control_create(&handle); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_create failed, %d", ret); + return NULL; + } + + /*ret = app_control_set_operation(handle, APP_CONTROL_OPERATION_VIEW); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_operation failed, %d", ret); + goto WIFI_TRANSFER_END; + }*/ + + ret = app_control_set_uri (handle, uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto WIFI_TRANSFER_END; + } + + ret = app_control_add_extra_data(handle, "filecount", "1"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto WIFI_TRANSFER_END; + } + + ret = app_control_add_extra_data(handle, "files", uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto WIFI_TRANSFER_END; + } + + /*const char *pkgname = WIFI_FILE_TRANSFER_UG_NAME; + + ret = app_control_set_app_id(handle, pkgname); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto WIFI_TRANSFER_END; + }*/ + + ug = _ivug_ext_launch_ug(WIFI_FILE_TRANSFER_UG_NAME, handle, func, data); + +WIFI_TRANSFER_END: + destroy_ret = app_control_destroy(handle); + if (destroy_ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_destroy failed, %d", destroy_ret); + return NULL; + } + + return (ret == APP_CONTROL_ERROR_NONE ? ug : NULL); +} + +bool ivug_ext_launch_videoeditor(const char *uri, app_control_reply_cb callback, void *data) +{ +/* + Replay callback is not called when exit videoeditor. + Callee app should call app_control_reply_request(). then Caller app can get reply callback. +*/ + MSG_IMAGEVIEW_HIGH("%s. URI=%s", __func__, uri); + + int ret = -1; + int destroy_ret = -1; + + app_control_h handle; + + ret = app_control_create(&handle); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_create failed, %d", ret); + return false; + } + + ret = app_control_set_operation(handle, APP_CONTROL_OPERATION_VIEW); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_operation failed, %d", ret); + goto VIDEO_EDITOR_END; + } + + ret = app_control_set_uri (handle, uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto VIDEO_EDITOR_END; + } + + ret = app_control_add_extra_data(handle, "path", uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto VIDEO_EDITOR_END; + } + + ret = app_control_add_extra_data(handle, "launching_application", "image_viewer"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto VIDEO_EDITOR_END; + } + + ret = app_control_add_extra_data(handle, "edit_mode", "trim"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto VIDEO_EDITOR_END; + } + + const char *pkgname = VIDEOPLAYER_PKG_NAME; + + ret = app_control_set_app_id(handle, pkgname); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto VIDEO_EDITOR_END; + } + + if (callback == NULL) + { + callback = ivug_ext_app_control_reply_cb; + data = NULL; + } + + ret = app_control_send_launch_request(handle, callback, data); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_send_launch_request failed, %d", ret); + goto VIDEO_EDITOR_END; + } + +VIDEO_EDITOR_END: + destroy_ret = app_control_destroy(handle); + if (destroy_ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_destroy failed, %d", destroy_ret); + return false; + } + + return (ret == APP_CONTROL_ERROR_NONE ? true : false); +} + +ui_gadget_h ivug_ext_launch_s_note(const char *uri, ug_destroy_cb func, void *data) +{ + MSG_IMAGEVIEW_HIGH("%s. URI=%s", __func__, uri); + + int ret = -1; + int destroy_ret = -1; + + app_control_h handle; + ui_gadget_h ug = NULL; + + ret = app_control_create(&handle); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_create failed, %d", ret); + return NULL; + } + + /*ret = app_control_set_operation(handle, APP_CONTROL_OPERATION_VIEW); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_operation failed, %d", ret); + goto MESSAGE_END; + }*/ + + ret = app_control_set_uri (handle, uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto MESSAGE_END; + } + + ret = app_control_add_extra_data(handle, "path", uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto MESSAGE_END; + } + + ret = app_control_add_extra_data(handle, "type", "insert"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto MESSAGE_END; + } + + + /*const char *pkgname = MESSAGE_UG_NAME; + + ret = app_control_set_app_id(handle, pkgname); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto MESSAGE_END; + }*/ + + ug = _ivug_ext_launch_ug(S_NOTE_UG_NAME, handle, func, data); + +MESSAGE_END: + destroy_ret = app_control_destroy(handle); + if (destroy_ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_destroy failed, %d", destroy_ret); + return NULL; + } + return (ret == APP_CONTROL_ERROR_NONE ? ug : NULL); +} + + + +ui_gadget_h ivug_ext_launch_message(const char *uri, ug_destroy_cb func, void *data) +{ + MSG_IMAGEVIEW_HIGH("%s. URI=%s", __func__, uri); + + int ret = -1; + int destroy_ret = -1; + + app_control_h handle; + ui_gadget_h ug = NULL; + + ret = app_control_create(&handle); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_create failed, %d", ret); + return NULL; + } + + /*ret = app_control_set_operation(handle, APP_CONTROL_OPERATION_VIEW); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_operation failed, %d", ret); + goto MESSAGE_END; + }*/ + + ret = app_control_set_uri (handle, uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto MESSAGE_END; + } + + if (ivug_is_web_uri(uri) == true) + { + ret = app_control_add_extra_data(handle, "BODY", uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto MESSAGE_END; + } + } + else + { + ret = app_control_add_extra_data(handle, "ATTACHFILE", uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto MESSAGE_END; + } + } + + /*const char *pkgname = MESSAGE_UG_NAME; + + ret = app_control_set_app_id(handle, pkgname); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto MESSAGE_END; + }*/ + + ug = _ivug_ext_launch_ug(MESSAGE_UG_NAME, handle, func, data); + +MESSAGE_END: + destroy_ret = app_control_destroy(handle); + if (destroy_ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_destroy failed, %d", destroy_ret); + return NULL; + } + return (ret == APP_CONTROL_ERROR_NONE ? ug : NULL); +} + +#ifdef IV_EXTENDED_FEATURES +bool ivug_ext_launch_email(const char *uri) +{ + MSG_IMAGEVIEW_HIGH("%s. URI=%s", __func__, uri); + + int ret = -1; + int destroy_ret = -1; + + app_control_h handle; + + ret = app_control_create(&handle); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_create failed, %d", ret); + return false; + } + + ret = app_control_set_operation(handle, "http://tizen.org/appcontrol/operation/compose"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_operation failed, %d", ret); + goto EMAIL_END; + } + + ret = app_control_set_uri(handle, uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto EMAIL_END; + } + + Ecore_X_Window win_id = elm_win_xwindow_get(ug_get_window()); + ret = app_control_set_window(handle, win_id); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto EMAIL_END; + } + + ret = app_control_add_extra_data(handle, "RUN_TYPE", "5"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto EMAIL_END; + } + + if (ivug_is_web_uri(uri) == true) + { + ret = app_control_add_extra_data(handle, "BODY", uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto EMAIL_END; + } + } + else + { + ret = app_control_add_extra_data(handle, "ATTACHMENT", uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto EMAIL_END; + } + } + + const char *pkgname = EMAIL_UG_NAME; + + ret = app_control_set_app_id(handle, pkgname); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_app_id failed, %d", ret); + goto EMAIL_END; + } + + ret = app_control_send_launch_request(handle, ivug_ext_app_control_reply_cb, NULL); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_send_launch_request failed, %d", ret); + goto EMAIL_END; + } + +EMAIL_END: + destroy_ret = app_control_destroy(handle); + if (destroy_ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_destroy failed, %d", destroy_ret); + return false; + } + + return (ret == APP_CONTROL_ERROR_NONE ? true : false); +} +#endif + +ui_gadget_h ivug_ext_launch_contact(const char *uri, ug_destroy_cb func, void *data) +{ + MSG_IMAGEVIEW_SEC("%s. URI=%s", __func__, uri); + + int ret = -1; + int destroy_ret = -1; + + app_control_h handle; + ui_gadget_h ug = NULL; + + ret = app_control_create(&handle); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_create failed, %d", ret); + return NULL; + } + + /*ret = app_control_set_operation(handle, APP_CONTROL_OPERATION_VIEW); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_operation failed, %d", ret); + goto MESSAGE_END; + }*/ + + ret = app_control_set_uri (handle, uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto CONTACT_END; + } + + ret = app_control_add_extra_data(handle, "type", "41"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto CONTACT_END; + } + + ret = app_control_add_extra_data(handle, "ct_path", uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto CONTACT_END; + } + + /*const char *pkgname = CONTACT_UG_NAME; + + ret = app_control_set_app_id(handle, pkgname); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto CONTACT_END; + }*/ + + ug = _ivug_ext_launch_ug(CONTACT_UG_NAME, handle, func, data); + +CONTACT_END: + destroy_ret = app_control_destroy(handle); + if (destroy_ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_destroy failed, %d", destroy_ret); + return NULL; + } + + return (ret == APP_CONTROL_ERROR_NONE ? ug : NULL); +} + +ui_gadget_h ivug_ext_launch_bluetooth_send(const char *uri, ug_destroy_cb func, void *data) +{ + MSG_IMAGEVIEW_HIGH("%s. URI=%s", __func__, uri); + + int ret = -1; + int destroy_ret = -1; + + app_control_h handle; + ui_gadget_h ug = NULL; + + ret = app_control_create(&handle); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_create failed, %d", ret); + return NULL; + } + + /*ret = app_control_set_operation(handle, APP_CONTROL_OPERATION_VIEW); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_operation failed, %d", ret); + goto BT_END; + }*/ + + ret = app_control_set_uri (handle, uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto BT_END; + } + + ret = app_control_add_extra_data(handle, "launch-type", "send"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto BT_END; + } + + ret = app_control_add_extra_data(handle, "filecount", "1"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto BT_END; + } + + ret = app_control_add_extra_data(handle, "files", uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto BT_END; + } + + /*const char *pkgname = BLUETOOTH_UG_NAME; + + ret = app_control_set_app_id(handle, pkgname); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto BT_END; + }*/ + + ug = _ivug_ext_launch_ug(BLUETOOTH_UG_NAME, handle, func, data); + +BT_END: + destroy_ret = app_control_destroy(handle); + if (destroy_ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_destroy failed, %d", destroy_ret); + return NULL; + } + + return (ret == APP_CONTROL_ERROR_NONE ? ug : NULL); +} + +ui_gadget_h ivug_ext_launch_bluetooth_print(const char *uri, ug_destroy_cb func, void *data) +{ + MSG_IMAGEVIEW_HIGH("%s. URI=%s", __func__, uri); + + int ret = -1; + int destroy_ret = -1; + + app_control_h handle; + ui_gadget_h ug = NULL; + + ret = app_control_create(&handle); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_create failed, %d", ret); + return NULL; + } + + /*ret = app_control_set_operation(handle, APP_CONTROL_OPERATION_VIEW); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_operation failed, %d", ret); + goto BT_END; + }*/ + + ret = app_control_set_uri (handle, uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto BT_PRINT_END; + } + + ret = app_control_add_extra_data(handle, "launch-type", "print"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto BT_PRINT_END; + } + + ret = app_control_add_extra_data(handle, "filecount", "1"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto BT_PRINT_END; + } + + ret = app_control_add_extra_data(handle, "files", uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto BT_PRINT_END; + } + + /*const char *pkgname = BLUETOOTH_UG_NAME; + + ret = app_control_set_app_id(handle, pkgname); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto BT_PRINT_END; + }*/ + + ug = _ivug_ext_launch_ug(BLUETOOTH_UG_NAME, handle, func, data); + +BT_PRINT_END: + destroy_ret = app_control_destroy(handle); + if (destroy_ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_destroy failed, %d", destroy_ret); + return NULL; + } + + return (ret == APP_CONTROL_ERROR_NONE ? ug : NULL); +} + +bool ivug_ext_launch_videoplayer(const char *uri) +{ + MSG_IMAGEVIEW_HIGH("%s. URI=%s", __func__, uri); + + int ret = -1; + int destroy_ret = -1; + + app_control_h handle; + + ret = app_control_create(&handle); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_create failed, 0x%08x", ret); + return false; + } + + ret = app_control_set_operation(handle, APP_CONTROL_OPERATION_VIEW); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_operation failed, 0x%08x", ret); + goto VIDEO_PLAYER_END; + } + + ret = app_control_set_uri (handle, uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, 0x%08x", ret); + goto VIDEO_PLAYER_END; + } + + ret = app_control_add_extra_data(handle, "launching_application", "image_viewer"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, 0x%08x", ret); + goto VIDEO_PLAYER_END; + } + + //do not set package + /*const char *pkgname = VIDEOPLAYER_PKG_NAME; + + ret = app_control_set_app_id(handle, pkgname); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto VIDEO_PLAYER_END; + }*/ + + ret = app_control_send_launch_request(handle, ivug_ext_app_control_reply_cb, NULL); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_send_launch_request failed, 0x%08x", ret); + goto VIDEO_PLAYER_END; + } + +VIDEO_PLAYER_END: + destroy_ret = app_control_destroy(handle); + if (destroy_ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_destroy failed, 0x%08x", destroy_ret); + return false; + } + + return (ret == APP_CONTROL_ERROR_NONE ? true : false); +} + +bool ivug_ext_launch_videoplayer_simple(const char *uri) +{ + MSG_IMAGEVIEW_HIGH("%s. URI=%s", __func__, uri); + + int ret = -1; + int destroy_ret = -1; + + app_control_h handle; + + ret = app_control_create(&handle); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_create failed, %d", ret); + return false; + } + + ret = app_control_set_operation(handle, APP_CONTROL_OPERATION_VIEW); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_operation failed, %d", ret); + goto VIDEO_PLAYER_SIMPLE_END; + } + + ret = app_control_set_uri (handle, uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto VIDEO_PLAYER_SIMPLE_END; + } + + ret = app_control_add_extra_data(handle, "path", uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto VIDEO_PLAYER_SIMPLE_END; + } + + // Camera -> Image Viewer -> Video player, In this case, launching_application bundle's value should be "light_play_view" + ret = app_control_add_extra_data(handle, "launching_application", "light_play_view"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto VIDEO_PLAYER_SIMPLE_END; + } + + const char *pkgname = VIDEOPLAYER_PKG_NAME; + + ret = app_control_set_app_id(handle, pkgname); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto VIDEO_PLAYER_SIMPLE_END; + } + + ret = app_control_send_launch_request(handle, ivug_ext_app_control_reply_cb, NULL); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_send_launch_request failed, %d", ret); + goto VIDEO_PLAYER_SIMPLE_END; + } + +VIDEO_PLAYER_SIMPLE_END: + destroy_ret = app_control_destroy(handle); + if (destroy_ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_destroy failed, %d", destroy_ret); + return false; + } + + return (ret == APP_CONTROL_ERROR_NONE ? true : false); +} + +bool ivug_ext_launch_twitter(const char *uri) +{ + MSG_IMAGEVIEW_HIGH("%s. URI=%s", __func__, uri); + + int ret = -1; + int destroy_ret = -1; + + app_control_h handle; + + ret = app_control_create(&handle); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_create failed, %d", ret); + return false; + } + + if (ivug_is_web_uri(uri) == true) + { + ret = app_control_set_operation(handle, "http://tizen.org/appcotnrol/operation/share_text"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_operation failed, %d", ret); + goto TWITTER_END; + } + ret = app_control_add_extra_data(handle, APP_CONTROL_DATA_TEXT, uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto TWITTER_END; + } + } + else + { + ret = app_control_set_operation(handle, "http://tizen.org/appcotnrol/operation/share"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_operation failed, %d", ret); + goto TWITTER_END; + } + ret = app_control_set_uri (handle, uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto TWITTER_END; + } + } + + const char *pkgname = "com.samsung.twitter"; + + ret = app_control_set_app_id(handle, pkgname); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto TWITTER_END; + } + + ret = app_control_send_launch_request(handle, ivug_ext_app_control_reply_cb, NULL); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_send_launch_request failed, %d", ret); + goto TWITTER_END; + } + +TWITTER_END: + destroy_ret = app_control_destroy(handle); + if (destroy_ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_destroy failed, %d", destroy_ret); + return false; + } + + return (ret == APP_CONTROL_ERROR_NONE ? true : false); +} + +bool ivug_ext_launch_facebook(const char *uri) +{ + MSG_IMAGEVIEW_HIGH("%s. URI=%s", __func__, uri); + + int ret = -1; + int destroy_ret = -1; + + app_control_h handle; + + ret = app_control_create(&handle); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_create failed, %d", ret); + return false; + } + + if (ivug_is_web_uri(uri) == true) + { + ret = app_control_set_operation(handle, "http://tizen.org/appcotnrol/operation/share_text"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_operation failed, %d", ret); + goto FACEBOOK_END; + } + ret = app_control_add_extra_data(handle, APP_CONTROL_DATA_TEXT, uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto FACEBOOK_END; + } + } + else + { + ret = app_control_set_operation(handle, "http://tizen.org/appcotnrol/operation/share"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_operation failed, %d", ret); + goto FACEBOOK_END; + } + ret = app_control_set_uri (handle, uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto FACEBOOK_END; + } + media_handle file_handle = ivug_db_get_file_handle(uri); + if (file_handle) + { + char *mime = ivug_db_get_mime_type(file_handle); + ivug_db_destroy_file_handle(file_handle); + if (mime) + { + ret = app_control_set_mime(handle, mime); + free(mime); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_mime failed, %d", ret); + goto FACEBOOK_END; + } + } + } + } + + const char *pkgname = "com.samsung.facebook"; + + ret = app_control_set_app_id(handle, pkgname); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto FACEBOOK_END; + } + + ret = app_control_send_launch_request(handle, ivug_ext_app_control_reply_cb, NULL); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_send_launch_request failed, %d", ret); + goto FACEBOOK_END; + } + +FACEBOOK_END: + destroy_ret = app_control_destroy(handle); + if (destroy_ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_destroy failed, %d", destroy_ret); + return false; + } + + return (ret == APP_CONTROL_ERROR_NONE ? true : false); +} + +bool ivug_ext_launch_picasa(const char *uri) +{ + MSG_IMAGEVIEW_HIGH("%s. URI=%s", __func__, uri); + + int ret = -1; + int destroy_ret = -1; + char xwin_id_str[12] = {0,}; + + app_control_h handle; + + ret = app_control_create(&handle); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_create failed, %d", ret); + return false; + } + + ret = app_control_set_operation(handle, "http://tizen.org/appcotnrol/operation/share"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_operation failed, %d", ret); + goto PICASA_END; + } + ret = app_control_set_uri (handle, uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto PICASA_END; + } + + const char *pkgname = "com.samsung.picasa"; + + ret = app_control_set_app_id(handle, pkgname); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto PICASA_END; + } + + Ecore_X_Window xwin_id = elm_win_xwindow_get(ug_get_window()); + eina_convert_itoa(xwin_id, xwin_id_str); + ret = app_control_add_extra_data(handle, "XWINDOW_ID", xwin_id_str); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto PICASA_END; + } + + ret = app_control_send_launch_request(handle, ivug_ext_app_control_reply_cb, NULL); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_send_launch_request failed, %d", ret); + goto PICASA_END; + } + +PICASA_END: + destroy_ret = app_control_destroy(handle); + if (destroy_ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_destroy failed, %d", destroy_ret); + return false; + } + + return (ret == APP_CONTROL_ERROR_NONE ? true : false); +} + +#ifdef IV_EXTENDED_FEATURES +bool ivug_ext_launch_sns(const char *pkgname, const char *uri) +{ + if (strcmp(pkgname, "com.samsung.twitter") == 0) + { + return ivug_ext_launch_twitter(uri); + } + else if (strcmp(pkgname, "com.samsung.facebook") == 0) + { + return ivug_ext_launch_facebook(uri); + } + else if (strcmp(pkgname, "com.samsung.picasa") == 0) + { + return ivug_ext_launch_picasa(uri); + } + else if (strcmp(pkgname, "com.samsung.youtube") == 0) + { + return ivug_ext_launch_default(uri, "http://tizen.org/appcotnrol/operation/share", pkgname, NULL, NULL); + } + else + { + MSG_IMAGEVIEW_ERROR("Unknown package name:%s", pkgname); + } + + return true; +} +#endif + +bool ivug_ext_launch_browser(const char *uri) +{ + MSG_IMAGEVIEW_HIGH("%s. URI=%s", __func__, uri); + + int ret = -1; + int destroy_ret = -1; + + app_control_h handle; + + ret = app_control_create(&handle); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_create failed, %d", ret); + return false; + } + + ret = app_control_set_operation(handle, APP_CONTROL_OPERATION_VIEW); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_operation failed, %d", ret); + goto BROWSER_END; + } + + ret = app_control_add_extra_data(handle, "url", uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto BROWSER_END; + } + + ret = app_control_set_uri (handle, uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto BROWSER_END; + } + + const char *pkgname = BROWSER_PKG_NAME; + + ret = app_control_set_app_id(handle, pkgname); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto BROWSER_END; + } + + ret = app_control_send_launch_request(handle, ivug_ext_app_control_reply_cb, NULL); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_send_launch_request failed, %d", ret); + goto BROWSER_END; + } + +BROWSER_END: + destroy_ret = app_control_destroy(handle); + if (destroy_ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_destroy failed, %d", destroy_ret); + return false; + } + + return (ret == APP_CONTROL_ERROR_NONE ? true : false); +} + +bool ivug_ext_launch_print(const char *uri) +{ +#define APP_CONTROL_PRINT_TITLE "Title" +#define APP_CONTROL_PRINT_CONTENT "ContentPath" +#define APP_CONTROL_PRINT_CONTENT_TYPE "ContentType" +#define APP_CONTROL_PRINT_CONTENT_COUNT "ContentCount" + + MSG_IMAGEVIEW_HIGH("%s. URI=%s", __func__, uri); + + int ret = -1; + int destroy_ret = -1; + const char *pkgname = PRINT_PKG_NAME; + + if (uri == NULL) + { + MSG_IMAGEVIEW_ERROR("URI is NULL"); + return false; + } + + app_control_h handle; + const char **files = NULL; + + ret = app_control_create(&handle); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_create failed, %d", ret); + return false; + } + + ret = app_control_set_operation(handle, OPERATION_NAME_PRINT); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_operation failed, %d", ret); + goto PRINT_END; + } + + ret = app_control_set_app_id(handle, pkgname); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_app_id failed, %d", ret); + goto PRINT_END; + } + + /*ret = app_control_set_uri (handle, uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto PRINT_END; + }*/ + + ret = app_control_add_extra_data(handle, APP_CONTROL_PRINT_TITLE, "From Gallery"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto PRINT_END; + } + + files = (const char **)malloc(sizeof(char *)); + if (files == NULL) + { + MSG_IMAGEVIEW_ERROR("malloc has error"); + app_control_destroy(handle); + return false; + } + files[0] = uri; + + ret = app_control_add_extra_data_array(handle, APP_CONTROL_PRINT_CONTENT, (const char **)files, 1); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto PRINT_END; + } + + ret = app_control_add_extra_data(handle, APP_CONTROL_PRINT_CONTENT_COUNT, "1"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto PRINT_END; + } + + ret = app_control_add_extra_data(handle, APP_CONTROL_PRINT_CONTENT_TYPE, "IMG"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto PRINT_END; + } + + ret = app_control_send_launch_request(handle, ivug_ext_app_control_reply_cb, NULL); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_send_launch_request failed, %d", ret); + goto PRINT_END; + } + +PRINT_END: + if (files) + free(files); + + destroy_ret = app_control_destroy(handle); + if (destroy_ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_destroy failed, %d", destroy_ret); + return false; + } + + return (ret == APP_CONTROL_ERROR_NONE ? true : false); +} +#ifdef USE_EXT_SLIDESHOW +ui_gadget_h ivug_ext_launch_select_music(ug_result_cb result_func, ug_destroy_cb destroy_func, void *data) +{ + MSG_IMAGEVIEW_HIGH("%s", __func__); + + const char *pa_cur_ringtone = NULL; + const char *dir_path = NULL; + + int ret = -1; + int destroy_ret = -1; + + app_control_h handle; + ui_gadget_h ug = NULL; + + pa_cur_ringtone = "/opt/share/settings/Ringtones/Over the horizon.mp3"; + dir_path = "/opt/share/settings/Ringtones/"; + + ret = app_control_create(&handle); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_create failed, %d", ret); + return NULL; + } + + /*ret = app_control_set_operation(handle, APP_CONTROL_OPERATION_VIEW); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_operation failed, %d", ret); + goto MYFILE_END; + }*/ + + ret = app_control_add_extra_data(handle, "marked_mode", pa_cur_ringtone); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto MYFILE_END; + } + + ret = app_control_add_extra_data(handle, "path", dir_path); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto MYFILE_END; + } + + ret = app_control_add_extra_data(handle, "select_type", "SINGLE_FILE"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto MYFILE_END; + } + + ret = app_control_add_extra_data(handle, "drm_type", "DRM_ALL"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto MYFILE_END; + } + + /*const char *pkgname = MYFILE_UG_NAME; + + ret = app_control_set_package(handle, pkgname); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto MYFILE_END; + }*/ + + ug = _ivug_ext_launch_ug_with_result(MYFILE_UG_NAME, handle, result_func, destroy_func, data); + +MYFILE_END: + destroy_ret = app_control_destroy(handle); + if (destroy_ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_destroy failed, %d", destroy_ret); + return NULL; + } + + return (ret == APP_CONTROL_ERROR_NONE ? ug : NULL); +} +#endif + +#ifdef IV_EXTENDED_FEATURES +app_control_h ivug_ext_launch_image_editor(const char *uri, app_control_reply_cb callback, void *data) +{ + MSG_IMAGEVIEW_HIGH("%s, uri=%s", __func__, uri); + + int ret = -1; + int destroy_ret = -1; + + app_control_h handle; + + ret = app_control_create(&handle); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_create failed, %d", ret); + return false; + } + + Ecore_X_Window win_id = elm_win_xwindow_get(ug_get_window()); + ret = app_control_set_window(handle, win_id); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto IE_END; + } + + ret = app_control_set_app_id(handle, IMAGE_EDITOR_PKG_NAME); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_app_id failed, %d", ret); + goto IE_END; + } + + ret = app_control_set_uri (handle, uri); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, %d", ret); + goto IE_END; + } + + ret = app_control_send_launch_request(handle, callback, data); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_send_launch_request failed, %d", ret); + goto IE_END; + } + + return handle; + +IE_END: + destroy_ret = app_control_destroy(handle); + if (destroy_ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_destroy failed, %d", destroy_ret); + return false; + } + + return NULL; +} + + +bool ivug_ext_launch_default(const char *uri, const char *operation, const char *pkg, const char *mime, void *data) +{ +// Share Panel! + + MSG_IMAGEVIEW_SEC("operation = %s, uri = %s, mime = %s", operation, uri, mime); + + int ret = -1; + int destroy_ret = -1; + + char buf[IVUG_MAX_FILE_PATH_LEN] = {0, }; + + app_control_h handle; + + ret = app_control_create(&handle); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_create failed, %d", ret); + return false; + } + + ret = app_control_set_operation(handle, operation); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_operation %s failed, %d", operation, ret); + goto LAUNCH_END; + } + + snprintf(buf, (size_t)sizeof(buf), "%s", uri); + if (ivug_is_web_uri(uri) == false && ivug_is_tel_uri(uri) == false) + { + if (strncmp(uri, FILE_PREFIX, strlen(FILE_PREFIX)) != 0) + { + snprintf(buf, (size_t)sizeof(buf), "%s%s", FILE_PREFIX, uri); + MSG_IMAGEVIEW_SEC("changed uri = %s", buf); + } + } + + ret = app_control_set_uri (handle, buf); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri %s failed, %d", uri, ret); + goto LAUNCH_END; + } + + if (pkg) + { + ret = app_control_set_app_id(handle, pkg); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_app_id %s failed, %d", pkg, ret); + goto LAUNCH_END; + } + } + else + { + Ecore_X_Window win_id = elm_win_xwindow_get(ug_get_window()); + ret = app_control_set_window(handle, win_id); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_window failed, %d", ret); + goto LAUNCH_END; + } + } + + if (mime) + { + ret = app_control_set_mime(handle, mime); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_mime failed, %d", ret); + goto LAUNCH_END; + } + } + + ret = app_control_send_launch_request(handle, ivug_ext_app_control_reply_cb, NULL); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_send_launch_request failed, %d", ret); + goto LAUNCH_END; + } + +LAUNCH_END: + destroy_ret = app_control_destroy(handle); + if (destroy_ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_destroy failed, %d", destroy_ret); + return false; + } + + return (ret == APP_CONTROL_ERROR_NONE ? true : false); +} +#endif + +bool ivug_ext_launch_setting_gallery(ug_result_cb resultcb,ug_destroy_cb destorycb, ug_end_cb endcb, void *data) +{ + int ret = 0; + app_control_h service = NULL; + ret = app_control_create(&service); + if (ret != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_create failed"); + return false; + } + + ret = app_control_add_extra_data(service, "ShowStartBtn", "TRUE"); + if (ret != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_HIGH("app_control_add_extra_data failed"); + } + //_ivug_ext_launch_ug_with_result("setting-gallery-efl", service, resultcb, destorycb, data); +// ui_gadget_h ug = NULL; + struct ug_cbs cbs = {0, }; + + ext_ug_t *ug_struct = calloc(1, sizeof(ext_ug_t)); + + if (ug_struct != NULL) { + ug_struct->result_func = resultcb; + ug_struct->destroy_func = destorycb; + ug_struct->end_func = endcb; + ug_struct->cb_data = data; + } + + cbs.layout_cb = _ivug_ext_ug_layout_cb; + cbs.result_cb = _ivug_ext_ug_result_cb; + cbs.destroy_cb = _ivug_ext_ug_destroy_cb; + cbs.end_cb = _ivug_ext_ug_end_cb; + cbs.priv = ug_struct; + + ug_create(NULL, "setting-gallery-efl", UG_MODE_FULLVIEW, service, &cbs); + + app_control_destroy(service); + return true; +} + +bool ivug_ext_launch_select_image(app_control_h serviceHandle, ug_result_cb resultcb, ug_destroy_cb destorycb, void *data) +{ +#ifdef USE_THUMBLIST + return false; +#else + int retSvc; + + retSvc = app_control_set_operation(serviceHandle, APP_CONTROL_OPERATION_PICK); + if (retSvc != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_set_operation Failed: 0x%x", retSvc); + } + retSvc = app_control_set_app_id(serviceHandle, GALLERY_UG_NAME); + if (retSvc != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_set_app_id Failed: 0x%x", retSvc); + } + retSvc = app_control_add_extra_data(serviceHandle, "launch-type", "select-slideshow"); + if (retSvc != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data Failed: 0x%x", retSvc); + } + retSvc = app_control_add_extra_data(serviceHandle, "file-type", "all"); + if (retSvc != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data Failed: 0x%x", retSvc); + } + + const char* albumIndex = gGetAlbumIndex(); + if (albumIndex != NULL) + { + retSvc = app_control_add_extra_data(serviceHandle, "album-id", albumIndex); + if (retSvc != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data Failed: 0x%x", retSvc); + } + } + Ecore_X_Window win_id = elm_win_xwindow_get(ug_get_window()); + retSvc = app_control_set_window(serviceHandle, win_id); + if (retSvc != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_set_window failed, %d", retSvc); + } + retSvc = app_control_send_launch_request(serviceHandle, ivug_ext_app_control_reply_cb, NULL); + if (retSvc != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_send_launch_request Failed: 0x%x", retSvc); + } + + MSG_IMAGEVIEW_HIGH("Lanuch \"Select Image Svc\" for Album=%s", albumIndex); + + return true; +#endif +} + + +#ifdef IV_EXTENDED_FEATURES +bool ivug_ext_launch_allshare_cast(const char *szMacAddr, void *pUserData) +{ + app_control_h pService = NULL; + + int nRet = 0; + nRet = app_control_create(&pService); + if (nRet != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_create is fail [0x%x]", nRet); + goto Execption; + } + + MSG_IMAGEVIEW_ERROR("Mac Addr : %s", szMacAddr); + + Ecore_X_Window win_id = elm_win_xwindow_get(ug_get_window()); + nRet = app_control_set_window(pService, win_id); + if (nRet != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_set_window is fail [0x%x]", nRet); + goto Execption; + } + + nRet = app_control_add_extra_data(pService,"-t","connection_req"); + if (nRet != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data is fail [0x%x]", nRet); + goto Execption; + } + + nRet = app_control_add_extra_data(pService,"mac",szMacAddr); + if (nRet != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data is fail [0x%x]", nRet); + goto Execption; + } + + nRet = app_control_set_app_id(pService, ALLSHARE_CAST_APP_NAME); + if (nRet != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_set_app_id is fail [0x%x]", nRet); + goto Execption; + } + + nRet = app_control_send_launch_request(pService, ivug_ext_app_control_reply_cb, pUserData); + if (nRet != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_send_launch_request is fail [0x%x]", nRet); + goto Execption; + } + + app_control_destroy(pService); + pService = NULL; + + return TRUE; + +Execption: + if (pService) { + app_control_destroy(pService); + pService = NULL; + } + return FALSE; + +} + +bool ivug_ext_launch_map(double latitude, double longitude, void *pUserData) +{ + app_control_h pService = NULL; + + char buf[IVUG_MAX_FILE_PATH_LEN] = {0, }; + + int nRet = 0; + nRet = app_control_create(&pService); + if (nRet != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_create is fail [0x%x]", nRet); + goto MAP_END; + } + + Ecore_X_Window win_id = elm_win_xwindow_get(ug_get_window()); + nRet = app_control_set_window(pService, win_id); + if (nRet != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_set_window is fail [0x%x]", nRet); + goto MAP_END; + } + + nRet = app_control_set_operation(pService, "http://tizen.org/appcontrol/operation/view"); + if (nRet != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_operation failed, [0x%x]", nRet); + goto MAP_END; + } + + snprintf(buf, (size_t)sizeof(buf), "geo:%lf,%lf", latitude, longitude); + MSG_IMAGEVIEW_HIGH("app_control_set_uri %s", buf); + + nRet = app_control_set_uri(pService, buf); + if (nRet != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, [0x%x]", nRet); + goto MAP_END; + } + + nRet = app_control_send_launch_request(pService, ivug_ext_app_control_reply_cb, pUserData); + if (nRet != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_send_launch_request is fail [0x%x]", nRet); + goto MAP_END; + } + + app_control_destroy(pService); + pService = NULL; + + return TRUE; + +MAP_END: + if (pService) { + app_control_destroy(pService); + pService = NULL; + } + return FALSE; + +} + + +bool ivug_ext_launch_map_direction(double d_latitude, double d_longitude, void *pUserData) +{ + app_control_h pService = NULL; + + char buf[IVUG_MAX_FILE_PATH_LEN] = {0, }; + + int nRet = 0; + nRet = app_control_create(&pService); + if (nRet != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_create is fail [0x%x]", nRet); + goto MAP_END; + } + + Ecore_X_Window win_id = elm_win_xwindow_get(ug_get_window()); + nRet = app_control_set_window(pService, win_id); + if (nRet != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_set_window is fail [0x%x]", nRet); + goto MAP_END; + } + + nRet = app_control_set_operation(pService, "http://tizen.org/appcontrol/operation/search_directions"); + if (nRet != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_operation failed, [0x%x]", nRet); + goto MAP_END; + } + + snprintf(buf, (size_t)sizeof(buf), "geo:0,0?dest_addr=%lf:%lf", d_latitude, d_longitude); + MSG_IMAGEVIEW_HIGH("app_control_set_uri %s", buf); + + nRet = app_control_set_uri(pService, buf); + if (nRet != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, [0x%x]", nRet); + goto MAP_END; + } + + nRet = app_control_send_launch_request(pService, ivug_ext_app_control_reply_cb, pUserData); + if (nRet != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_send_launch_request is fail [0x%x]", nRet); + goto MAP_END; + } + + app_control_destroy(pService); + pService = NULL; + + return TRUE; + +MAP_END: + if (pService) { + app_control_destroy(pService); + pService = NULL; + } + return FALSE; + +} + +bool ivug_ext_launch_share_text(const char *text) +{ + MSG_IMAGEVIEW_HIGH("%s, text=%s", __func__, text); + + int ret = -1; + int destroy_ret = -1; + + app_control_h handle; + + ret = app_control_create(&handle); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_create failed, %d", ret); + return false; + } + + Ecore_X_Window win_id = elm_win_xwindow_get(ug_get_window()); + ret = app_control_set_window(handle, win_id); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto SHARE_TEXT_END; + } + + ret = app_control_set_operation(handle, "http://tizen.org/appcontrol/operation/share_text"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_create failed, %d", ret); + goto SHARE_TEXT_END; + } + + ret = app_control_add_extra_data(handle, APP_CONTROL_DATA_TEXT, text); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto SHARE_TEXT_END; + } + + ret = app_control_send_launch_request(handle, ivug_ext_app_control_reply_cb, NULL); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_send_launch_request failed, %d", ret); + goto SHARE_TEXT_END; + } + +SHARE_TEXT_END: + destroy_ret = app_control_destroy(handle); + if (destroy_ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_destroy failed, %d", destroy_ret); + return false; + } + + return (ret == APP_CONTROL_ERROR_NONE ? true : false); +} + +static bool _data_set(app_control_h service, const char *key, void *user_data) +{ + char *value; + + app_control_h handle = (app_control_h)user_data; + + app_control_get_extra_data(service, key, &value); + MSG_IVUG_HIGH(" %s : %s", key, value); + + int ret = app_control_add_extra_data(handle, key, value); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + } + + free(value); + + return true; +} +#endif + +bool ivug_ext_launch_slideshow(const char *path, int index) +{ +#ifndef USE_THUMBLIST + MSG_IMAGEVIEW_HIGH("%s, path=%s, index=%d", __func__, path, index); + + int ret = -1; + int destroy_ret = -1; + char str_index[12] = {0,}; + + app_control_h handle; + + ret = app_control_create(&handle); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_create failed, %d", ret); + return false; + } + + Ecore_X_Window win_id = elm_win_xwindow_get(ug_get_window()); + ret = app_control_set_window(handle, win_id); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto EXT_SLIDESHOW_END; + } + + ret = app_control_set_operation(handle, APP_CONTROL_OPERATION_VIEW); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_create failed, %d", ret); + goto EXT_SLIDESHOW_END; + } + + ret = app_control_foreach_extra_data(handle, _data_set, handle); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_foreach_extra_data failed, %d", ret); + goto EXT_SLIDESHOW_END; + } + + ret = app_control_add_extra_data(handle, "View Mode", "SLIDESHOW"); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto EXT_SLIDESHOW_END; + } + + ret = app_control_set_uri(handle, path); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_uri failed, [0x%x]", ret); + goto EXT_SLIDESHOW_END; + } + + eina_convert_itoa(index, str_index); + ret = app_control_add_extra_data(handle, "Index", str_index); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data failed, %d", ret); + goto EXT_SLIDESHOW_END; + } + + ret = app_control_set_app_id(handle, IMAGE_VIEWER_PKG_NAME); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_set_app_id failed, %d", ret); + goto EXT_SLIDESHOW_END; + } + + ret = app_control_send_launch_request(handle, ivug_ext_app_control_reply_cb, NULL); + if (ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_send_launch_request failed, %d", ret); + goto EXT_SLIDESHOW_END; + } + +EXT_SLIDESHOW_END: + destroy_ret = app_control_destroy(handle); + if (destroy_ret != APP_CONTROL_ERROR_NONE) + { + MSG_IMAGEVIEW_ERROR("app_control_destroy failed, %d", destroy_ret); + return false; + } + + return (ret == APP_CONTROL_ERROR_NONE ? true : false); +#else + return false; +#endif +} + diff --git a/main/src/control/ivug-parameter.c b/main/src/control/ivug-parameter.c index aa6bf24..2516ce4 100755 --- a/main/src/control/ivug-parameter.c +++ b/main/src/control/ivug-parameter.c @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 @@ -24,7 +25,19 @@ #include "ivug-db.h" #include "ivug-util.h" -#include "ivug-filter.h" +/* + +Phone -> Menu -> Call setting -> Videocall Image + +W/IV-COMMON(1356): 0:00:00.012[F:ivug-parameter.c L: 416][HIGH] ********************************** +W/IV-COMMON(1356): debug.c: __custom_sec_debug_msg(380) > [SECURE_LOG] 0:00:00.013[F:ivug-parameter.c L: 374][SECURE] Path : /opt/usr/media/Images/image5.jpg +W/IV-COMMON(1356): debug.c: __custom_sec_debug_msg(380) > [SECURE_LOG] 0:00:00.013[F:ivug-parameter.c L: 374][SECURE] View Mode : SETAS +W/IV-COMMON(1356): debug.c: __custom_sec_debug_msg(380) > [SECURE_LOG] 0:00:00.013[F:ivug-parameter.c L: 374][SECURE] Setas type : VideoCallID +W/IV-COMMON(1356): debug.c: __custom_sec_debug_msg(380) > [SECURE_LOG] 0:00:00.013[F:ivug-parameter.c L: 374][SECURE] Resolution : 176x144 +W/IV-COMMON(1356): 0:00:00.013[F:ivug-parameter.c L: 418][HIGH] ********************************** + +*/ + //bundle key #define IVUG_BUNDLE_KEY_VIEW_MODE "View Mode" @@ -41,6 +54,9 @@ #define IVUG_BUNDLE_KEY_MAX_LATITUDE "LAT_MAX" #define IVUG_BUNDLE_KEY_MIN_LATITUDE "LAT_MIN" +#define IVUG_BUNDLE_KEY_TIMELINE_START "Timeline_Start" +#define IVUG_BUNDLE_KEY_TIMELINE_END "Timeline_End" + #define IVUG_BUNDLE_KEY_SETAS_TYPE "Setas type" #define IVUG_BUNDLE_KEY_TAG_NAME "Tag name" @@ -60,13 +76,20 @@ #define IVUG_BUNDLE_KEY_GROUP_ID "Group id" #define IVUG_BUNDLE_KEY_SELECTED_INDEX "Selected index" +#define IVUG_BUNDLE_KEY_SELECTED_INDEX_FAV "Selected index fav" + +#define IVUG_BUNDLE_SORT_DATE "Date" +#define IVUG_BUNDLE_SORT_DATEDESC "DateDesc" //default values #define IVUG_DEFAULT_MODE IVUG_MODE_SINGLE #define IVUG_DEFAULT_INDEX (1) // First item - #define IVUG_FILE_PREFIX "file://" + +#define IMG_PATH PREFIX"/res/images/"PACKAGE + + static inline void _ivug_free(char **val) { @@ -85,55 +108,54 @@ _get_view_mode(ivug_parameter* data, const char* val) #define IVUG_BUNDLE_VALUE_VIEW_MODE_GALLERY "GALLERY" #define IVUG_BUNDLE_VALUE_VIEW_MODE_CAMERA "CAMERA" #define IVUG_BUNDLE_VALUE_VIEW_MODE_DISPLAY "DISPLAY" +#define IVUG_BUNDLE_VALUE_VIEW_MODE_SAVE "SAVE" #define IVUG_BUNDLE_VALUE_VIEW_MODE_SETAS "SETAS" #define IVUG_BUNDLE_VALUE_VIEW_MODE_SLIDESHOW "SLIDESHOW" +#define IVUG_BUNDLE_VALUE_VIEW_MODE_EMAIL "EMAIL" +#define IVUG_BUNDLE_VALUE_VIEW_MODE_SELECT "SELECT" +#define IVUG_BUNDLE_VALUE_VIEW_MODE_HELP "HELP" int len = strlen(val); if (strncmp(val, IVUG_BUNDLE_VALUE_VIEW_MODE_NORMAL, len) == 0 - || strncmp(val, IVUG_BUNDLE_VALUE_VIEW_MODE_GALLERY, len) == 0 ) - { + || strncmp(val, IVUG_BUNDLE_VALUE_VIEW_MODE_GALLERY, len) == 0) { return IVUG_MODE_NORMAL; - } - else if (strncmp(val, IVUG_BUNDLE_VALUE_VIEW_MODE_ALBUM, len) == 0) - { + } else if (strncmp(val, IVUG_BUNDLE_VALUE_VIEW_MODE_ALBUM, len) == 0) { // Probably, UnUsed. - MSG_IVUG_ERROR("ALBUM is deprecated!!!! plz check"); - printf("bundle key ALBUM is deprecated!!!! plz check\n"); + MSG_MAIN_HIGH("ALBUM is deprecated!!!! plz check"); return IVUG_MODE_NORMAL; - } - else if ( strncmp(val, IVUG_BUNDLE_VALUE_VIEW_MODE_CAMERA, len) == 0) - { + } else if (strncmp(val, IVUG_BUNDLE_VALUE_VIEW_MODE_CAMERA, len) == 0) { data->start_index = 1; //apply window loading data->view_by = IVUG_VIEW_BY_FOLDER; // In camera case, All images should be shown in camera folder. return IVUG_MODE_CAMERA; - } - else if (strncmp(val, IVUG_BUNDLE_VALUE_VIEW_MODE_SINGLE, len) == 0) - { - if(data->view_by != IVUG_VIEW_BY_FOLDER) + } else if (strncmp(val, IVUG_BUNDLE_VALUE_VIEW_MODE_SINGLE, len) == 0) { + // All menu is available + if (data->view_by != IVUG_VIEW_BY_FOLDER) data->view_by = IVUG_VIEW_BY_FILE; return IVUG_MODE_SINGLE; - } - else if ( strncmp(val, IVUG_BUNDLE_VALUE_VIEW_MODE_DISPLAY, len) == 0) - { + } else if (strncmp(val, IVUG_BUNDLE_VALUE_VIEW_MODE_DISPLAY, len) == 0) { + // No menu except SETAS menu data->view_by = IVUG_VIEW_BY_FILE; return IVUG_MODE_DISPLAY; - } - else if(strncmp(val, IVUG_BUNDLE_VALUE_VIEW_MODE_SETAS, len) == 0) - { + } else if (strncmp(val, IVUG_BUNDLE_VALUE_VIEW_MODE_SAVE, len) == 0) { + data->view_by = IVUG_VIEW_BY_FILE; + return IVUG_MODE_SAVE; + } else if (strncmp(val, IVUG_BUNDLE_VALUE_VIEW_MODE_SETAS, len) == 0) { data->view_by = IVUG_VIEW_BY_FILE; return IVUG_MODE_SETAS; - } - else if(strncmp(val, IVUG_BUNDLE_VALUE_VIEW_MODE_SLIDESHOW, len) == 0) - { - if(data->view_by == IVUG_VIEW_BY_INVAILD) - { + } else if (strncmp(val, IVUG_BUNDLE_VALUE_VIEW_MODE_SELECT, len) == 0) { + data->view_by = IVUG_VIEW_BY_FILE; + return IVUG_MODE_SELECT; + } else if (strncmp(val, IVUG_BUNDLE_VALUE_VIEW_MODE_SLIDESHOW, len) == 0) { + if (data->view_by == IVUG_VIEW_BY_INVAILD) { data->view_by = IVUG_VIEW_BY_FOLDER; } return IVUG_MODE_SLIDESHOW; + } else if (strncmp(val, IVUG_BUNDLE_VALUE_VIEW_MODE_EMAIL, len) == 0) { + data->view_by = IVUG_VIEW_BY_FILE; + return IVUG_MODE_EMAIL; } - - MSG_IVUG_ERROR("Invalid mode : %s", val); + MSG_MAIN_HIGH("Invalid mode : %s", val); return IVUG_MODE_INVAILD; } @@ -143,23 +165,34 @@ _get_view_by(const char* val) { //bundle value #define IVUG_BUNDLE_VALUE_VIEW_BY_ALL "All" +#define IVUG_BUNDLE_VALUE_VIEW_BY_HIDDEN_ALL "Hidden_All" #define IVUG_BUNDLE_VALUE_VIEW_BY_FAVORITES "Favorites" #define IVUG_BUNDLE_VALUE_VIEW_BY_TAGS "Tags" #define IVUG_BUNDLE_VALUE_VIEW_BY_FLODER "By Folder" +#define IVUG_BUNDLE_VALUE_VIEW_BY_HIDDEN_FLODER "Hidden_Folder" #define IVUG_BUNDLE_VALUE_VIEW_BY_PLACES "Places" +#define IVUG_BUNDLE_VALUE_VIEW_BY_TIMELINE "Timeline" IV_ASSERT(val != NULL); int len = strlen(val); - if (strncmp(val, IVUG_BUNDLE_VALUE_VIEW_BY_FLODER, len) == 0 ) + if (strncmp(val, IVUG_BUNDLE_VALUE_VIEW_BY_FLODER, len) == 0) { return IVUG_VIEW_BY_FOLDER; } - else if (strncmp(val, IVUG_BUNDLE_VALUE_VIEW_BY_ALL, len) == 0 ) + else if (strncmp(val, IVUG_BUNDLE_VALUE_VIEW_BY_HIDDEN_FLODER, len) == 0) + { + return IVUG_VIEW_BY_HIDDEN_FOLDER; + } + else if (strncmp(val, IVUG_BUNDLE_VALUE_VIEW_BY_ALL, len) == 0) { return IVUG_VIEW_BY_ALL; } + else if (strncmp(val, IVUG_BUNDLE_VALUE_VIEW_BY_HIDDEN_ALL, len) == 0) + { + return IVUG_VIEW_BY_HIDDEN_ALL; + } else if (strncmp(val, IVUG_BUNDLE_VALUE_VIEW_BY_FAVORITES, len) == 0) { return IVUG_VIEW_BY_FAVORITES; @@ -172,8 +205,12 @@ _get_view_by(const char* val) { return IVUG_VIEW_BY_PLACES; } + else if (strncmp(val, IVUG_BUNDLE_VALUE_VIEW_BY_TIMELINE, len) == 0) + { + return IVUG_VIEW_BY_TIMELINE; + } - MSG_IVUG_ERROR("Invalid view by : %s", val); + MSG_MAIN_HIGH("Invalid view by : %s", val); return IVUG_VIEW_BY_FILE; @@ -195,19 +232,19 @@ _get_setas_type(const char* val) int len = strlen(val); - if (strncmp(val, IVUG_BUNDLE_VALUE_SETAS_UG_WALLPAPER, len) == 0 ) + if (strncmp(val, IVUG_BUNDLE_VALUE_SETAS_UG_WALLPAPER, len) == 0) { return IVUG_SET_AS_UG_TYPE_WALLPAPER; } - else if (strncmp(val, IVUG_BUNDLE_VALUE_SETAS_UG_WALLPAPER_CROP, len) == 0 ) + else if (strncmp(val, IVUG_BUNDLE_VALUE_SETAS_UG_WALLPAPER_CROP, len) == 0) { return IVUG_SET_AS_UG_TYPE_WALLPAPER_CROP; } - else if (strncmp(val, IVUG_BUNDLE_VALUE_SETAS_UG_LOCKSCREEN, len) == 0 ) + else if (strncmp(val, IVUG_BUNDLE_VALUE_SETAS_UG_LOCKSCREEN, len) == 0) { return IVUG_SET_AS_UG_TYPE_LOCKSCREEN; } - else if (strncmp(val, IVUG_BUNDLE_VALUE_SETAS_UG_WALLPAPER_N_LOCKSCREEN, len) == 0 ) + else if (strncmp(val, IVUG_BUNDLE_VALUE_SETAS_UG_WALLPAPER_N_LOCKSCREEN, len) == 0) { return IVUG_SET_AS_UG_TYPE_WALLPAPER_N_LOCKSCREEN; } @@ -224,7 +261,7 @@ _get_setas_type(const char* val) return IVUG_SET_AS_UG_TYPE_CROP; } - MSG_IVUG_ERROR("Invalid setas ug type : %s", val); + MSG_MAIN_HIGH("Invalid setas ug type : %s", val); return IVUG_SET_AS_UG_TYPE_INVALID; } @@ -238,7 +275,7 @@ _get_media_type(const char* val) int len = strlen(val); - if (strncmp(val, IVUG_BUNDLE_VALUE_MEDIA_TYPE_IMAGE, len) == 0 ) + if (strncmp(val, IVUG_BUNDLE_VALUE_MEDIA_TYPE_IMAGE, len) == 0) { return IVUG_MEDIA_TYPE_IMAGE; } @@ -246,16 +283,16 @@ _get_media_type(const char* val) { return IVUG_MEDIA_TYPE_VIDEO; } - else if(strncmp(val, IVUG_BUNDLE_VALUE_MEDIA_TYPE_ALL, len) == 0) + else if (strncmp(val, IVUG_BUNDLE_VALUE_MEDIA_TYPE_ALL, len) == 0) { return IVUG_MEDIA_TYPE_ALL; } - MSG_IVUG_ERROR("Invalid media type : %s", val); + MSG_MAIN_HIGH("Invalid media type : %s", val); return IVUG_MEDIA_TYPE_MAX; } -static bool _data_print(service_h service, const char *key, void *user_data) +static bool _data_print(app_control_h service, const char *key, void *user_data) { char *value; @@ -264,22 +301,22 @@ static bool _data_print(service_h service, const char *key, void *user_data) int i; bool array = false; - service_is_extra_data_array(service, key, &array); - if(array == false) + app_control_is_extra_data_array(service, key, &array); + if (array == false) { - service_get_extra_data(service, key, &value); - MSG_IVUG_HIGH(" %s : %s", key, value); + app_control_get_extra_data(service, key, &value); + MSG_IVUG_SEC(" %s : %s", key, value); free(value); } else { - service_get_extra_data_array(service, key, &value_array, &array_len); - MSG_IVUG_HIGH(" %s :", key); - for(i=0; ibStandalone = true; _ivug_free(&standalone); - } - else - { + } else { data->bStandalone = false; } +// View By + if (data->view_by == IVUG_VIEW_BY_INVAILD) { + char* szViewBy = NULL; - //parse path - char* szFilePath = NULL; - { - service_get_extra_data (service, IVUG_BUNDLE_KEY_PATH, &szFilePath); - if(szFilePath == NULL) - { - MSG_IVUG_ERROR("File path is NULL"); - service_get_uri(service, &szFilePath); // app gadget - if(szFilePath) - { - MSG_IMAGEVIEW_ERROR("App gadget launched %s", szFilePath); - service_add_extra_data (service, "View Mode", "SINGLE"); - } - } - if ( szFilePath != NULL ) - { - if(strncmp(IVUG_FILE_PREFIX, szFilePath, strlen(IVUG_FILE_PREFIX)) == 0) - { - data->filepath = strdup(szFilePath + strlen(IVUG_FILE_PREFIX)); - } - else - { - data->filepath = strdup(szFilePath); - } - MSG_IVUG_MED("Current File = %s", data->filepath); - _ivug_free(&szFilePath); - } - else - { - ivug_param_delete(data); - return NULL; - } - } + app_control_get_extra_data (service, IVUG_BUNDLE_KEY_VIEW_BY, &szViewBy); + if (szViewBy != NULL) { + MSG_MAIN_HIGH("View By = %s", szViewBy); -// View By - char* szViewBy = NULL; + data->view_by = _get_view_by(szViewBy); - service_get_extra_data (service, IVUG_BUNDLE_KEY_VIEW_BY, &szViewBy); - if (szViewBy != NULL) - { - MSG_IVUG_MED("View By = %s", szViewBy); + if (data->view_by == IVUG_VIEW_BY_TAG) { + char* szTagName = NULL; - data->view_by = _get_view_by(szViewBy); + app_control_get_extra_data (service, IVUG_BUNDLE_KEY_TAG_NAME, &szTagName); + if (szTagName != NULL) { + tag_handle t_handle = ivug_db_get_tag_handle(szTagName); + if (t_handle == NULL) { + MSG_MAIN_HIGH("View by Tag. but tag handle is NULL"); + ivug_param_delete(data); + return NULL; + } - if (data->view_by == IVUG_VIEW_BY_TAG) - { - char* szTagName = NULL; + data->tag_id = ivug_db_get_tag_id(t_handle); - service_get_extra_data (service, IVUG_BUNDLE_KEY_TAG_NAME, &szTagName); - if ( szTagName != NULL ) - { - tag_handle t_handle = ivug_db_get_tag_handle(szTagName); - if(t_handle == NULL) - { - MSG_IVUG_FATAL("View by Tag. but tag handle is NULL" ); + ivug_db_destroy_tag(t_handle); + + MSG_MAIN_HIGH("Tag name=%s", szTagName); + MSG_MAIN_HIGH("Tag id=%d", data->tag_id); + _ivug_free(&szTagName); + } else { + MSG_MAIN_HIGH("View by Tag. but Tagname is NULL"); + + _ivug_free(&szViewBy); ivug_param_delete(data); return NULL; } + } + _ivug_free(&szViewBy); + } else { + MSG_MAIN_HIGH("View By is NULL"); + } + } - data->tag_id = ivug_db_get_tag_id(t_handle); +//parse mode + if (data->mode == IVUG_MODE_INVAILD) { + char* szMode = NULL; + + app_control_get_extra_data (service, IVUG_BUNDLE_KEY_VIEW_MODE, &szMode); + if (szMode != NULL) { + data->mode = _get_view_mode(data, szMode); + MSG_MAIN_HIGH("View mode is %s(%d)", szMode, data->mode); + _ivug_free(&szMode); + } else { + data->mode = IVUG_DEFAULT_MODE; + MSG_MAIN_HIGH("View mode is NULL. Set Default(%d)", data->mode); + } + } +//parse path + char* szFilePath = NULL; + bool isArray = false; + app_control_is_extra_data_array(service, "http://tizen.org/appcontrol/data/path", &isArray); + if (isArray == true) { + char **path_array = NULL; + char *file_path = NULL; + int array_length = 0; + app_control_get_extra_data_array(service, "http://tizen.org/appcontrol/data/path", &path_array, &array_length); + int i = 0; + + for (i=0; imultiple_list = eina_list_append(data->multiple_list, (void *)file_path); + } - MSG_IVUG_HIGH("Tag name=%s", szTagName); - MSG_IVUG_HIGH("Tag id=%d", data->tag_id); - _ivug_free(&szTagName); - } - else - { - MSG_IVUG_FATAL("View by Tag. but Tagname is NULL" ); + for (i=0; imode = IVUG_MODE_DISPLAY; + data->view_by = IVUG_VIEW_BY_FILE; + } else { + app_control_get_extra_data (service, IVUG_BUNDLE_KEY_PATH, &szFilePath); + if (szFilePath == NULL) { + MSG_MAIN_HIGH("File path is NULL"); + app_control_get_uri(service, &szFilePath); // app gadget + if (szFilePath) { + MSG_MAIN_HIGH("App gadget launched %s", szFilePath); + if (data->view_by != IVUG_VIEW_BY_FOLDER + && data->view_by != IVUG_VIEW_BY_HIDDEN_FOLDER + && data->view_by != IVUG_VIEW_BY_DIRECTORY) { + data->view_by = IVUG_VIEW_BY_FILE; + } + if (data->mode == IVUG_MODE_INVAILD) { + data->mode = IVUG_MODE_SINGLE; + } + } + } else { + if (strstr (szFilePath, "/.") != NULL) { + data->mode = IVUG_MODE_HIDDEN; } } - _ivug_free(&szViewBy); } - else - { - MSG_IVUG_ERROR("View By is NULL"); - data->view_by = IVUG_VIEW_BY_INVAILD; + + if (szFilePath != NULL) { + if (strncmp(IVUG_FILE_PREFIX, szFilePath, strlen(IVUG_FILE_PREFIX)) == 0) { + data->filepath = strdup(szFilePath + strlen(IVUG_FILE_PREFIX)); + } else { + data->filepath = strdup(szFilePath); + } + MSG_MAIN_HIGH("Current File = %s", data->filepath); + _ivug_free(&szFilePath); + } else { + ivug_param_delete(data); + return NULL; } - media_handle file_handle = ivug_db_get_file_handle(data->filepath); - if(file_handle == NULL) - { - MSG_IVUG_ERROR("Current File = %s is not in DB", data->filepath); - data->view_by = IVUG_VIEW_BY_FILE; + if (data->view_by != IVUG_VIEW_BY_HIDDEN_ALL + && data->view_by != IVUG_VIEW_BY_HIDDEN_FOLDER + && data->view_by != IVUG_VIEW_BY_DIRECTORY + && ivug_is_web_uri(data->filepath) == false) { + media_handle file_handle = ivug_db_get_file_handle(data->filepath); + if (file_handle == NULL) { + MSG_MAIN_HIGH("Current File = %s is not in DB", data->filepath); + data->view_by = IVUG_VIEW_BY_FILE; + } else { + MSG_MAIN_HIGH("Current File = %s is in DB", data->filepath); + ivug_db_destroy_file_handle(file_handle); + } } //parse image index at album char* val = NULL; - service_get_extra_data (service, IVUG_BUNDLE_KEY_INDEX, &val); - if(val) - { + app_control_get_extra_data (service, IVUG_BUNDLE_KEY_INDEX, &val); + if (val) { data->start_index = ivug_atoi(val); - MSG_IVUG_MED("Slide Index = %d", data->start_index); + MSG_MAIN_HIGH("Slide Index = %d", data->start_index); _ivug_free(&val); - } - else - { - if(data->view_by == IVUG_VIEW_BY_FOLDER) - { - MSG_IVUG_WARN("IVUG_VIEW_BY_FOLDER but index was not set"); + } else { + if (data->view_by == IVUG_VIEW_BY_FOLDER) { // when by foloder mode, if index is not exist. we cannot determin what image is show. so close applicationb + MSG_MAIN_HIGH("IVUG_VIEW_BY_FOLDER but index was not set. Setas Invalid(%d)", IVUG_INVALID_INDEX); data->start_index = IVUG_INVALID_INDEX; + } else { + data->start_index = IVUG_DEFAULT_INDEX; } - else - { - data->start_index = IVUG_DEFAULT_INDEX; - } - MSG_IVUG_WARN("Slide Index is not set. Set as default : %d", data->start_index); + MSG_MAIN_HIGH("Slide Index is not set. Set as default : %d", data->start_index); } -//parse mode - char* szMode = NULL; - - service_get_extra_data (service, IVUG_BUNDLE_KEY_VIEW_MODE, &szMode); - if (szMode != NULL) - { - data->mode = _get_view_mode(data, szMode); - MSG_IVUG_MED("View mode is %s(%d)", szMode, data->mode); - _ivug_free(&szMode); - } - else - { - data->mode = IVUG_DEFAULT_MODE; - MSG_IVUG_HIGH("View mode is NULL. Set Default(%d)", data->mode); +/* Adding sort by option */ + app_control_get_extra_data (service, IVUG_BUNDLE_KEY_SORT_BY, &val); + if (val) { + if (!strcmp(val, IVUG_BUNDLE_SORT_DATE)) { + data->sort_type = IVUG_MEDIA_ASC_BY_DATE; + } else if (!strcmp(val, IVUG_BUNDLE_SORT_DATEDESC)) { + data->sort_type = IVUG_MEDIA_DESC_BY_DATE; + } + _ivug_free(&val); } //parse album id -album id is cluster id of media service - service_get_extra_data (service, IVUG_BUNDLE_KEY_ALBUM_IDX, &val); - if(val && data->view_by != IVUG_VIEW_BY_ALL) - { + app_control_get_extra_data (service, IVUG_BUNDLE_KEY_ALBUM_IDX, &val); + if (val && data->view_by != IVUG_VIEW_BY_ALL) { + gSetAlbumIndex(val); data->album_id = uuid_getuuid(val); - MSG_IVUG_MED("album_uuid is %s", uuid_getchar(data->album_id)); - } - else - { + MSG_MAIN_HIGH("album_uuid is %s", uuid_getchar(data->album_id)); + } else { data->album_id = INVALID_UUID; - MSG_IVUG_WARN("Album index is NULL"); + MSG_MAIN_HIGH("Album UUID is NULL"); } - if(val) + if (val) { _ivug_free(&val); + } - if (data->view_by == IVUG_VIEW_BY_FOLDER && data->album_id == INVALID_UUID) - { + app_control_get_extra_data (service, "TESTMODE", &val); + if (val && strcmp(val, "TRUE") == 0) { + data->bTestMode = true; + _ivug_free(&val); + } + + char* viewBy = NULL; + + app_control_get_extra_data (service, IVUG_BUNDLE_KEY_VIEW_BY, &viewBy); + if (viewBy != NULL) { + MSG_MAIN_HIGH("View By is = %s", viewBy); + data->view_by = _get_view_by(viewBy); + } + + if (data->view_by == IVUG_VIEW_BY_FOLDER || data->view_by == IVUG_VIEW_BY_HIDDEN_FOLDER) { /* example: ********************************** @@ -500,143 +579,147 @@ ivug_param_create_from_bundle(service_h service) media_handle m_handle = ivug_db_get_folder_handle(dir); free(dir); - if(data->album_id == INVALID_UUID) - { - if(m_handle == NULL) - { - MSG_IVUG_ERROR("View by Folder. but media handle is NULL" ); + if (data->album_id == INVALID_UUID) { + if (m_handle == NULL) { + MSG_MAIN_HIGH("View by Folder. but media handle is NULL"); //ivug_param_delete(data); //return NULL; data->view_by = IVUG_VIEW_BY_DIRECTORY; // check manually - } - else - { + } else { data->album_id = ivug_db_get_folder_id(m_handle); - ivug_db_destroy_folder_handle(m_handle); + gSetAlbumIndex(uuid_getchar(data->album_id)); - MSG_IVUG_HIGH("Get Album ID(%s) from file %s", uuid_getchar(data->album_id), data->filepath); + MSG_MAIN_HIGH("Get Album ID(%s) from file %s", uuid_getchar(data->album_id), data->filepath); } } + if (m_handle) { + ivug_db_destroy_folder_handle(m_handle); + } } - service_get_extra_data (service, IVUG_BUNDLE_KEY_MEDIA_TYPE, &val); - if(val != NULL) - { +// TODO : Check parameter integrity + app_control_get_extra_data (service, IVUG_BUNDLE_KEY_MEDIA_TYPE, &val); + if (val != NULL) { data->media_type = _get_media_type(val); - MSG_IVUG_MED("Media Type=%s(%d)", val, data->media_type); + MSG_MAIN_HIGH("Media Type=%s(%d)", val, data->media_type); _ivug_free(&val); - } - else - { - MSG_IVUG_WARN("Media type is not specified."); + } else { + MSG_MAIN_HIGH("Media type is not specified."); } long long int m = 0; long int e = 0; - service_get_extra_data (service, IVUG_BUNDLE_KEY_MAX_LONGITUDE, &val); - if(val != NULL) - { + app_control_get_extra_data (service, IVUG_BUNDLE_KEY_MAX_LONGITUDE, &val); + if (val != NULL) { eina_convert_atod(val, strlen(val), &m, &e); data->max_longitude = ldexp((double)m, e); - MSG_IVUG_MED("Max Longitude =%f", data->max_longitude); + + MSG_MAIN_HIGH("Max Longitude =%f", data->max_longitude); _ivug_free(&val); - } - else - { - MSG_IVUG_MED("Max Longitude is not specified."); + } else { + MSG_MAIN_HIGH("Max Longitude is not specified."); } - service_get_extra_data (service, IVUG_BUNDLE_KEY_MIN_LONGITUDE, &val); - if(val != NULL) - { + app_control_get_extra_data (service, IVUG_BUNDLE_KEY_MIN_LONGITUDE, &val); + if (val != NULL) { eina_convert_atod(val, strlen(val), &m, &e); data->min_longitude = ldexp((double)m, e); - MSG_IVUG_MED("Min Longitude =%f", data->min_longitude); + + MSG_MAIN_HIGH("Min Longitude =%f", data->min_longitude); _ivug_free(&val); - } - else - { - MSG_IVUG_MED("Min Longitude is not specified."); + } else { + MSG_MAIN_HIGH("Min Longitude is not specified."); } - service_get_extra_data (service, IVUG_BUNDLE_KEY_MAX_LATITUDE, &val); - if(val != NULL) - { +/* + Do not use strtod() instead of g_strtod(). + + strtod() follows locale setting. + + for ex) French usr comma(,) as decimal point +*/ + app_control_get_extra_data (service, IVUG_BUNDLE_KEY_MAX_LATITUDE, &val); + if (val != NULL) { eina_convert_atod(val, strlen(val), &m, &e); data->max_latitude = ldexp((double)m, e); - MSG_IVUG_MED("Max Latitude =%f", data->max_latitude); + + MSG_MAIN_HIGH("Max Latitude =%f", data->max_latitude); _ivug_free(&val); - } - else - { - MSG_IVUG_MED("Max Latitude is not specified."); + } else { + MSG_MAIN_HIGH("Max Latitude is not specified."); } - service_get_extra_data (service, IVUG_BUNDLE_KEY_MIN_LATITUDE, &val); - if(val != NULL) - { + app_control_get_extra_data (service, IVUG_BUNDLE_KEY_MIN_LATITUDE, &val); + if (val != NULL) { eina_convert_atod(val, strlen(val), &m, &e); data->min_latitude = ldexp((double)m, e); - MSG_IVUG_MED("Min Latitude =%f", data->min_latitude); + + MSG_MAIN_HIGH("Min Latitude =%f", data->min_latitude); _ivug_free(&val); + } else { + MSG_MAIN_HIGH("Min Latitude is not specified."); } - else - { - MSG_IVUG_MED("Min Latitude is not specified."); + + app_control_get_extra_data (service, IVUG_BUNDLE_KEY_TIMELINE_START, &val); + if (val != NULL) { + data->timeline_start = ivug_atoi(val); + MSG_MAIN_HIGH("time line start = %ld", data->timeline_start); + _ivug_free(&val); } - service_get_extra_data (service, IVUG_BUNDLE_KEY_SETAS_TYPE, &val); - if (val) - { - MSG_IVUG_MED("SetAs UG Type=%s", val); + app_control_get_extra_data (service, IVUG_BUNDLE_KEY_TIMELINE_END, &val); + if (val != NULL) { + data->timeline_end = ivug_atoi(val); + MSG_MAIN_HIGH("time line end = %ld", data->timeline_end); + _ivug_free(&val); + } + + app_control_get_extra_data (service, IVUG_BUNDLE_KEY_SETAS_TYPE, &val); + if (val) { + MSG_MAIN_HIGH("SetAs UG Type=%s", val); data->setas_type = _get_setas_type(val); char* resolution = NULL; - service_get_extra_data (service, IVUG_BUNDLE_KEY_RESOLUTION, &resolution); - if(resolution) - { + app_control_get_extra_data (service, IVUG_BUNDLE_KEY_RESOLUTION, &resolution); + if (resolution) { sscanf(resolution, "%5dx%5d", &(data->width), &(data->height)); - MSG_IVUG_MED("Rectangle width = %d, height = %d", data->width, data->height); - if(data->width == 0 || data->height == 0) - { + MSG_MAIN_HIGH("Rectangle width = %d, height = %d", data->width, data->height); + if (data->width == 0 || data->height == 0) { MSG_IVUG_ERROR("Resolution is invalid"); _ivug_free(&resolution); _ivug_free(&val); ivug_param_delete(data); return NULL; } - } - else - { - data->width = 100; - data->height = 100; - MSG_IVUG_HIGH("Rectangle ratio is not set. Set as default : %dx%d", data->width, data->height); + } else { + // WH(0,0) means initial scissorbox size is same as image size. + data->width = 0; + data->height = 0; + MSG_MAIN_HIGH("Rectangle ratio is not set. Set as default : %dx%d", data->width, data->height); } data->bRatioFix = false; char* bRatioFix = NULL; - service_get_extra_data (service, IVUG_BUNDLE_KEY_FIXED_RATIO, &bRatioFix); - if(bRatioFix) - { - MSG_IVUG_MED("Fixed ratio=%s", bRatioFix); - if(strcmp(bRatioFix, "TRUE") == 0) - { + app_control_get_extra_data (service, IVUG_BUNDLE_KEY_FIXED_RATIO, &bRatioFix); + if (bRatioFix) { + MSG_MAIN_HIGH("Fixed ratio=%s", bRatioFix); + if (strcmp(bRatioFix, "TRUE") == 0) { data->bRatioFix = true; } _ivug_free(&bRatioFix); } + +// app-control guide. char* crop_mode = NULL; - service_get_extra_data (service, IVUG_BUNDLE_KEY_CROP_MODE, &crop_mode); - if(crop_mode) - { - MSG_IVUG_MED("Crop mode=%s", crop_mode); - if(strcmp(crop_mode, IVUG_BUNDLE_VALUE_CROP_MODE_FIT_TO_SCREEN) == 0) - { + app_control_get_extra_data (service, IVUG_BUNDLE_KEY_CROP_MODE, &crop_mode); + if (crop_mode) { + MSG_MAIN_HIGH("Crop mode=%s", crop_mode); + if (strcmp(crop_mode, IVUG_BUNDLE_VALUE_CROP_MODE_FIT_TO_SCREEN) == 0) { int lcd_x = 0; int lcd_y = 0; int lcd_w = 0; @@ -644,8 +727,7 @@ ivug_param_create_from_bundle(service_h service) int rot = 0; evas_object_geometry_get((Evas_Object *)ug_get_window(), &lcd_x, &lcd_y, &lcd_w, &lcd_h); rot = gGetRotationDegree(); - if(rot == 90 || rot == 270) - { + if (rot == 90 || rot == 270) { int temp = lcd_w; lcd_w = lcd_h; lcd_h = temp; @@ -661,37 +743,48 @@ ivug_param_create_from_bundle(service_h service) } data->footsteps = false; /* default */ - service_get_extra_data (service, IVUG_BUNDLE_KEY_FOOTSTEPS, &val); - if (val) - { - MSG_IVUG_MED("Footsteps=%s", val); - if(strcmp(val, "TRUE") == 0) - { + app_control_get_extra_data (service, IVUG_BUNDLE_KEY_FOOTSTEPS, &val); + if (val) { + MSG_MAIN_HIGH("Footsteps=%s", val); + if (strcmp(val, "TRUE") == 0) { data->footsteps = true; } _ivug_free(&val); } + if (data->mode == IVUG_MODE_SELECT) { + char **index_list = NULL; + int index_len = 0; + char **index_list_fav = NULL; + int index_len_fav = 0; + char *val = NULL; + app_control_get_extra_data_array(service, IVUG_BUNDLE_KEY_SELECTED_INDEX, &index_list, &index_len); + app_control_get_extra_data_array(service, IVUG_BUNDLE_KEY_SELECTED_INDEX_FAV, &index_list_fav, &index_len_fav); + app_control_get_extra_data (service, IVUG_BUNDLE_KEY_ALBUM_IDX, &val); + if(strcmp(val, "GALLERY_ALBUM_FAVOURITE_ALBUMS_ID")==0){ + if (index_list_fav != NULL) { + int i; + for (i = 0; i < index_len_fav; i++) { + data->selected_list = eina_list_append(data->selected_list,index_list_fav[i]); + } + } + } else { + if (index_list != NULL) { + int i; + for (i = 0; i < index_len; i++) { + data->selected_list = eina_list_append(data->selected_list,index_list[i]); + } - char **index_list = NULL; - int index_len = 0; - service_get_extra_data_array(service, IVUG_BUNDLE_KEY_SELECTED_INDEX, &index_list, &index_len); - if(index_list != NULL) - { - int i; - for(i=0; iselected_list = eina_list_append(data->selected_list, (void *)ivug_atoi(index_list[i])); - } - for(i=0; itotal_selected = index_len + index_len_fav ; + MSG_MAIN_HIGH(" total count of images is %d",data->total_selected); free(index_list); - } + } return data; } @@ -704,20 +797,23 @@ ivug_param_delete(ivug_parameter* data) free(data->filepath); data->filepath = NULL; } + //eina_list_free(data->selected_list); // it freed at filter delete + char *array = NULL; + EINA_LIST_FREE(data->multiple_list, array) + { + free(array); + } uuid_free(data->album_id); free(data); - MSG_IVUG_HIGH("Parameter is freed."); + MSG_MAIN_HIGH("Parameter is freed."); } - - - Filter_struct *ivug_param_create_filter(const ivug_parameter *param) { IV_ASSERT(param != NULL); @@ -728,18 +824,29 @@ Filter_struct *ivug_param_create_filter(const ivug_parameter *param) media_handle handle = NULL; char *dir = NULL; - if ( param->view_by == IVUG_VIEW_BY_DIRECTORY ) + if (param->multiple_list) + { + + filter_str->type = FILTER_DIRECTORY; + + filter_str->filepath = strdup(param->filepath); + filter_str->file_list = param->multiple_list; + + return filter_str; + } + + if (param->view_by == IVUG_VIEW_BY_DIRECTORY) { filter_str->type = FILTER_DIRECTORY; filter_str->view_by = param->view_by; - Direcotry_Filter *filter = (Direcotry_Filter *)calloc(1, sizeof(Direcotry_Filter) ); + Direcotry_Filter *filter = (Direcotry_Filter *)calloc(1, sizeof(Direcotry_Filter)); IV_ASSERT(filter != NULL); filter_str->dir_filter = filter; filter_str->dir_filter->basedir = ivug_get_directory(param->filepath); - filter_str->dir_filter->current = strdup( param->filepath ); + filter_str->dir_filter->current = strdup(param->filepath); return filter_str; } @@ -753,42 +860,73 @@ Filter_struct *ivug_param_create_filter(const ivug_parameter *param) filter_str->sort_type = param->sort_type; filter_str->index = param->start_index; filter_str->selected_list = param->selected_list; - if(param->filepath) + if (param->filepath) { filter_str->filepath = strdup(param->filepath); } - if(filter_str->type == FILTER_DB) + if (filter_str->type == FILTER_DB) { DB_Filter *filter = calloc(1, sizeof(DB_Filter)); IV_ASSERT(filter != NULL); - MSG_SDATA_HIGH("param->view_by is %d", param->view_by); - switch(filter_str->view_by) + switch (filter_str->view_by) { case IVUG_VIEW_BY_PLACES: filter->place.max_longitude = param->max_longitude; filter->place.min_longitude = param->min_longitude; filter->place.max_latitude = param->max_latitude; filter->place.min_latitude = param->min_latitude; + + MSG_MAIN_HIGH("param->view_by is IVUG_VIEW_BY_PLACES"); + break; + + case IVUG_VIEW_BY_TIMELINE: + filter->time.start = param->timeline_start; + filter->time.end = param->timeline_end; + + MSG_MAIN_HIGH("param->view_by is IVUG_VIEW_BY_TIMELINE"); break; case IVUG_VIEW_BY_TAG: filter->tag_id = param->tag_id; + MSG_MAIN_HIGH("param->view_by is IVUG_VIEW_BY_TAG"); break; - case IVUG_VIEW_BY_FAVORITES: filter->album_id = INVALID_UUID; + MSG_MAIN_HIGH("param->view_by is IVUG_VIEW_BY_FAVORITES"); break; case IVUG_VIEW_BY_FILE: - filter->file_path = strdup(param->filepath); + if (param->filepath != NULL) { + filter->file_path = strdup(param->filepath); + MSG_MAIN_HIGH("param->view_by is IVUG_VIEW_BY_FILE"); + } break; case IVUG_VIEW_BY_ALL: filter->album_id = uuid_assign(param->album_id); + MSG_MAIN_HIGH("param->view_by is IVUG_VIEW_BY_ALL"); + break; + case IVUG_VIEW_BY_HIDDEN_ALL: + filter->album_id = uuid_assign(param->album_id); + MSG_MAIN_HIGH("param->view_by is IVUG_VIEW_BY_HIDDEN_ALL"); break; case IVUG_VIEW_BY_FOLDER: - if(param->album_id == NULL) + if (param->album_id == NULL) + { + dir = ivug_get_directory(param->filepath); + handle = ivug_db_get_folder_handle(dir); + filter->album_id = ivug_db_get_folder_id(handle); + free(dir); + } + else + { + filter->album_id = uuid_assign(param->album_id); + } + MSG_MAIN_HIGH("param->view_by is IVUG_VIEW_BY_FOLDER"); + break; + case IVUG_VIEW_BY_HIDDEN_FOLDER: + if (param->album_id == NULL) { dir = ivug_get_directory(param->filepath); handle = ivug_db_get_folder_handle(dir); @@ -799,12 +937,17 @@ Filter_struct *ivug_param_create_filter(const ivug_parameter *param) { filter->album_id = uuid_assign(param->album_id); } + MSG_MAIN_HIGH("param->view_by is IVUG_VIEW_BY_HIDDEN_FOLDER"); break; case IVUG_VIEW_BY_DIRECTORY: + // TODO : Need more things? + MSG_MAIN_HIGH("param->view_by is IVUG_VIEW_BY_DIRECTORY"); break; case IVUG_VIEW_BY_INVAILD: + MSG_MAIN_HIGH("param->view_by is IVUG_VIEW_BY_INVAILD"); + break; default: - MSG_SDATA_WARN("Invalid ViewBy : %d", param->view_by); + MSG_MAIN_HIGH("Invalid ViewBy : %d", param->view_by); break; } @@ -812,8 +955,11 @@ Filter_struct *ivug_param_create_filter(const ivug_parameter *param) filter_str->db_filter = filter; } + if (handle) + { + ivug_db_destroy_folder_handle(handle); + } + return filter_str; } - - diff --git a/main/src/control/ivug-parameter.h b/main/src/control/ivug-parameter.h index c3c7556..7d32483 100755 --- a/main/src/control/ivug-parameter.h +++ b/main/src/control/ivug-parameter.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_PARAMETER_H__ #define __IVUG_PARAMETER_H__ @@ -27,13 +28,18 @@ typedef enum { IVUG_MODE_INVAILD = 0x00, - IVUG_MODE_NORMAL, - IVUG_MODE_SINGLE, // just show one slide - IVUG_MODE_DISPLAY, // from "take a photo" in messenger + IVUG_MODE_NORMAL, // include web album + IVUG_MODE_SINGLE, // from My Files + IVUG_MODE_DISPLAY, // just show one image with no menu + IVUG_MODE_SAVE, // from "take a photo" in other app IVUG_MODE_FILE, // file viewer(can flick) IVUG_MODE_CAMERA, // camera(can flick) IVUG_MODE_SETAS, // SetAs in setting menu. IVUG_MODE_SLIDESHOW, // Slideshow + IVUG_MODE_HELP, + IVUG_MODE_EMAIL, + IVUG_MODE_SELECT, + IVUG_MODE_HIDDEN } ivug_mode; //set as ug @@ -61,7 +67,7 @@ typedef struct { UUID album_id; //cluster id of media service ivug_media_type media_type; - ivug_sort_type sort_type; + ivug_sort_type sort_type; // TODO : extract from here. sort type can be used in case of default /* for places view */ bool footsteps; @@ -70,18 +76,23 @@ typedef struct { double max_latitude; double min_latitude; + /* for time line view */ + long timeline_start; + long timeline_end; + /* for set as view crop box*/ unsigned int width; unsigned int height; bool bRatioFix; + bool bTestMode; // Indicate test mode. when test mode, application is terminate when back-key is clicked int tag_id; int start_index; - - Eina_List *selected_list; + Eina_List * /* filepath */ multiple_list; + int total_selected; } ivug_parameter; @@ -91,19 +102,18 @@ extern "C" { ivug_parameter* -ivug_param_create_from_bundle(service_h service); +ivug_param_create_from_bundle(app_control_h service); void ivug_param_delete(ivug_parameter* data); /* - Covert ivug_paramter to db filter + Covert ivug_paramter to db filter or allshare filter */ Filter_struct * ivug_param_create_filter(const ivug_parameter *param); - #ifdef __cplusplus } #endif diff --git a/main/src/control/ivug-selectioninfo.c b/main/src/control/ivug-selectioninfo.c deleted file mode 100755 index a516a19..0000000 --- a/main/src/control/ivug-selectioninfo.c +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ivug-common.h" - -#include - -#include "ivug-selectioninfo.h" - -#define NOTIFY_TIMEOUT 3.0 - -static void -_ivug_selectioninfo_timeout_cb(void *data, Evas_Object *obj, void *event_info) -{ - ivug_ret_if(obj == NULL); - - evas_object_del(obj); - obj = NULL; -} - -static void _on_resize(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - Evas_Coord x,y,w,h; - evas_object_geometry_get(obj, &x, &y, &w, &h); - - MSG_IMAGEVIEW_HIGH("Selection resized geomtery XYWH(%d,%d,%d,%d) angle=%d", x, y, w, h, gGetRotationDegree()); - - Evas_Object* layout = elm_object_content_get(obj); - ivug_retm_if(layout == NULL, "Notify content is NULL"); - - //Get the selectioninfo text - const char* text = edje_object_part_text_get(_EDJ(layout), "elm.text"); - -#ifdef USE_CUSTOM_STYLE - elm_object_theme_set(layout, gGetSystemTheme()); - - int rot_angle = gGetRotationDegree(); - if ( (rot_angle == 0) || (rot_angle == 180) ) - { - elm_layout_theme_set(layout, "standard", "selectioninfo", "vertical/bottom_86"); - } - else - { - elm_layout_theme_set(layout, "standard", "selectioninfo", "horizontal/bottom_64"); - } -#endif - - if(text) - { - //Reset the text, because the text will be missed if no reset - edje_object_part_text_set(_EDJ(layout), "elm.text", text); - } - -} - - -Evas_Object* -ivug_selectioninfo_create(Evas_Object* parent, const char* text) -{ - Evas_Object *notify; - - notify = elm_notify_add(parent); - ivug_retv_if(notify == NULL, NULL); - elm_notify_align_set(notify, ELM_NOTIFY_ALIGN_FILL, 1.0); - evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(notify, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_smart_callback_add(notify, "timeout", _ivug_selectioninfo_timeout_cb, NULL); - elm_notify_timeout_set(notify, NOTIFY_TIMEOUT); - - int rot_angle = gGetRotationDegree(); - - Evas_Object* layout = elm_layout_add(parent); - -#ifdef USE_CUSTOM_STYLE - elm_object_theme_set(layout, gGetSystemTheme()); - - if ( (rot_angle == 0) || (rot_angle == 180) ) - { - elm_layout_theme_set(layout, "standard", "selectioninfo", "vertical/bottom_86"); - } - else - { - elm_layout_theme_set(layout, "standard", "selectioninfo", "horizontal/bottom_64"); - } -#endif - - evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_object_content_set(notify, layout); - edje_object_part_text_set(_EDJ(layout), "elm.text", text); - - evas_object_event_callback_add(notify, EVAS_CALLBACK_RESIZE, _on_resize, NULL); - - evas_object_show(notify); - - return notify; -} - -Evas_Object* -ivug_notify_create(Evas_Object* parent, const char* text) -{ - Evas_Object *selection_info; - - selection_info = elm_layout_add(parent); - ivug_retv_if(selection_info == NULL, NULL); - evas_object_size_hint_weight_set(selection_info, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(selection_info, EVAS_HINT_FILL, EVAS_HINT_FILL); - -#ifdef USE_CUSTOM_STYLE - //elm_object_theme_set(selection_info, gGetSystemTheme()); -#endif - elm_layout_theme_set(selection_info, "standard", "selectioninfo", "default"); - - elm_object_part_text_set(selection_info, "elm.text", text); - - evas_object_show(selection_info); - - return selection_info; -} - -static void _on_timeout(void *data, Evas_Object *obj, void *event_info) -{ - evas_object_del(obj); // remove notify -} - -void -ivug_notify_timeout_create(Evas_Object* parent, const char* text, double align, - Evas_Smart_Cb timeout_cb, void *data) -{ - Evas_Object *notify = elm_notify_add(parent); - ivug_ret_if(notify == NULL); - elm_notify_align_set(notify, ELM_NOTIFY_ALIGN_FILL, align); - elm_notify_timeout_set(notify, 2.0); - - Evas_Object *selection_info = elm_layout_add(notify); - ivug_ret_if(selection_info == NULL); - evas_object_size_hint_weight_set(selection_info, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(selection_info, EVAS_HINT_FILL, EVAS_HINT_FILL); - -#ifdef USE_CUSTOM_STYLE - //elm_object_theme_set(selection_info, gGetSystemTheme()); -#endif - elm_layout_theme_set(selection_info, "standard", "selectioninfo", "default"); - - elm_object_part_text_set(selection_info, "elm.text", text); - - elm_object_content_set(notify, selection_info); - - if(timeout_cb) - evas_object_smart_callback_add(notify, "timeout", timeout_cb, data); - else - evas_object_smart_callback_add(notify, "timeout", _on_timeout, NULL); - - evas_object_show(notify); -} - -Evas_Object* -ivug_notify_static_create(Evas_Object* parent, const char* text, double align) -{ - Evas_Object *notify = elm_notify_add(parent); - ivug_retv_if(notify == NULL, NULL); - elm_notify_align_set(notify, ELM_NOTIFY_ALIGN_FILL, align); - - Evas_Object *selection_info = elm_layout_add(notify); - ivug_retv_if(selection_info == NULL, NULL); - evas_object_size_hint_weight_set(selection_info, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(selection_info, EVAS_HINT_FILL, EVAS_HINT_FILL); - -#ifdef USE_CUSTOM_STYLE - //elm_object_theme_set(selection_info, gGetSystemTheme()); -#endif - elm_layout_theme_set(selection_info, "standard", "selectioninfo", "default"); - - elm_object_part_text_set(selection_info, "elm.text", text); - - elm_object_content_set(notify, selection_info); - - evas_object_show(notify); - - return notify; -} - - diff --git a/main/src/control/ivug-selectioninfo.h b/main/src/control/ivug-selectioninfo.h deleted file mode 100755 index 91aa3c9..0000000 --- a/main/src/control/ivug-selectioninfo.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 __IVUG_SELECTIONINFO_H__ -#define __IVUG_SELECTIONINFO_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -#define NOTIFY_ALIGN_TOP (0.04) // efl bug? not 0.0 -#define NOTIFY_ALIGN_BOTTOM (1.0) - -/* time out applied */ -Evas_Object * ivug_selectioninfo_create(Evas_Object* parent, const char* contents); - -Evas_Object * ivug_notify_create(Evas_Object* parent, const char* text); - -Evas_Object * ivug_notify_static_create(Evas_Object* parent, const char* text, double align); - -void ivug_notify_timeout_create(Evas_Object* parent, const char* text, double align, - Evas_Smart_Cb timeout_cb, void *data); - - -#ifdef __cplusplus -} -#endif - -#endif // __IVUG_SELECTIONINFO_H__ diff --git a/main/src/control/ivug-setas.cpp b/main/src/control/ivug-setas.cpp deleted file mode 100755 index a71047f..0000000 --- a/main/src/control/ivug-setas.cpp +++ /dev/null @@ -1,323 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ivug-common.h" - -#include "ivug-debug.h" -#include "ivug-util.h" -#include "ivug-image.h" - -#include "ivug-setas.h" - -/* - Used for storing cropped image. -*/ -#define IVUG_HOME_SCREEN_TEMP_PATH DATA_PATH"/.homescreen_tmp.jpg" -#define IVUG_LOCK_SCREEN_TEMP_PATH DATA_PATH"/.lockscreen_tmp.jpg" - - -static Eina_Bool _crop_image(Evas_Object *photocam, Evas_Coord_Rectangle *rect, const char *save_file, const char *option) -{ - if (ivug_remove_file(save_file) == false) - { - MSG_SETAS_ERROR( "Delete file %s: failed", save_file); - return EINA_FALSE; - } - - Evas_Object *ret_image = NULL; - - ret_image = ivug_image_region_image_get(photocam, rect->x, rect->y, rect->w , rect->h); - - if(ret_image == NULL) - { - MSG_SETAS_ERROR("Region get faied."); - return EINA_FALSE; - } - - if (evas_object_image_save(ret_image, save_file, NULL, option) == EINA_FALSE) - { - MSG_SETAS_ERROR("evas_object_image_save error. %s", save_file); - MSG_SETAS_ERROR("setas image save faied."); - evas_object_del(ret_image); - return EINA_FALSE; - } - - evas_object_del(ret_image); - - return EINA_TRUE; -} - - -static Eina_Bool _photocam_image_save(Evas_Object *photocam, Evas_Coord_Rectangle *rect, const char* tmp_file, const char* final_file) -{ -//2. Crop image and save it as tmp file - Eina_Bool ret; - - if ( tmp_file == NULL ) - { - if (ivug_remove_file(final_file) == false) // Remove dest file - { - MSG_SETAS_ERROR( "Delete file %s failed", final_file); - goto error; - } - - ret = _crop_image(photocam, rect, final_file, "quality=100 compress=9"); - if(ret == EINA_FALSE) - { - MSG_SETAS_ERROR("crop image failed!"); - goto error; - } - - } - else - { - // save ½ÇÆнà ÇöÀçÀÇ image¸¦ º¸È£Çϱâ À§ÇØ ¸ÕÀú tmp¿¡ ÀúÀåÇÑ ´ÙÀ½ rename ÇÑ´Ù. - ret = _crop_image(photocam, rect, tmp_file, "quality=100 compress=9"); - if(ret == EINA_FALSE) - { - MSG_SETAS_ERROR("crop image failed!"); - goto error; - } - - //3. Delete the lockscreen file if exist - if (ivug_remove_file(final_file) == false) - { - MSG_SETAS_ERROR( "Delete file %s failed", final_file); - goto error; - } - - //4. rename the tmp file to lock screen file - if(ivug_rename_file(tmp_file, final_file) == false) - { - MSG_SETAS_ERROR( "Rename file %s to %s failed", tmp_file, final_file); - goto error; - } - } - - return EINA_TRUE; -error: - if ( tmp_file != NULL ) - { - if(ivug_remove_file(tmp_file) == false) - { - MSG_SETAS_ERROR( "Delete file %s failed", tmp_file); - } - } - - return EINA_FALSE; -} - -Eina_Bool -_ivug_setas_save_home_screen(Evas_Object *photocam, Evas_Coord_Rectangle *rect, const char *dest) -{ - MSG_SETAS_HIGH("Change Home Screen"); - - Eina_Bool ret = EINA_FALSE; - - ret = _photocam_image_save(photocam, rect, IVUG_HOME_SCREEN_TEMP_PATH, dest); - - if(ret == EINA_FALSE) - { - MSG_SETAS_ERROR("Create screen file failed"); - return EINA_FALSE; - } - - return EINA_TRUE; -} - -Eina_Bool -_ivug_setas_save_lock_screen(Evas_Object *photocam, Evas_Coord_Rectangle *rect, const char *dest) -{ - MSG_SETAS_HIGH("Change Lock Screen"); - - Eina_Bool ret = EINA_FALSE; - - ret = _photocam_image_save(photocam, rect, IVUG_LOCK_SCREEN_TEMP_PATH, dest); - - if(ret == EINA_FALSE) - { - MSG_SETAS_ERROR( "Create screen file failed"); - return EINA_FALSE; - } - - return EINA_TRUE; -} - -Eina_Bool -_ivug_setas_save_homenlock_screen(Evas_Object *photocam, Evas_Coord_Rectangle *rect, const char *home, const char *lock) -{ - MSG_SETAS_HIGH("Change Home&Lock Screen"); - -// Set homescreen image - Eina_Bool ret = EINA_FALSE; - - ret = _photocam_image_save(photocam, rect, IVUG_HOME_SCREEN_TEMP_PATH, home); - - if(ret == EINA_FALSE) - { - MSG_SETAS_ERROR( "Create screen file failed"); - return EINA_FALSE; - } - - if (ivug_remove_file(IVUG_LOCK_SCREEN_TEMP_PATH) == false) - { - MSG_SETAS_ERROR( "Detele file %s: failed", IVUG_LOCK_SCREEN_TEMP_PATH); - return EINA_FALSE; - } - -// Make a copy from home screen to lock screen - if( ecore_file_cp(home, IVUG_LOCK_SCREEN_TEMP_PATH) == EINA_FALSE) - { - MSG_SETAS_ERROR( "File copy failed"); - return EINA_FALSE; - } - - if(ivug_rename_file(IVUG_LOCK_SCREEN_TEMP_PATH, lock) == false) - { - MSG_SETAS_ERROR( "Rename file %s to %s failed", IVUG_LOCK_SCREEN_TEMP_PATH, lock ); - if(ivug_remove_file(IVUG_LOCK_SCREEN_TEMP_PATH)== false) - { - MSG_SETAS_ERROR( "delete tmp lock file failed %s", IVUG_LOCK_SCREEN_TEMP_PATH); - } - - return EINA_FALSE; - } - - sync(); //sync copied file. - - return EINA_TRUE; -} - - -#if 0 -static Eina_Bool -_ivug_setas_view_create_croped_image(Evas_Object *photocam, const char *save_file, - Evas_Coord_Rectangle rect, int width, int height, bool bFreeSize) -{ - IV_ASSERT(photocam != NULL); - IV_ASSERT(save_file != NULL); - - if(bFreeSize == true) - { - width = rect.w; - height = rect.h; - } - - if(width <= 0 || height <= 0) - { - MSG_SETAS_ERROR("input size parameter is invalid, w = %d, h = %d", width, height); - return EINA_FALSE; - } - - Evas_Object *ret_image = NULL; - - MSG_SETAS_HIGH("SCissorbox Rect:(%d,%d,%d,%d) Final=(%d,%d)", rect.x, rect.y, rect.w, rect.h, width, height); - - ret_image = ivug_image_region_image_get(photocam, rect.x, rect.y, rect.w, rect.h); - if(ret_image == NULL) - { - MSG_SETAS_ERROR("Region get faied."); - return EINA_FALSE; - } - - if (evas_object_image_save(ret_image, save_file, NULL, "quality=100 compress=9") == EINA_FALSE) - { - MSG_SETAS_ERROR("evas_object_image_save error. %s", save_file); - evas_object_del(ret_image); - return EINA_FALSE; - } - else - { - int fd = open(save_file, O_RDONLY); - if(fd < 0) - { - MSG_SETAS_ERROR("%s open error[%d]", save_file, fd); - evas_object_del(ret_image); - return EINA_FALSE; - } - fsync(fd); - int ret = close(fd); - if(ret < 0) - { - MSG_SETAS_ERROR("%s open error[%d]", save_file, ret); - } - } - - evas_object_del(ret_image); - - return EINA_TRUE; -} - - -static void -_ivug_setas_save_callerimage(Evas_Object *photocam, Evas_Coord_Rectangle *rect, char *filepath) -{ - MSG_SETAS_HIGH("Save CallerID"); - - char* save_file = SET_AS_CALL_ID_PATH; - - Evas_Coord_Rectangle box_rect; - - ivug_scissorbox_region_get(pSetAsView->select_box, &(box_rect.x), &(box_rect.y), &(box_rect.w), &(box_rect.h)); - - Eina_Bool crop_sel_ret = _ivug_setas_view_create_croped_image(photocam, - save_file, box_rect, pSetAsView->box_width, pSetAsView->box_height, pSetAsView->bFreeSize); - if(crop_sel_ret == EINA_FALSE) - { - MSG_SETAS_ERROR( "Crop selector image failed!"); - } - - const char *lcd_file = SET_AS_CALL_ID_LCD_PATH; // ????? - - Eina_Bool crop_lcd_ret = EINA_FALSE; - - crop_lcd_ret = _ivug_setas_view_create_fit_image(pSetAsView->layout, pSetAsView->photocam, lcd_file); - if(crop_lcd_ret == EINA_FALSE) - { - MSG_SETAS_ERROR( "Crop lcd image failed!"); - } - - if(pSetAsView->Mode != IVUG_SETAS_NORMAL) - { - if ( crop_lcd_ret == EINA_TRUE && crop_sel_ret == EINA_TRUE ) - { - _ivug_setas_view_send_result(gGetUGHandle(), "crop_image_path", save_file, "image_path", lcd_file); - } - } -} -#endif - -Eina_Bool -_ivug_setas_save_cropimage(Evas_Object *photocam, Evas_Coord_Rectangle *rect, const char *filepath) -{ - MSG_SETAS_HIGH("Save Cropped"); - - Eina_Bool ret = EINA_FALSE; - - ret = _photocam_image_save(photocam, rect, NULL, filepath); - - if(ret == EINA_FALSE) - { - MSG_SETAS_ERROR( "Create cropimage file failed"); - return EINA_FALSE; - } - - return EINA_TRUE; -} - - diff --git a/main/src/control/ivug-setas.h b/main/src/control/ivug-setas.h deleted file mode 100755 index b57cef1..0000000 --- a/main/src/control/ivug-setas.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 __IVUG_SETAS_H__ -#define __IVUG_SETAS_H__ - - -#ifdef __cplusplus -extern "C" { -#endif - -Eina_Bool -_ivug_setas_save_home_screen(Evas_Object *photocam, Evas_Coord_Rectangle *rect, const char *dest); - -Eina_Bool -_ivug_setas_save_lock_screen(Evas_Object *photocam, Evas_Coord_Rectangle *rect, const char *dest); - -Eina_Bool -_ivug_setas_save_homenlock_screen(Evas_Object *photocam, Evas_Coord_Rectangle *rect, const char *home, const char *lock); - -Eina_Bool -_ivug_setas_save_cropimage(Evas_Object *photocam, Evas_Coord_Rectangle *rect, const char *filepath); - -#ifdef __cplusplus -} -#endif - -#endif // __IVUG_SETAS_H__ - diff --git a/main/src/control/ivug-widget.c b/main/src/control/ivug-widget.c deleted file mode 100755 index 684cc1d..0000000 --- a/main/src/control/ivug-widget.c +++ /dev/null @@ -1,276 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ivug-common.h" -#include "ivug-widget.h" - -#include - -#include - -static void _on_obj_deleted(void * data, Evas * e, Evas_Object * obj, void * event_info) -{ - char *szMsg = (char *)data; - IV_ASSERT(szMsg != NULL); - - MSG_IVUG_HIGH("On Object deleted. %s", szMsg); - - free(szMsg); -} - -void ivug_layout_attach_to_window(Evas_Object *parent, Evas_Object* layout) -{ -#ifdef USE_WIN_AS_PARENT - elm_win_resize_object_add(ug_get_window(), layout); -#else - Evas_Coord x, y, w, h; - evas_object_geometry_get(parent, &x, &y, &w, &h); - - evas_object_move(layout, x, y); - evas_object_resize(layout, w, h); -#endif -} - -void ivug_on_obj_deleted(Evas_Object* obj, const char *msg, const char *func, int line) -{ - static char buf[1024]; - - sprintf(buf, "%s(L%d):%s", func, line, msg); - - evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL, _on_obj_deleted, strdup(buf)); -} - -Evas_Object* ivug_bg_add(Evas_Object* parent, int r, int g, int b) -{ - IV_ASSERT(parent != NULL); - - Evas_Object *bg = elm_bg_add(parent); - evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(bg, EVAS_HINT_FILL, EVAS_HINT_FILL); - -// elm_win_resize_object_add(parent, bg); - - elm_bg_color_set(bg, r, g, b); - - evas_object_show(bg); - - return bg; -} - -Evas_Object * -ivug_layout_add(Evas_Object *parent, const char *edj, const char *group) -{ - IV_ASSERT(parent != NULL); - - Evas_Object *layout; - - layout = elm_layout_add(parent); - - if ( layout == NULL ) - { - MSG_IVUG_ERROR("Cannot create layout"); - return NULL; - } - - if (elm_layout_file_set(layout, edj, group) == EINA_FALSE) - { - MSG_IVUG_ERROR("edj loading fail, filepath=%s Group=%s", edj, group); - evas_object_del(layout); - return NULL; - } - -/* - winÀÇ child¿¡ ´ëÇØ expand_set(EXPAND,EXPAND) ¸¦ ÇØÁÖÁö ¾ÊÀ¸¸é.. - - elm_win_resize_object_add() ³»ºÎ¿¡¼­, winÀÇ minWH, maxWH¸¦ ´Ù½Ã ±¸ÇÏ°Ô µÇ´Âµ¥, - - À̺κп¡¼­ max°ªÀ» minÀ¸·Î ÇÒ´ç Çعö¸®±â ¶§¹®¿¡ winÀÇ Å©±â°¡ minWHÀÇ Å©±â·Î °íÁ¤ µÇ¾î ¹ö¸°´Ù. - - ¹«Á¶°Ç EXPANDÇØÁÖ¾î¶ó.. elm_win°ú ¿¬°üÀÌ ÀÖ´Ù¸é .. -*/ - evas_object_size_hint_expand_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_fill_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); - - ivug_layout_attach_to_window(parent, layout); - - return layout; -} - -Evas_Object* -ivug_default_layout_add( Evas_Object *win) -{ - IV_ASSERT(win != NULL); - - Evas_Object *layout; - layout = elm_layout_add(win); - - if ( layout == NULL ) - { - MSG_SETAS_ERROR("Cannot create layout"); - return NULL; - } - - Eina_Bool ret = EINA_FALSE; - - const char *profile = elm_config_profile_get(); - if (!strcmp(profile,"mobile")) - { - ret = elm_layout_theme_set(layout, "layout", "application", "default"); - MSG_IVUG_HIGH("layout/application/default"); - } - else if (!strcmp(profile,"desktop")) - { - ret = elm_layout_theme_set(layout, "layout", "application", "noindicator"); - MSG_IVUG_HIGH("layout/application/noindicator"); - } - - if (ret == EINA_FALSE) - { - MSG_IVUG_ERROR("theme set fail"); - evas_object_del(layout); - return NULL; - } - - evas_object_size_hint_expand_set( layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_fill_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL ); - - evas_object_show(layout); - return layout; -} - -Evas_Object * -ivug_layout_add2(Evas_Object *parent, const char *edj, const char *group) -{ - IV_ASSERT(parent != NULL); - - Evas_Object *layout; - - layout = elm_layout_add(parent); - - if ( layout == NULL ) - { - MSG_IVUG_ERROR("Cannot create layout"); - return NULL; - } - - if (elm_layout_file_set(layout, edj, group) == EINA_FALSE) - { - MSG_IVUG_ERROR("edj loading fail, filepath=%s Group=%s", edj, group); - evas_object_del(layout); - return NULL; - } - - evas_object_size_hint_expand_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_fill_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); - - evas_object_show(layout); - return layout; -} - -Evas_Object *ivug_button_add(Evas_Object *parent, const char *style, const char *caption, Evas_Object *icon, Evas_Smart_Cb pFunc, const void * data ) -{ - IV_ASSERT(parent != NULL); - - Evas_Object *btn; - - btn = elm_button_add(parent); - if ( btn == NULL ) - { - return NULL; - } - - if ( style ) - elm_object_style_set(btn, style); - - if ( caption ) - elm_object_text_set(btn, caption); - - if ( icon ) - elm_object_part_content_set(btn, "icon", icon); - - elm_object_focus_allow_set(btn, EINA_FALSE); - evas_object_propagate_events_set(btn, EINA_FALSE); - - evas_object_smart_callback_add(btn, "clicked", pFunc, (void*)data); - - return btn; -} - -Evas_Object *ivug_icon_add(Evas_Object *parent, const char *edjname, const char *groupname) -{ - Evas_Object *icon; - - icon = elm_icon_add(parent); - - if ( elm_image_file_set(icon, edjname, groupname) == EINA_FALSE) - { - MSG_IVUG_ERROR("Cannot file set. EDJ=%s Group=%s", edjname, groupname); - evas_object_del(icon); - return NULL; - } - - evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); - elm_image_resizable_set(icon, 1, 1); - evas_object_size_hint_expand_set(icon, 1, 1); - - return icon; -} - -Evas_Object *ivug_controlbar_add(Evas_Object *parent, const char *style) -{ - Evas_Object *toolbar = elm_toolbar_add(parent); - if (!toolbar) - { - MSG_IVUG_ERROR("tool bar failed"); - return NULL; - } - elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_EXPAND); - if(style) - elm_object_style_set(toolbar, style); - //elm_toolbar_homogeneous_set(toolbar, EINA_FALSE); - - return toolbar; -} - -Evas_Object *ivug_naviframe_add(Evas_Object *parent, const char *style) -{ - Evas_Object *navi_bar = elm_naviframe_add(parent); - if ( navi_bar == NULL) - { - MSG_IVUG_ERROR("elm_naviframe_add failed"); - return NULL; - } - - if(style) - { - elm_object_style_set(navi_bar, style); - } - else - { -#ifdef USE_CUSTOM_STYLE - elm_object_theme_set(navi_bar, gGetSystemTheme()); - elm_object_style_set(navi_bar, "ivug-main/default"); -#else - elm_object_style_set(navi_bar, "default"); -#endif - } - - evas_object_show(navi_bar); - - return navi_bar; -} - - diff --git a/main/src/control/ivug-widget.h b/main/src/control/ivug-widget.h deleted file mode 100755 index 21fbf3c..0000000 --- a/main/src/control/ivug-widget.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 __IVUG_WIDGET_H__ -#define __IVUG_WIDGET_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - Internal use only... use macro DELETE_LOG instead -*/ -void ivug_on_obj_deleted(Evas_Object* obj, const char *msg, const char *func, int line); - - -#define DELETE_NOTIFY(obj) \ - ivug_on_obj_deleted(obj, #obj, __func__, __LINE__) - -/* - Create elm_bg with color - r,g,b -*/ -Evas_Object * -ivug_bg_add(Evas_Object* parent, int r, int g, int b); - -Evas_Object * -ivug_layout_add(Evas_Object *win, const char *edjname, const char *groupname); - -Evas_Object * -ivug_layout_add2(Evas_Object *parent, const char *edj, const char *group); - -Evas_Object* -ivug_default_layout_add( Evas_Object *win); - -Evas_Object * -ivug_button_add(Evas_Object *parent, const char *style, const char *caption, Evas_Object *icon, Evas_Smart_Cb pFunc, const void *data ); - -Evas_Object * -ivug_icon_add(Evas_Object *parent, const char *edjname, const char *groupname); - -Evas_Object * -ivug_controlbar_add(Evas_Object *parent, const char *style); - -Evas_Object * -ivug_naviframe_add(Evas_Object *parent, const char *style); - - -#ifdef __cplusplus -} -#endif - - -#endif // __IVUG_WIDGET_H__ - diff --git a/main/src/decolayer/ivug-decolayer.cpp b/main/src/decolayer/ivug-decolayer.cpp new file mode 100755 index 0000000..96d8c47 --- /dev/null +++ b/main/src/decolayer/ivug-decolayer.cpp @@ -0,0 +1,784 @@ +/* +* Copyright (c) 2000-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 "ivug-define.h" + +#include "ivug-decolayer.h" +#include "ivug-debug.h" +#include "EFLUtil.h" +#include "ivug-config.h" + +#include +#include // std::swap + +#undef LOG_LVL +#define LOG_LVL (DBG_MSG_LVL_HIGH) + +#undef LOG_CAT +#define LOG_CAT "IV-DECO" + +#include "EvasSmartObj.h" +#include "iv-button.h" + +#define ICON_PLAY_SIZE 100 +#define IMG_PATH PREFIX"/res/images/"PACKAGE +#define EDJ_PATH PREFIX"/res/edje/"PACKAGE + +#define IMG_MARGIN (20) +#define TOP_OFFSET (80) + +#define THUMB_ICON_SIZE (60) +#define ICON_EDJ_PATH EDJ_PATH"/ivug-icons.edj" + + +static const char *szPlaySpeedIcon[] = +{ + "icon.burstspeed.1.5th", "icon.burstspeed.1.5th.press", + "icon.burstspeed.1.2th", "icon.burstspeed.1.2th.press", + "icon.burstspeed.1", "icon.burstspeed.1.press", + "icon.burstspeed.2", "icon.burstspeed.2.press", +}; + + +class CDecolayer : public CEvasSmartObject { + static Eina_Bool _timer_cb(void *data) + { + CDecolayer *thiz = (CDecolayer *)data; + + thiz->OnTimer(); + + return ECORE_CALLBACK_RENEW; + } + +#if (LOG_LVL & DBG_MSG_LVL_DEBUG) + static void _on_receive_mouse_event(void *data, Evas *e, Evas_Object *obj, void *event_info) + { + char *str = (char *)data; + + MSG_HIGH("Decolayer(0x%08x):%s %s",obj, str, evas_object_name_get(obj)); + } +#endif + +public: + CDecolayer() : CEvasSmartObject(), icon_w(THUMB_ICON_SIZE), icon_h(THUMB_ICON_SIZE), bVisible(false), m_event(NULL), m_ico_soundpic(NULL), m_ico_play(NULL), m_ico_burstplay(NULL), m_ico_burstspeed(NULL) + { + CEvasSmartObject::SetClassName("DecoLayer"); + + m_timer = NULL; + m_deco = IVUG_DECO_NONE; + MSG_HIGH("CDecolayer constructor"); + }; + + virtual ~CDecolayer() { + MSG_HIGH("CDecolayer destructor"); + }; + + Evas_Object *CreateObject(Evas_Object *parent) { + CEvasSmartObject::CreateObject(parent); +// Register signal + evas_object_smart_callbacks_descriptions_set(GetObject(), _signals); + + m_event = evas_object_rectangle_add(evas_object_evas_get(parent)); + evas_object_pass_events_set(m_event, EINA_TRUE); + evas_object_color_set(m_event, 0, 0, 0, 0); + + evas_object_smart_member_add(m_event, GetObject()); + +#if (LOG_LVL & DBG_MSG_LVL_DEBUG) + evas_object_event_callback_add(m_event, EVAS_CALLBACK_MOUSE_DOWN, _on_receive_mouse_event, "decolayer.down"); + evas_object_event_callback_add(m_event, EVAS_CALLBACK_MOUSE_UP, _on_receive_mouse_event, "decolayer.up"); +#endif + + evas_object_show(m_event); + return GetObject(); + }; + + void UpdateIcon() + { + MSG_MED("Update Icon!"); + SetType(m_deco, true); + } + +// IMG_PATH"/bestpic/gallery_icon_bestpic.png" + bool SetType(Ivug_Deco deco, bool bForce = false) + { + MSG_HIGH("Set decoration type(%d --> %d) bForce=%d", m_deco, deco, bForce); + + if (bForce == false ) + { + if (m_deco == deco ) return true; + } + + switch(m_deco) // Old type + { + case IVUG_DECO_VIDEO: + if (m_ico_play ) + { + evas_object_hide(m_ico_play); + } + break; + case IVUG_DECO_PANORAMA: + break; + case IVUG_DECO_SOUNDPIC: + if (m_timer ) // Remove soundpic timer.. + { + ecore_timer_del(m_timer); + m_timer = NULL; + } + + if (m_ico_soundpic ) + { + evas_object_hide(m_ico_soundpic); + } + break; + case IVUG_DECO_BURST: + if (m_ico_burstplay) + { + evas_object_hide(m_ico_burstplay); + } + + if (m_ico_burstspeed ) + { + evas_object_hide(m_ico_burstspeed); + } + + break; + + case IVUG_DECO_NONE: + if (m_ico_play ) + { + evas_object_hide(m_ico_play); + } + if (m_ico_soundpic ) + { + evas_object_hide(m_ico_soundpic); + } + + if (m_ico_burstplay) + { + evas_object_hide(m_ico_burstplay); + } + + if (m_ico_burstspeed ) + { + evas_object_hide(m_ico_burstspeed); + + } + + break; + default: + MSG_ERROR("Unknown media type : %d", m_deco); + return false; + } + + m_deco = deco; + + if (m_deco == IVUG_DECO_BURST ) + { + eConfigPlaySpeed cState; + + if (ivug_config_get_playspeed(&cState) == false ) + { + cState = PLAYSPEED_1; + } + + if (m_speed != cState ) + { + evas_object_del(m_ico_burstspeed); // Can change plaspeed icon. so remove object + m_ico_burstspeed = NULL; + + m_speed = cState; + } + } + + evas_object_smart_changed(GetObject()); + + return true; + + } + + + bool StartBlink() { + MSG_MED("Start Blinking"); + if (m_timer ) + { + ecore_timer_del(m_timer); + m_timer = NULL; + } + + m_timer = ecore_timer_add(0.6f, _timer_cb, this); + + return true; + }; + + + bool StopBlink() { + MSG_MED("Stop Blinking"); + if (m_timer ) + { + ecore_timer_del(m_timer); + m_timer = NULL; + } + + if (m_ico_soundpic && ( bVisible == true )) + { + evas_object_show(m_ico_soundpic); + } + + return true; + } + + bool CheckVIcon(int cx, int cy) + { + if (m_ico_play == NULL) return false; + if (m_deco != IVUG_DECO_VIDEO ) return false; + + int x,y,w,h; + + evas_object_geometry_get(m_ico_play, &x, &y, &w, &h); + + MSG_HIGH("Check video icon Geo(%d,%d,%d,%d) Point(%d,%d)", x,y,w,h,cx,cy); + if ((x < cx) && (cx < (x + w)) && (y < cy) && (cy < (y + h) ) ) + return true; + + return false; + } + + bool CheckSoundIcon(int cx, int cy) + { + if (m_ico_soundpic == NULL) return false; + if (m_deco != IVUG_DECO_SOUNDPIC ) return false; + + int x,y,w,h; + + evas_object_geometry_get(m_ico_soundpic, &x, &y, &w, &h); + + MSG_HIGH("Check Sound icon Geo(%d,%d,%d,%d) Point(%d,%d)", x,y,w,h,cx,cy); + if ((x < cx) && (cx < (x + w)) && (y < cy) && (cy < (y + h) ) ) + return true; + + return false; + } + + ivug_deco_icon_e CheckIcon(int cx, int cy) + { + int x,y,w,h; + + switch(m_deco) + { + case IVUG_DECO_SOUNDPIC: + if (m_ico_soundpic == NULL) + { + MSG_WARN("Debug ME!! m_deco:%d", m_deco); + return IVUG_DECO_ICON_NONE; + } + + evas_object_geometry_get(m_ico_soundpic, &x, &y, &w, &h); + + MSG_HIGH("Check Sound icon Geo(%d,%d,%d,%d) Point(%d,%d)", x,y,w,h,cx,cy); + if ((x < cx) && (cx < (x + w)) && (y < cy) && (cy < (y + h) ) ) + { + return IVUG_DECO_ICON_SOUNDPIC; + } + + break; + case IVUG_DECO_BURST: + if (m_ico_burstplay == NULL) + { + MSG_WARN("Debug ME!! m_deco:%d", m_deco); + return IVUG_DECO_ICON_NONE; + } + + if (m_ico_burstspeed == NULL) + { + MSG_WARN("Debug ME!! m_deco:%d", m_deco); + return IVUG_DECO_ICON_NONE; + } + + evas_object_geometry_get(m_ico_burstplay, &x, &y, &w, &h); + + MSG_HIGH("Check Burst icon play Geo(%d,%d,%d,%d) Point(%d,%d)", x,y,w,h,cx,cy); + if ((x < cx) && (cx < (x + w)) && (y < cy) && (cy < (y + h) ) ) + { + return IVUG_DECO_ICON_BURST_PLAY; + } + + evas_object_geometry_get(m_ico_burstspeed, &x, &y, &w, &h); + + MSG_HIGH("Check Burst speed icon Geo(%d,%d,%d,%d) Point(%d,%d)", x,y,w,h,cx,cy); + if ((x < cx) && (cx < (x + w)) && (y < cy) && (cy < (y + h) ) ) + { + return IVUG_DECO_ICON_BURST_PLAYSPEED; + } + + + break; + case IVUG_DECO_VIDEO: + if (m_ico_play == NULL) + { + MSG_WARN("Debug ME!! m_deco:%d", m_deco); + return IVUG_DECO_ICON_NONE; + } + + evas_object_geometry_get(m_ico_play, &x, &y, &w, &h); + + MSG_HIGH("Check video icon Geo(%d,%d,%d,%d) Point(%d,%d)", x,y,w,h,cx,cy); + if ((x < cx) && (cx < (x + w)) && (y < cy) && (cy < (y + h) ) ) + { + return IVUG_DECO_ICON_VIDEO; + } + + break; + default: + + break; + } + + + return IVUG_DECO_ICON_NONE; + + } + + void hide_icon_play() + { + if (m_ico_play ) + { + evas_object_hide(m_ico_play); + } + } + +protected: + virtual void clip_set(Evas_Object *clipper) { + + if (m_ico_soundpic ) + { + evas_object_clip_set(m_ico_soundpic, clipper); + } + + if (m_ico_play ) + { + evas_object_clip_set(m_ico_play, clipper); + } + + if (m_ico_burstplay ) + { + evas_object_clip_set(m_ico_burstplay, clipper); + } + + if (m_ico_burstspeed ) + { + evas_object_clip_set(m_ico_burstspeed, clipper); + } + + }; + + virtual void clip_unset() { + + if (m_ico_soundpic ) + { + evas_object_clip_unset(m_ico_soundpic); + } + + if (m_ico_play ) + { + evas_object_clip_unset(m_ico_play); + } + + if (m_ico_burstplay ) + { + evas_object_clip_unset(m_ico_burstplay); + } + + if (m_ico_burstspeed ) + { + evas_object_clip_unset(m_ico_burstspeed); + } + + }; + + virtual void draw() { + CRect m_rect = GetGeometry(); + + MSG_LOW("Draw XYWH(%d,%d,%d,%d) Visible=%d", m_rect.Left(), m_rect.Top(), m_rect.Width(), m_rect.Height(), bVisible); + + if (m_deco == IVUG_DECO_NONE) + { + MSG_LOW("No need to draw. Deco is NONE"); + return ; + } + + if (m_rect.Width() == 0 || m_rect.Height() == 0 ) + { + MSG_WARN("No need to draw"); + return ; + } + + if (bVisible == false ) + { + MSG_WARN("Decolayer visible is false"); + return; + } + +// smart_member_add()�� _del() �� ȭ�� blinking �� ������ �� ��. + if (m_deco == IVUG_DECO_SOUNDPIC ) + { + if (m_ico_soundpic == NULL) + { +// m_ico_soundpic = load_icon(ICON_EDJ_PATH, "icon.sound_scene"); + + iv::CButton *pBtn = iv::CButton::ObjectFactory( GetObject()); + + pBtn->SetImage( + load_icon(ICON_EDJ_PATH, "icon.sound_scene"), + load_icon(ICON_EDJ_PATH, "icon.sound_scene.press"), + load_icon(ICON_EDJ_PATH, NULL) + ); + + m_ico_soundpic = pBtn->GetObject(); + + evas_object_name_set(m_ico_soundpic, "IconSound"); + evas_object_smart_member_add(m_ico_soundpic, GetObject()); + } + + int x, y; + + x = std::max(m_rect.Left(), 0) + IMG_MARGIN; + y = std::max(m_rect.Top(), TOP_OFFSET) + IMG_MARGIN; + + MSG_MED("Draw Sound XY(%d,%d)", x, y); + evas_object_resize(m_ico_soundpic, icon_w, icon_h); + evas_object_move(m_ico_soundpic, x, y); + + if (bVisible == true ) + { + evas_object_show(m_ico_soundpic); + } + } + + if (m_deco == IVUG_DECO_BURST) + { + if (m_ico_burstplay == NULL) + { +// m_ico_burstplay = load_icon(ICON_EDJ_PATH, "icon.burst"); + + iv::CButton *pBtn = iv::CButton::ObjectFactory( GetObject()); + + pBtn->SetImage( + load_icon(ICON_EDJ_PATH, "icon.burst"), + load_icon(ICON_EDJ_PATH, "icon.burst.press"), + load_icon(ICON_EDJ_PATH, "icon.burst.dim") + ); + + m_ico_burstplay = pBtn->GetObject(); + + evas_object_name_set(m_ico_burstplay, "IconBurstPlay"); + evas_object_smart_member_add(m_ico_burstplay, GetObject()); + } + + if (m_ico_burstspeed == NULL) + { +// m_ico_burstspeed = load_icon(ICON_EDJ_PATH, "icon.burstspeed.1.5th"); + + iv::CButton *pBtn = iv::CButton::ObjectFactory( GetObject()); + + pBtn->SetImage( + load_icon(ICON_EDJ_PATH, szPlaySpeedIcon[((int)m_speed -1) * 2] ), + load_icon(ICON_EDJ_PATH, szPlaySpeedIcon[((int)m_speed -1) * 2 + 1]), + NULL + ); + + m_ico_burstspeed = pBtn->GetObject(); + + evas_object_name_set(m_ico_burstspeed, "IconBurstSpeed"); + evas_object_smart_member_add(m_ico_burstspeed, GetObject()); + } + + int x, y; + + x = std::min ( (std::max(m_rect.Left(), 0) + IMG_MARGIN), m_rect.Right() - (IMG_MARGIN + icon_w + IMG_MARGIN + icon_w + IMG_MARGIN) ); + y = std::max(m_rect.Top(), TOP_OFFSET) + IMG_MARGIN; + + MSG_MED("Draw Burst Play XY(%d,%d)", x, y); + evas_object_resize(m_ico_burstplay, icon_w, icon_h); + evas_object_move(m_ico_burstplay, x, y); + + MSG_MED("Draw Burst Speed XY(%d,%d)", m_rect.Left() + IMG_MARGIN, m_rect.Top() + IMG_MARGIN + TOP_OFFSET); + evas_object_resize(m_ico_burstspeed, icon_w, icon_h); + evas_object_move(m_ico_burstspeed, x + icon_w + IMG_MARGIN, y); + + if (bVisible == true ) + { + evas_object_show(m_ico_burstplay); + evas_object_show(m_ico_burstspeed); + } + } + }; + + virtual void remove() { + MSG_HIGH("Remove Decolayer(0x%08x)", this); + + if (m_timer ) + { + ecore_timer_del(m_timer); + m_timer = NULL; + } + + if (m_ico_soundpic ) + { + evas_object_smart_member_del(m_ico_soundpic); + evas_object_del(m_ico_soundpic); + m_ico_soundpic = NULL; + } + + if (m_ico_play ) + { + evas_object_smart_member_del(m_ico_play); + evas_object_del(m_ico_play); + m_ico_play = NULL; + } + + if (m_ico_burstplay ) + { + evas_object_smart_member_del(m_ico_burstplay); + evas_object_del(m_ico_burstplay); + m_ico_burstplay = NULL; + } + + if (m_ico_burstspeed ) + { + evas_object_smart_member_del(m_ico_burstspeed); + evas_object_del(m_ico_burstspeed); + m_ico_burstspeed = NULL; + } + + if (m_event ) + { + evas_object_del(m_event); + m_event = NULL; + } + + delete this; + }; + + virtual void show() + { + MSG_MED("Show!"); + + bVisible = true; + } + + virtual void hide() + { + MSG_MED("Hide!"); + + bVisible = false; + + if (m_ico_soundpic ) + { + evas_object_hide(m_ico_soundpic); + } + + if (m_ico_burstplay) + { + evas_object_hide(m_ico_burstplay); + } + + if (m_ico_burstspeed ) + { + evas_object_hide(m_ico_burstspeed); + } + + + } + + virtual void move(int x, int y) { + CEvasSmartObject::move(x, y); + + MSG_LOW("Moved XY(%d,%d)", x, y); + + if (m_event ) + { + evas_object_move(m_event, x, y); + } + evas_object_smart_changed(GetObject()); + + }; + + virtual void resize(int w, int h) { + CEvasSmartObject::resize(w, h); + + MSG_LOW("Resized WH(%d,%d)", w, h); + + if (m_event ) + { + evas_object_resize(m_event, w, h); + } + + evas_object_smart_changed(GetObject()); + + }; + +private: + + void OnTimer() { + if (m_ico_soundpic == NULL) + { + return; + } + + if (bVisible == true ) + { + if (evas_object_visible_get(m_ico_soundpic) == false ) + { + evas_object_show(m_ico_soundpic); + } + else + { + evas_object_hide(m_ico_soundpic); + } + } + } + + Evas_Object *load_icon(const char *edj_file, const char *part) + { + Evas_Object *icon; + + icon = EFL::create_icon(GetObject(), edj_file, part); + + if (icon == NULL) + { + MSG_ERROR("Cannot load icon : %s,%s", edj_file, part); + return NULL; + } + + int iw, ih; + elm_image_object_size_get(icon, &iw, &ih); + + MSG_MED("Icon(%s,%s) Size WH(%d,%d)", edj_file, part, iw, ih); + + return icon; + } +private: + int icon_w; + int icon_h; + + bool bVisible; + + Evas_Object *m_event; + + Evas_Object *m_ico_soundpic; + Evas_Object *m_ico_play; + + Evas_Object *m_ico_burstplay; + Evas_Object *m_ico_burstspeed; + + Ecore_Timer *m_timer; + Ivug_Deco m_deco; + + eConfigPlaySpeed m_speed; +}; + + +template<> +const Evas_Smart_Cb_Description CEvasSmartObject::_signals[] = { + {"start,blink", ""}, + {"stop,blink", ""}, + {NULL, NULL} +}; + + +#define DECO_CLASS(obj) \ + static_cast(evas_object_data_get((obj), "CDecolayer")) + + +IVAPI Evas_Object *ivug_decolayer_add(Evas_Object *parent) +{ + CDecolayer *klass = new CDecolayer; + + Evas_Object *obj = klass->CreateObject(parent); + MSG_ASSERT(obj != NULL); + + evas_object_data_set(obj, "CDecolayer", klass); + + MSG_HIGH("Create decolayer object. class=0x%08x obj=0x%08x", klass, obj); + return obj; +} + +IVAPI void ivug_decolayer_set_type(Evas_Object *obj, Ivug_Deco deco) +{ + CDecolayer *klass = DECO_CLASS(obj); + MSG_ASSERT(klass != NULL); + + klass->SetType(deco); +} + +IVAPI void ivug_decolayer_start_blinking(Evas_Object *obj) +{ + CDecolayer *klass = DECO_CLASS(obj); + MSG_ASSERT(klass != NULL); + + klass->StartBlink(); +} + +IVAPI void ivug_decolayer_stop_blinking(Evas_Object *obj) +{ + CDecolayer *klass = DECO_CLASS(obj); + MSG_ASSERT(klass != NULL); + + klass->StopBlink(); +} + +IVAPI bool ivug_decolayer_check_video_icon(Evas_Object *obj, int cx, int cy) +{ + CDecolayer *klass = DECO_CLASS(obj); + MSG_ASSERT(klass != NULL); + + return klass->CheckVIcon(cx, cy); +} + + +IVAPI bool ivug_decolayer_check_sound_icon(Evas_Object *obj, int cx, int cy) +{ + CDecolayer *klass = DECO_CLASS(obj); + MSG_ASSERT(klass != NULL); + + return klass->CheckSoundIcon(cx, cy); +} + +IVAPI ivug_deco_icon_e ivug_decolayer_check_icon(Evas_Object *obj, int cx, int cy) +{ + CDecolayer *klass = DECO_CLASS(obj); + MSG_ASSERT(klass != NULL); + + return klass->CheckIcon(cx, cy); +} + +IVAPI void ivug_decolayer_update_icon(Evas_Object *obj) +{ + CDecolayer *klass = DECO_CLASS(obj); + MSG_ASSERT(klass != NULL); + +// Force update + klass->UpdateIcon(); +} + +IVAPI void ivug_decolayer_hide_play_icon(Evas_Object *obj) +{ + CDecolayer *klass = DECO_CLASS(obj); + MSG_ASSERT(klass != NULL); + klass->hide_icon_play(); +} diff --git a/main/src/decolayer/ivug-decolayer.h b/main/src/decolayer/ivug-decolayer.h new file mode 100755 index 0000000..803cc29 --- /dev/null +++ b/main/src/decolayer/ivug-decolayer.h @@ -0,0 +1,77 @@ +/* +* Copyright (c) 2000-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 __DECOLAYER_H__ +#define __DECOLAYER_H__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +typedef enum { + IVUG_DECO_NONE = 0, + IVUG_DECO_BESTPIC = (1 << 0), + IVUG_DECO_PANORAMA = (1 << 1), + IVUG_DECO_SOUNDPIC = (1 << 2), + IVUG_DECO_BURST = (1 << 3), + IVUG_DECO_VIDEO = (1 << 4), +} Ivug_Deco; + +typedef enum { + IVUG_DECO_ICON_NONE, + IVUG_DECO_ICON_VIDEO, + IVUG_DECO_ICON_SOUNDPIC, + IVUG_DECO_ICON_BURST_PLAYSPEED, + IVUG_DECO_ICON_BURST_PLAY, +} ivug_deco_icon_e; + +/* + {"start,blink", ""}, + {"stop,blink", ""}, + {"clicked,icon", ""}, +*/ +Evas_Object *ivug_decolayer_add(Evas_Object *parent); + +void ivug_decolayer_set_type(Evas_Object *obj, Ivug_Deco deco); + +void ivug_decolayer_start_blinking(Evas_Object *obj); + +void ivug_decolayer_stop_blinking(Evas_Object *obj); + +#ifdef DEPRECATED +bool ivug_decolayer_check_video_icon(Evas_Object *obj, int cx, int cy); + +bool ivug_decolayer_check_sound_icon(Evas_Object *obj, int cx, int cy); +#endif // DEPRECATED + +ivug_deco_icon_e ivug_decolayer_check_icon(Evas_Object *obj, int cx, int cy); + + +void ivug_decolayer_update_icon(Evas_Object *obj); + +void ivug_decolayer_hide_play_icon(Evas_Object *obj); + +#ifdef __cplusplus +} +#endif + +#endif // __IVUG_BESTPIC_H__ + + diff --git a/main/src/include/ivug-base.h b/main/src/include/ivug-base.h new file mode 100755 index 0000000..7a5ff05 --- /dev/null +++ b/main/src/include/ivug-base.h @@ -0,0 +1,71 @@ +/* +* Copyright (c) 2000-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 __IVUG_BASE_H__ +#define __IVUG_BASE_H__ + +#include +#include + +typedef struct _ug_data ug_data; + + +#ifdef __cplusplus +extern "C" { +#endif + +ug_data *AllocUGData(); +void FreeUGData(ug_data *ug); + + +void *on_create(ui_gadget_h ug, enum ug_mode mode, app_control_h service, void *priv); + +void on_start(ui_gadget_h ug, app_control_h service, void *priv); + +void on_pause(ui_gadget_h ug, app_control_h service, void *priv); + +void on_resume(ui_gadget_h ug, app_control_h service, void *priv); + + +/* + +*/ +void on_message(ui_gadget_h ug, app_control_h msg, app_control_h service, void *priv); + +/* + +*/ +void on_event(ui_gadget_h ug, enum ug_event event, app_control_h service, void *priv); + +/* + +*/ +void on_destroying(ui_gadget_h ug, app_control_h service, void *priv); + + +/* + +*/ +void on_destroy(ui_gadget_h ug, app_control_h service, void *priv); + + +#ifdef __cplusplus +} +#endif + +#endif //__IVUG_BASE_H__ + diff --git a/main/src/include/ivug-buddy-view.h b/main/src/include/ivug-buddy-view.h new file mode 100755 index 0000000..7367ba1 --- /dev/null +++ b/main/src/include/ivug-buddy-view.h @@ -0,0 +1,72 @@ +/* +* Copyright (c) 2000-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 __IVUG_BUDDY_VIEW_H__ +#define __IVUG_BUDDY_VIEW_H__ + +#include + + +/* SIGNAL + "destroyed" + "clicked" +*/ + +typedef enum { + IVUG_BUDDY_NORMAL, // launched from mainview + IVUG_BUDDY_UG, // ug mode + IVUG_BUDDY_APPSVC // appsvc mode +} ivug_buddy_mode; + +typedef struct _Ivug_BuddyView{ + Evas_Object *parent; + Evas_Object *layout; + + Elm_Object_Item *btn_send; + + Evas_Object *event_obj; + Evas_Object *gesture; + + Evas_Object *photocam; + + Evas_Object *navi_bar; + Elm_Object_Item *navi_it; + + char* filepath; + char* mediaID; + + ivug_buddy_mode mode; + + bool bShowMenu; +}Ivug_BuddyView; + +#ifdef __cplusplus +extern "C" { +#endif + +Ivug_BuddyView * ivug_buddy_view_create(Evas_Object *parent); +bool ivug_buddy_view_destroy(Ivug_BuddyView *pBuddyView); +Evas_Object * ivug_buddy_view_get_layout(Ivug_BuddyView *pBuddyView); +void ivug_buddy_view_create_menu(Ivug_BuddyView *pBuddyView, Evas_Object *navi_bar); +bool ivug_buddy_view_load_file(Ivug_BuddyView *pBuddyView, const char *filepath, const char *mediaID); + +#ifdef __cplusplus +} +#endif + +#endif //__IVUG_BUDDY_VIEW_H__ + diff --git a/main/src/include/ivug-common.h b/main/src/include/ivug-common.h index db8a00b..f173a9a 100755 --- a/main/src/include/ivug-common.h +++ b/main/src/include/ivug-common.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_COMMON_H__ #define __IVUG_COMMON_H__ @@ -28,6 +29,7 @@ #include "ivug-debug.h" #include "ivug-string.h" #include "ivug-util.h" +#include "ivug-file-util.h" #include "ivug-define.h" #include "ivug-config.h" #include "ivug-widget.h" @@ -53,8 +55,6 @@ Definition "PREFIX" is declared in CMakelist.txt */ -#define USE_WIN_AS_PARENT - #define NAVI_OPTION_BTN_STYLE "naviframe/title/default"//"multiline" #define WHITE_THEME @@ -71,13 +71,16 @@ Definition "PREFIX" is declared in CMakelist.txt #define DEFAULT_DOWNLOADS_FOLDER "/opt/usr/media/Downloads" #endif +#define DEFAULT_IMAGE_FOLDER "/opt/usr/media/Images" +#define DEFAULT_THUMBNAIL "/opt/usr/share/media/.thumb/thumb_default.png" + #define PATH_SDCARD "/opt/storage/sdcard/" #define _EDJ(o) elm_layout_edje_get(o) #define IVUG_WEB_DOWNLOAD_TEMP_DIR DATA_PATH -#define MENUBAR_TIMEOUT_SEC (5.0f) // 5sec +#define MENUBAR_TIMEOUT_SEC (2.0f) /* Final image path diff --git a/main/src/include/ivug-crop-view.h b/main/src/include/ivug-crop-view.h old mode 100755 new mode 100644 index a4a8fb6..607b231 --- a/main/src/include/ivug-crop-view.h +++ b/main/src/include/ivug-crop-view.h @@ -1,24 +1,38 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_CROP_VIEW_H__ #define __IVUG_CROP_VIEW_H__ #include "ivug-define.h" +typedef enum { + IVUG_SETAS_NORMAL, // launched from mainview + IVUG_SETAS_UG, // ug mode + IVUG_SETAS_APPSVC, // appsvc mode +} ivug_setas_mode; + +typedef enum { + IVUG_CTRLBAR_SET_SCREEN_HOME, + IVUG_CTRLBAR_SET_SCREEN_LOCK, + IVUG_CTRLBAR_SET_SCREEN_BOTH, + IVUG_CTRLBAR_SET_SCREEN_UNDEFINED, // Show select popup when click ok button. + IVUG_CTRLBAR_SET_SCREEN_MAX +} ivug_set_screen_type; typedef enum { CROP_ERROR_TYPE_NONE, @@ -26,12 +40,16 @@ typedef enum { CROP_ERROR_TYPE_PERMISSION_DENIED, CROP_ERROR_TYPE_INVALID_FILE, CROP_ERROR_TYPE_GENERAL, + CROP_ERROR_TYPE_TOO_SMALL, + CROP_ERROR_TYPE_MAX } Crop_Error; typedef struct { Evas_Object *layout; Evas_Object *notify; + Evas_Object *toolbar; + Evas_Object *photocam; Evas_Object *cropbox; @@ -41,29 +59,47 @@ typedef struct { Evas_Object *contents_area; Evas_Object *notify_area; - Evas_Object *btn_ok; - bool bShowMenu; + Elm_Object_Item *btn_ok; + + Evas_Object *popup; + + bool bUseRotate; char *file_path; char *result_path; char *dest_dir; char *dest_name; + int init_x; + int init_y; + int init_w; + int init_h; + int w; int h; - int prev_x; - int prev_y; - int prev_w; - int prev_h; + struct { // Previous image rect position. used by lcd rotate + int x; + int y; + int w; + int h; + } prev; + + int min_size; - Ecore_Timer *box_timer; +// When bTransEnd & bLoaded is all true, then rectagle is displaying + bool bTransEnd; // Transition is ended + bool bLoaded; // Image is loaded. - int PrevRotate; + bool bFixedRatio; + bool bUseRatio; + double ratio; } IvugCropView; /* + Used for cropping images. view does not find face info. this is different from setas view. + signals "loaded" with error code "ok,clicked" - Button "OK" clicked with filepath @@ -71,32 +107,5 @@ typedef struct { "destroyed" */ -#ifdef __cplusplus -extern "C" { -#endif - -/* this api is for trasition */ -void _ivug_crop_view_box_delete(IvugCropView *pCropView); - -IvugCropView *ivug_crop_view_create(Evas_Object *parent); - -bool ivug_crop_view_box_size_set(IvugCropView *pCropView, int w, int h); - -bool ivug_crop_view_box_ratio_fix(IvugCropView *pCropView, bool bFix); - -bool ivug_crop_view_file_set(IvugCropView *pCropView, const char *file); - -bool ivug_crop_view_destination_set(IvugCropView *pCropView, const char *dir, const char *name); - -void ivug_crop_view_destroy(IvugCropView *pCropView); - -Evas_Object *ivug_crop_view_get_object(IvugCropView *pCropView); - -void ivug_crop_view_create_menu(IvugCropView *pCropView, Evas_Object *navi_bar); - -#ifdef __cplusplus -} -#endif - #endif // __IVUG_CROP_VIEW_H__ diff --git a/main/src/include/ivug-details-view.h b/main/src/include/ivug-details-view.h deleted file mode 100755 index 9fd7e4a..0000000 --- a/main/src/include/ivug-details-view.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 __DETAILS_VIEW_H__ -#define __DETAILS_VIEW_H__ - -#include -#include "ivug-datatypes.h" -#include "ivug-media.h" -#include "ivug-medialist.h" -#include "ivug-name-view.h" - -#include "ivug-detail-info.h" - -/* - "renamed" -*/ - -typedef struct { - Evas_Object *parent; - Evas_Object *bg; - - Evas_Object *layout; - Evas *evas; - Evas_Object *genlist; - -/* - |---------------| - | naviframe | - |---------------| - | | - | genlist | - | | - |---------------| -*/ - -/* Genlist class */ - Elm_Genlist_Item_Class itc; - Elm_Genlist_Item_Class title_itc; - Elm_Genlist_Item_Class multiline_icon_itc; - Elm_Genlist_Item_Class multiline_itc; - - char **filename; //for rename - char **path; //for rename - - Ivug_NameView *pNameView; - Media_Item *mitem; -} Ivug_DetailsView; - -#ifdef __cplusplus -extern "C" { -#endif - -Ivug_DetailsView *ivug_details_view_screen_create(Evas_Object *parent, Media_Item *mitem, ivug_view_by view_by); - -void ivug_details_view_destroy(Ivug_DetailsView *pDetailsView); - -Evas_Object *ivug_details_view_object_get(Ivug_DetailsView *pDetailsView); - -void ivug_details_view_update(Ivug_DetailsView *pDetailsView, const char *new_path); - -#ifdef __cplusplus -} -#endif - - -#endif // __DETAILS_VIEW_H__ - - diff --git a/main/src/include/ivug-ext-ug.h b/main/src/include/ivug-ext-ug.h new file mode 100755 index 0000000..1b0b5ff --- /dev/null +++ b/main/src/include/ivug-ext-ug.h @@ -0,0 +1,119 @@ +/* +* Copyright (c) 2000-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 __IVUG_EXT_UG_H__ +#define __IVUG_EXT_UG_H__ + +#include +#include + +#include "ivug-define.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef void (*ug_destroy_cb)(ui_gadget_h ug, void *data); +typedef void (*ug_result_cb)(ui_gadget_h ug, app_control_h service, void *data); +typedef void (*ug_end_cb)(ui_gadget_h ug, void *data); + +#define OPERATION_NAME_CALL "http://tizen.org/appcontrol/operation/call" + +/* + Launch extern module. +*/ +bool ivug_ext_launch_videoplayer_simple(const char *filepath); +bool ivug_ext_launch_videoplayer(const char *uri); + +ui_gadget_h ivug_ext_launch_contact(const char *uri, ug_destroy_cb func, void *data); + +#ifdef USE_EXT_SLIDESHOW +ui_gadget_h ivug_ext_launch_select_music(ug_result_cb result_func, ug_destroy_cb destroy_func, void *data); +#endif +bool ivug_ext_launch_videoeditor(const char *uri, app_control_reply_cb callback, void *data); + +bool ivug_ext_launch_browser(const char *uri); + +bool ivug_ext_launch_facebook(const char *uri); + +bool ivug_ext_launch_print(const char *uri); + +#ifdef IV_EXTENDED_FEATURES +app_control_h ivug_ext_launch_image_editor(const char *uri, app_control_reply_cb callback, void *data); + +bool ivug_ext_launch_default(const char *uri, const char *operation, const char *pkg, const char *mime, void *data); +#endif + + +/* + Actually, each sns pkg needs different parameter. so hard-coding cannot be removed. +*/ +#ifdef IV_EXTENDED_FEATURES +bool ivug_ext_launch_sns(const char *pkgname, const char *uri); +#endif +ui_gadget_h ivug_ext_launch_wifi_file_transfer(const char *uri, ug_destroy_cb func, void *data); +ui_gadget_h ivug_ext_launch_bluetooth_print(const char *uri, ug_destroy_cb func, void *data); +ui_gadget_h ivug_ext_launch_bluetooth_send(const char *uri, ug_destroy_cb func, void *data); + + +ui_gadget_h ivug_ext_launch_message(const char *uri, ug_destroy_cb func, void *data); +ui_gadget_h ivug_ext_launch_s_note(const char *uri, ug_destroy_cb func, void *data); + +#ifdef IV_EXTENDED_FEATURES +bool ivug_ext_launch_email(const char *uri); +#endif + +bool ivug_ext_launch_nfc(const char *uri, void *data); + + +/* + Below functions are not used at Now, but should be needed soon. +*/ +bool ivug_ext_launch_picasa(const char *uri); + +bool ivug_ext_launch_twitter(const char *uri); + +/* + Below functions are for gallery setting efl and select picture ug +*/ +bool ivug_ext_launch_setting_gallery(ug_result_cb resultcb,ug_destroy_cb destorycb, ug_end_cb endcb, void *data); + +//ivug_ext_launch_select_image serviceHandle create and destroy have to be outside +bool ivug_ext_launch_select_image(app_control_h serviceHandle, ug_result_cb resultcb, ug_destroy_cb destorycb, void *data); + + +/* + Start mira cast ug. +*/ +#ifdef IV_EXTENDED_FEATURES +bool ivug_ext_launch_allshare_cast(const char *szMacAddr, void *pUserData); + + +bool ivug_ext_launch_map(double latitude, double longitude, void *pUserData); + +bool ivug_ext_launch_map_direction(double d_latitude, double d_longitude, void *pUserData); + +bool ivug_ext_launch_share_text(const char *text); +#endif +bool ivug_ext_launch_slideshow(const char *path, int index); + +#ifdef __cplusplus +} +#endif + +#endif //__IVUG_EXT_UG_H__ + diff --git a/main/src/include/ivug-main-view.h b/main/src/include/ivug-main-view.h index 1f4e06a..26d242b 100755 --- a/main/src/include/ivug-main-view.h +++ b/main/src/include/ivug-main-view.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_MAIN_VIEWER_H__ #define __IVUG_MAIN_VIEWER_H__ @@ -20,34 +21,22 @@ #include "ivug-common.h" #include "ivug-parameter.h" #include "ivug-medialist.h" - -#include "ivug-name-view.h" -#include "ivug-details-view.h" -#include "ivug-setas-view.h" -#include "ivug-crop-view.h" +#include "ivug-base.h" #define MAX_CTRL_ITEM_CNT 5 -#define MAX_NAVI_ITEM_CNT 3 - -//navigation bar type -typedef enum { - NAVI_BAR_TYPE_NONE = 0x00, - NAVI_BAR_TYPE_EMPTY, // no control bar - NAVI_BAR_TYPE_IMAGE, // [Edit, Set, Info] default - NAVI_BAR_TYPE_FILE, // [Set, Info] default - NAVI_BAR_TYPE_VIDEO, // [Trim, Set, Info] default - NAVI_BAR_TYPE_SELECT, // [Ok, Cancel] from take photo -} ivug_toolbar; //control bar type typedef enum { - CTRL_BAR_TYPE_NONE = 0x00, + CTRL_BAR_TYPE_UNDEFINED = 0x00, + + CTRL_BAR_TYPE_NONE, CTRL_BAR_TYPE_EMPTY, // not exist ctrl bar - CTRL_BAR_TYPE_FILE, // [Delete,Share,Set,Info] file manager, video at gallery - CTRL_BAR_TYPE_READ_ONLY, // [Share, Set, Save, Info] - CTRL_BAR_TYPE_IMAGE, // [Delete,Share, Add tag, Slide show, Editor] from gallery - CTRL_BAR_TYPE_VIDEO, // [Delete,Share, Add tag, Slide show, Trim] from gallery + CTRL_BAR_TYPE_SAVE, // [save] + CTRL_BAR_TYPE_FILE, // [more,share,del] + CTRL_BAR_TYPE_READ_ONLY, // [more,down] web image + CTRL_BAR_TYPE_ALLSHARE, // [more,down] allshare image + CTRL_BAR_TYPE_MAX } ivug_ctrlbar; typedef enum { @@ -86,14 +75,18 @@ typedef struct { Elm_Object_Item *item; // Control bar item in navigation header. ex) SetAs, Favorite, Info TooButtonPos pos; } ControlBar_Item; +enum +{ + PHOTOCAM_0 = 0, + PHOTOCAM_1 , + PHOTOCAM_2 , +}; typedef struct _SlideShow SlideShow; typedef struct _Ivug_MainView Ivug_MainView; -#undef FIX_LAST_BLINK - #ifdef __cplusplus extern "C" { #endif @@ -102,12 +95,14 @@ extern "C" { Create MainView layout */ Ivug_MainView * -ivug_main_view_create(Evas_Object* parent, ivug_mode mode, ivug_view_by view_by); +ivug_main_view_create(Evas_Object* parent, ivug_parameter *param); Evas_Object * ivug_main_view_object_get(Ivug_MainView *pMainView); +int ivug_add_reg_idler(Ivug_MainView *pMainView); + +void ivug_main_view_start(Ivug_MainView *pMainView, app_control_h service); -void ivug_main_view_start(Ivug_MainView *pMainView); /* Load media list from parameter. @@ -125,6 +120,15 @@ void ivug_main_view_pause(Ivug_MainView *pMainView); void ivug_main_view_destroy(Ivug_MainView *pMainView); +void ivug_main_view_reload(Ivug_MainView *pMainView); + +void _update_main_view(Ivug_MainView *pMainView); + +/* + Enable/Disable Test mode. + When test mode, application is termiated by pressing back-key +*/ +void ivug_main_view_set_testmode(Ivug_MainView *pMainView, bool bTestMode); /* Control GUI @@ -132,10 +136,18 @@ void ivug_main_view_destroy(Ivug_MainView *pMainView); void ivug_main_view_show_menu_bar(Ivug_MainView *pMainView); void ivug_main_view_hide_menu_bar(Ivug_MainView *pMainView); -void ivug_main_view_set_hide_timer(Ivug_MainView *pMainView); -void ivug_main_view_del_hide_timer(Ivug_MainView *pMainView); -void _ivug_main_on_mmc_state_changed(keynode_t* node, void *data); +void _ivug_main_view_del_hide_timer(Ivug_MainView *pMainView, const char *func, int line); + +#define ivug_main_view_del_hide_timer(pMainView) _ivug_main_view_del_hide_timer(pMainView, __FUNCTION__, __LINE__) + + +void _ivug_main_view_set_hide_timer(Ivug_MainView *pMainView, const char *func, int line); + +#define ivug_main_view_set_hide_timer(pMainView) _ivug_main_view_set_hide_timer(pMainView, __FUNCTION__, __LINE__) + + +void _ivug_main_on_mmc_state_changed(void *data); #ifdef __cplusplus } diff --git a/main/src/include/ivug-name-view.h b/main/src/include/ivug-name-view.h index 2c780f1..ae28680 100755 --- a/main/src/include/ivug-name-view.h +++ b/main/src/include/ivug-name-view.h @@ -1,63 +1,58 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_NAME_VIEW_H__ #define __IVUG_NAME_VIEW_H__ #include "ivug-common.h" -#include "ivug-media.h" +#include "ivug-vibration.h" typedef enum { NAME_VIEW_RESPONSE_OK, NAME_VIEW_RESPONSE_CANCEL, } ivug_name_response; -typedef void (*FNResponse)(ivug_name_response resp, const char *string, void *pClientData); -typedef struct _Ivug_NameView -{ - Evas_Object *bg; - Evas_Object *layout; - Evas_Object *content; - - Evas_Object *navibar; - - Evas_Object *editfield; - Evas_Object *entry; - Evas_Object *btn_done; +typedef enum { + NAME_VIEW_MODE_SINGLE_LINE, + NAME_VIEW_MODE_MULTI_LINE, +} ivug_name_mode; - bool sip_show; +typedef struct _Ivug_NameView Ivug_NameView; - FNResponse fnresponse; - void *clientdata; -} Ivug_NameView; +typedef void (*FNResponse)(Ivug_NameView *pView, ivug_name_response resp, const char *string, void *pClientData); #ifdef __cplusplus extern "C" { #endif Ivug_NameView * -ivug_name_view_create(Evas_Object *parent, const char *title); +ivug_name_view_create(Evas_Object *parent, ivug_name_mode mode); + void ivug_name_view_set_title(Ivug_NameView *pNameView, const char *title); +/* + Set initial string for editfield +*/ void -ivug_name_view_set_entry(Ivug_NameView *pNameView, const char *str); +ivug_name_view_set_text(Ivug_NameView *pNameView, const char *str); void ivug_name_view_set_response_callback(Ivug_NameView *pNameView, FNResponse resp, void *data); @@ -74,6 +69,22 @@ ivug_name_view_set_focus(Ivug_NameView *pNameView); void ivug_name_view_set_max_length(Ivug_NameView *pNameView, int max_len); +void +ivug_name_view_set_guide_text(Ivug_NameView *pNameView, const char *text_id); + +void +ivug_name_view_set_filter_text(Ivug_NameView *pNameView, const char *filter_text); + + +/* + Default is FALSE +*/ +void +ivug_name_view_allow_null_set(Ivug_NameView *pNameView, Eina_Bool bNullAllowed); + +void +ivug_name_view_show_imf(Ivug_NameView *pNameView); + #ifdef __cplusplus } #endif diff --git a/main/src/include/ivug-setas-view.h b/main/src/include/ivug-setas-view.h deleted file mode 100755 index 362508a..0000000 --- a/main/src/include/ivug-setas-view.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 __IVUG_SETAS_VIEW_H__ -#define __IVUG_SETAS_VIEW_H__ - -#include "ivug-common.h" - -typedef enum { - NOTI_SUCCESS, - NOTI_FAIL, -} TEXT_POPUP_TYPE; - -typedef enum { - IVUG_CTRLBAR_SET_SCREEN_HOME, - IVUG_CTRLBAR_SET_SCREEN_LOCK, - IVUG_CTRLBAR_SET_SCREEN_BOTH, - IVUG_CTRLBAR_SET_SCREEN_UNDEFINED, // Show select popup when click ok button. - IVUG_CTRLBAR_SET_SCREEN_CALLERID, - IVUG_CTRLBAR_SET_SCREEN_VIDEO_CALL_ID, - IVUG_CTRLBAR_SET_SCREEN_MAX -} ivug_set_screen_type; - -typedef enum { - IVUG_SETAS_NORMAL, // launched from mainview - IVUG_SETAS_UG, // ug mode - IVUG_SETAS_APPSVC, // appsvc mode - IVUG_SETAS_CROP // crop mode -} ivug_setas_mode; - -typedef enum { - SETAS_ERROR_TYPE_NONE, - SETAS_ERROR_TYPE_UNKNOWN_FORMAT, - SETAS_ERROR_TYPE_PERMISSION_DENIED, - SETAS_ERROR_TYPE_INVALID_FILE, - SETAS_ERROR_TYPE_GENERAL, -} SetAs_Error; - -typedef struct { - Evas_Object *ly_effect; // Layout for transition effect - - Evas_Object *content; // content - Evas_Object *genlist_popup; - - char *filename; - - ivug_setas_mode Mode; - ivug_set_screen_type Type; - - bool bInitFace; -} Ivug_SetAsView; - -#ifdef __cplusplus -extern "C" { -#endif - -Ivug_SetAsView * -ivug_setas_view_callerid_ug_create(Evas_Object *parent, const char* filepath, ivug_setas_mode mode, int output_width, int output_height); - -Ivug_SetAsView * -ivug_setas_view_video_call_id_ug_create(Evas_Object *parent, const char* filepath, ivug_setas_mode mode, int output_width, int output_height); - -void -ivug_setas_view_destroy(Ivug_SetAsView *pSetAsView); - -Evas_Object * -ivug_setas_view_object_get(Ivug_SetAsView *pSetAsView); - -// Called by main_view -Ivug_SetAsView * -ivug_setas_view_screen_create(Evas_Object *parent, ivug_setas_mode mode, ivug_set_screen_type screen_type); - -void ivug_setas_view_create_menu(Ivug_SetAsView *pSetAsView, Evas_Object *navi_bar, ivug_set_screen_type type); - -void ivug_setas_view_load_file(Ivug_SetAsView *pSetAsView, const char* filepath, ivug_set_screen_type type); - -#ifdef __cplusplus -} -#endif - - -#endif //__IVUG_SETAS_VIEW_H__ diff --git a/main/src/include/ivug-slider-item.h b/main/src/include/ivug-slider-item.h deleted file mode 100755 index 913786d..0000000 --- a/main/src/include/ivug-slider-item.h +++ /dev/null @@ -1,181 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ - -#pragma once - -#include "ivug-common.h" -#include "ivug-medialist.h" -#include "ivug-slider.h" - - -typedef struct _Slide_Item Slide_Item; - -typedef void (*OnSliderStateChanged)(slide_state_t state, Slide_Item *si, void *client_data); - -typedef enum -{ - SITEM_TYPE_UNKNOWN, - SITEM_TYPE_IMAGE, - SITEM_TYPE_VIDEO, -} sitem_type_t; - -struct _Slide_Item { - int x, y, w, h; // Object geometry -//Data - slide_state_t state; - sitem_type_t type; - - Media_Item *mitem; - -//flag - Eina_Bool thumbnail_show; - -// UI - Evas_Object* layout; - Evas_Object* thumbnail; // thumbnail - - Evas_Object* vIcon; //video play icon - - Evas_Object* photocam; // photocam - - Evas_Object* progress; //progress bar for download. - -// Callback - bool bMenuVisible; - OnSliderStateChanged cb; - void *client_data; - - drm_handle_t drm_handle; -}; - -#ifdef __cplusplus -extern "C" { -#endif - -// GUI related -Slide_Item* -ivug_slider_item_add(Evas_Object *slider); - -void -ivug_slider_item_del(Slide_Item *si); - -// Geometry -void -ivug_slider_item_hide(Slide_Item *si); - -void -ivug_slider_item_show(Slide_Item *si); - -void -ivug_slider_item_move(Slide_Item *si, int x, int y); - -void -ivug_slider_item_resize(Slide_Item *si, int w, int h); - -void -ivug_slider_item_clip_set(Slide_Item *si, Evas_Object *clipper); - -void -ivug_slider_item_clip_unset(Slide_Item *si); - - -// Callback -bool -ivug_slider_item_set_callback(Slide_Item* si, OnSliderStateChanged cb, void *data); - - -// Data -const Media_Item * -ivug_slider_item_data_get(Slide_Item *si); - -/* - When item is NULL, Data is cleared -*/ -bool -ivug_slider_item_data_set(Slide_Item *si, Media_Item *item); - -bool -ivug_slider_item_icon_click_check(Slide_Item *si, int x, int y); - -drm_data_t * -ivug_slider_item_check_drm_constraint(Slide_Item *si); - - -// Item state -bool -ivug_slider_item_load(Slide_Item *si); - -void -ivug_slider_item_play(Slide_Item* si); - -void -ivug_slider_item_pause(Slide_Item* si); // --> Hide - -void -ivug_slider_item_resume(Slide_Item* si); // --> Show - -void -ivug_slider_item_stop(Slide_Item* si); - -void -ivug_slider_item_video_play(Slide_Item* si); - -void -ivug_slider_item_video_pause(Slide_Item* si); - - -// Control -bool -ivug_slider_item_region_size_get(Slide_Item *si, int *x, int *y, int *w, int *h); - -void -ivug_slider_item_hold_set(Slide_Item *si, Eina_Bool hold); // Ignore mouse event - -void -ivug_slider_item_zoom_reset(Slide_Item *si, Eina_Bool bAnim, int center_x, int center_y); - -void -ivug_slider_item_zoom_set(Slide_Item *si, double zoom, int center_x, int center_y); - -double -ivug_slider_item_zoom_get(Slide_Item* si); - - -bool -ivug_slider_item_image_rotate_set(Slide_Item *si, int angle); - - -void -ivug_slider_item_hide_menu(Slide_Item* si); - -void -ivug_slider_item_show_menu(Slide_Item* si); - -Evas_Object * -ivug_slider_item_image_get(Slide_Item* si); - -void -ivug_slider_item_image_size_get(Slide_Item* si, int *w, int *h); - -void ivug_slider_item_reload(Slide_Item* si); - - -#ifdef __cplusplus -} -#endif - - - diff --git a/main/src/include/ivug-slider-new.h b/main/src/include/ivug-slider-new.h new file mode 100755 index 0000000..153b045 --- /dev/null +++ b/main/src/include/ivug-slider-new.h @@ -0,0 +1,144 @@ +/* +* Copyright (c) 2000-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 __IVUG_SLIDER_NEW_H__ +#define __IVUG_SLIDER_NEW_H__ + +#include "ivug-define.h" + +#include +#include "ivug-medialist.h" +#include "ivug-motion.h" + +typedef void (*callback_t)(void *handle, Media_Item *mItem, void *data); +typedef void (*location_callback_t )(void *handle, int x, int y, int w, int h, void *data); +typedef void (*status_callback_t)(void *handle, Media_Item *mItem, void *data); + +typedef enum { + LONGTAP_ENDED___, + LONGTAP_CANCELED___, +}longtap_state_new; + +typedef enum { + SLIDER_MODE_MULTIPLE, + SLIDER_MODE_SINGLE, + SLIDER_MODE_MAX +}slider_mode_e; + +typedef struct _Ivug_SliderNew Ivug_SliderNew; + +#ifdef __cplusplus +extern "C" { +#endif + +Ivug_SliderNew * ivug_slider_new_init(Evas_Object *parent, void *data); + +void ivug_slider_new_destroy(Ivug_SliderNew * slider_new); + +//do this befor ivug_slider_new_set_list +void ivug_slider_new_set_mode(Ivug_SliderNew * slider_new, slider_mode_e mode); + +slider_mode_e ivug_slider_new_get_mode(Ivug_SliderNew * slider_new); + +void ivug_slider_new_set_list(Ivug_SliderNew * slider_new, Media_List *mList,Media_Item *current); + +void ivug_slider_new_set_photocam(Ivug_SliderNew *slider_new,Evas_Object * photocam); +void ivug_slider_set_current_Photocam(Ivug_SliderNew *slider_new,int pc); +void ivug_slider_set_Photocam_moved(Ivug_SliderNew *slider_new,bool pcm); +void ivug_set_photocam_reset(Ivug_SliderNew *slider_new); +bool ivug_isphotocam_reset(Ivug_SliderNew *slider_new); +Evas_Event_Flags _zoom_start(void *data, void *event_info); +Evas_Event_Flags _zoom_move(void *data, void *event_info); +Evas_Event_Flags _zoom_end(void *data, void *event_info); +void ivug_disable_gesture(Ivug_SliderNew *slider_new); +void ivug_enable_gesture(Ivug_SliderNew *slider_new); +Evas_Event_Flags _zoom_abort(void *data, void *event_info); + +Evas_Object * ivug_slider_new_get_layout(Ivug_SliderNew *slider_new); + +Evas_Object * ivug_slider_new_get_gesture(Ivug_SliderNew *slider_new); + +bool ivug_iszoom_enabled(Ivug_SliderNew *slider_new); +bool ivug_isslide_enabled(Ivug_SliderNew *slider_new); + +void ivug_slider_new_move_item(Ivug_SliderNew *slider_new, Media_Item *item); + + +void ivug_slider_new_region_get(Ivug_SliderNew *slider_new, int *x, int *y, int *w, int *h); + +int ivug_slider_new_get_cur_index(Ivug_SliderNew *slider_new); + +void ivug_slider_new_change_view_size(Ivug_SliderNew *slider_new, int w, int h); + +void ivug_slider_new_delete_cur_image(Ivug_SliderNew *slider_new); + +void ivug_slider_call_changed_callback(Ivug_SliderNew *slider_new, Media_Item *cur_mItem); + +void ivug_slider_set_changed_callback(Ivug_SliderNew *slider_new, callback_t callback, void *data); +void ivug_slider_set_loaded_callback(Ivug_SliderNew *slider_new, callback_t callback, void *data); +void ivug_slider_set_location_callback(Ivug_SliderNew *slider_new, location_callback_t callback, void *data); + +void ivug_slider_new_image_size_get(Ivug_SliderNew *slider_new, int *w, int *h); + +//update current window +void ivug_slider_new_reload(Ivug_SliderNew *slider_new); + +//update whole list +void ivug_slider_new_update_list(Ivug_SliderNew *slider_new, Media_List *mList); + + +void ivug_slider_new_set_orientation(Ivug_SliderNew *slider_new, int orientation); + +int ivug_slider_new_get_orientation(Ivug_SliderNew *slider_new); + + + +void ivug_slider_new_agif_enable(Ivug_SliderNew *slider_new, bool enable); + +/* + double tab & zoom is disabled/enabled +*/ +void ivug_slider_new_mouse_enable(Ivug_SliderNew *slider_new, bool enable); + +void ivug_slider_new_rotate(Ivug_SliderNew *slider_new, int degree); + +float ivug_slider_new_get_zoom(Ivug_SliderNew *slider_new); + +bool ivug_slider_new_is_zoomed(Ivug_SliderNew *slider_new); + +void ivug_slider_new_enable_motion_pan(Ivug_SliderNew *slider_new, bool pan_state); + +void ivug_slider_update_icon_layer(Ivug_SliderNew *slider_new); + +void ivug_slider_new_hide_play_icon(Ivug_SliderNew *slider_new); + +void ivug_reset_zoom(Ivug_SliderNew *slider_new); + + +/* + Below API will be deprecated! +*/ + + + +#ifdef __cplusplus +} +#endif + + +#endif // __IVUG_SLIDER_NEW_H__ + diff --git a/main/src/include/ivug-slider.h b/main/src/include/ivug-slider.h deleted file mode 100755 index 92a1797..0000000 --- a/main/src/include/ivug-slider.h +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 __IVUG_SLIDER_H__ -#define __IVUG_SLIDER_H__ - -#include "ivug-define.h" - -#include -#include "ivug-medialist.h" -#include "ivug-drm-common.h" - -typedef enum { - SLIDE_STATE_NONE = 0x00, - SLIDE_STATE_SET, // Thumbnail is displayed. - - SLIDE_STATE_DOWNLOADING, // Web downloading. - SLIDE_STATE_DRM_CHECKING, // wait for drm popup - - SLIDE_STATE_READY, // Got original media - - SLIDE_STATE_LOADING, // Load main image or drm decryption. - SLIDE_STATE_LOADED, // Image is shown - -// Error state - SLIDE_STATE_DOWNLOAD_FAILED, // web download failed - SLIDE_STATE_NO_RIGHT, - SLIDE_STATE_ERROR, -} slide_state_t; - - -typedef enum { - SLIDE_TO_RIGHT = 0x00, - SLIDE_TO_LEFT, - SLIDE_INSTANTLY, -} slide_dir_t; - -typedef enum { - LONGTAP_ENDED, - LONGTAP_CANCELED, -} longtap_state; - -typedef enum { - CENTER_SLIDE, - NEXT_SLIDE, - PREV_SLIDE, - MAX_SLIDE, -} slide_index_t; - -/* - Slider signal list. - - "slider,clicked" : when click once - "slider,longpress,start" : when long press start on slider - "slider,longpress,end" : when long press end on slider - "slider,clicked,icon" : video icon clicked. - "slider,item,changed" : - - "slider,item,state,changed" - "slider,item,deleted" - - Object Configuration - - "conf-use-inline" : 1 for enable inline-play otherwise disabled - - -*/ - -typedef struct _Slide_Item Slide_Item; - -#ifdef __cplusplus -extern "C" { -#endif - -Evas_Object* -ivug_slider_add(Evas_Object* parent); - -void -ivug_slider_start(Evas_Object *obj); - -Eina_Bool -ivug_slider_set_medialist(Evas_Object* obj, Media_List *mList, Media_Item *current); - -void -ivug_slider_set_item(Evas_Object* obj, Media_Item *item, slide_dir_t dir); - -void -ivug_slider_set_item_to_slide(Evas_Object* obj, slide_index_t where, Media_Item *newItem); - -/* - Delete current media item -*/ -void -ivug_slider_delete_item(Evas_Object* obj); - -Slide_Item * -ivug_slider_get_sitem(Evas_Object* obj); - -Media_Item * -ivug_slider_get_item(Evas_Object* obj); - -slide_state_t -ivug_slider_get_state(Evas_Object* obj); - -/* - Go background - stop animation -*/ -void -ivug_slider_pause(Evas_Object* obj); - -/* - Go foreground - start animation -*/ -void -ivug_slider_resume(Evas_Object* obj); - -void -ivug_slider_skip(Evas_Object* obj); - -bool -ivug_slider_load(Evas_Object* obj); - -void -ivug_slider_dump_photocam(Evas_Object* obj); - -bool -ivug_slider_image_rotate(Evas_Object* obj, int angle); - -void -ivug_slider_set_menu_visibility(Evas_Object* obj, Eina_Bool bVisible); - -unsigned int -ivug_slider_zoom_level_get(Evas_Object *obj); - -void -ivug_slider_zoom_in(Evas_Object *obj); - -void -ivug_slider_zoom_out(Evas_Object *obj); - -void -ivug_slider_zoom_reset(Evas_Object *obj); - -bool -ivug_slider_reload(Evas_Object* obj); - -#ifdef __cplusplus -} -#endif - - -#endif // __IVUG_SLIDER_H__ - diff --git a/main/src/include/ivug-slideshow-view.h b/main/src/include/ivug-slideshow-view.h index caeca1e..38b8f1b 100755 --- a/main/src/include/ivug-slideshow-view.h +++ b/main/src/include/ivug-slideshow-view.h @@ -1,20 +1,19 @@ - - /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_SLIDESHOW_VIEWER_H__ #define __IVUG_SLIDESHOW_VIEWER_H__ @@ -24,6 +23,8 @@ #include "ivug-slideshow.h" +#include + typedef struct { Evas_Object *parent; @@ -31,11 +32,12 @@ typedef struct { ivug_view_by view_by; + bool bStandAlone; + // List Media_List *mList; Ecore_Event_Handler *keydown_handler; - Ecore_Idler *homekey_idler; // Slide show; Media_Item *ss_curItem; @@ -50,16 +52,6 @@ typedef struct { extern "C" { #endif - -Ivug_SlideShowView * -ivug_slideshow_view_create(Evas_Object* parent, ivug_mode mode, ivug_view_by view_by); - -Evas_Object * -ivug_slideshow_view_object_get(Ivug_SlideShowView *pSSView); - -bool -ivug_slideshow_view_set_list(Ivug_SlideShowView *pSSView, ivug_parameter *ivug_param); - void ivug_slideshow_view_start(Ivug_SlideShowView *pSSView); @@ -73,7 +65,7 @@ void ivug_slideshow_view_destroy(Ivug_SlideShowView *pSSView); void -_ivug_slideshow_view_on_mmc_state_changed(keynode_t* node, void *data); +_ivug_slideshow_view_on_mmc_state_changed(void *data); #ifdef __cplusplus } diff --git a/main/src/include/ivug-smart-event-box.h b/main/src/include/ivug-smart-event-box.h new file mode 100755 index 0000000..a5edce1 --- /dev/null +++ b/main/src/include/ivug-smart-event-box.h @@ -0,0 +1,41 @@ +/* +* Copyright (c) 2000-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 "ivug-common.h" +#include "ivug-parameter.h" + +#ifndef __IVUG_SMART_EVENT_BOX_H_ +#define __IVUG_SMART_EVENT_BOX_H_ + +typedef enum{ + IVUG_EVENT_CLICK, + IVUG_EVENT_LEFT, + IVUG_EVENT_RIGHT, + IVUG_EVENT_MAX, +}IvugEventCallback_e; + +#ifdef __cplusplus +extern "C" { +#endif + +Evas_Object *ivug_smart_event_box_add(Evas_Object* parent); +void ivug_smart_event_box_callback_add(Evas_Object *event_box, IvugEventCallback_e event, void (*event_cb)(void *), void *user_data); +#ifdef __cplusplus +} +#endif + +#endif //__IVUG_SMART_EVENT_BOX_H_ diff --git a/main/src/ivug-base.cpp b/main/src/ivug-base.cpp new file mode 100755 index 0000000..1efac0a --- /dev/null +++ b/main/src/ivug-base.cpp @@ -0,0 +1,903 @@ +/* +* Copyright (c) 2000-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 "ivug-common.h" +#include "ivug-util.h" +#include "ivug-main-view.h" +#include "ivug-crop-ug.h" +#include "ivug-popup.h" +#include "ivug-slideshow-view.h" + +#include "EFLUtil.h" + +#include "ivug-callback.h" +#include "ivug-context.h" +#include "ivug-parameter.h" +#include "ivug-language-mgr.h" +#include "ivug-base.h" +#include + +typedef struct _ug_data ug_data; + +struct _ug_data{ + Evas_Object *base; // UG layout + +// View Data; + Ivug_MainView *main_view; + IvugCropUG *crop_ug; + + Ivug_SlideShowView *ss_view; + + ivug_parameter* ivug_param; + + bool bError; + char *bErrMsg; + + Evas_Object *icon; + Ecore_Timer *exit_timer; + + Evas_Object *navi_bar; + Elm_Object_Item *navi_it; +}; + +#define SHORTCUT_ICON_PATH "/usr/share/icons/default/small/com.samsung.image-viewer.png" + +static int __externalStorageId = 0; + +bool getSupportedStorages_cb(int storageId, storage_type_e type, storage_state_e state, const char * +path, void *userData) +{ + MSG_NOTI_ERROR(""); + if (type == STORAGE_TYPE_EXTERNAL) + { + __externalStorageId = storageId; + return false; + } + return true; +} + + +ug_data *AllocUGData() +{ + ug_data *ugd = NULL; + + ugd = (ug_data *)calloc(1, sizeof(ug_data)); //alloc ug_data memory + + return ugd; +} + +void FreeUGData(ug_data *ug) +{ + IV_ASSERT(ug != NULL); + + free(ug); +} + + +static void _send_result_to_caller(ui_gadget_h ug) +{ + int ret = 0; + app_control_h service = NULL; + ret = app_control_create(&service); + if (ret != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_HIGH("app_control_create failed"); + return; + } + + ret = app_control_add_extra_data(service, "ivug.status", "started"); + if (ret != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_HIGH("app_control_add_extra_data failed"); + } + ug_send_result(ug, service); + + app_control_destroy(service); + + MSG_IMAGEVIEW_HIGH("Send load started event to caller"); +} + +#ifdef TRACE_WINDOW +static void _on_win_resize(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Evas_Coord x,y,w,h; + evas_object_geometry_get(obj, &x, &y, &w, &h); + + MSG_IMAGEVIEW_HIGH("Parent win(0x%08x) resized geomtery XYWH(%d,%d,%d,%d) angle=%d", obj, x, y, w, h, elm_win_rotation_get((Evas_Object *)ug_get_window())); +} + +static void _on_win_move(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Evas_Coord x,y,w,h; + evas_object_geometry_get(obj, &x, &y, &w, &h); + + MSG_IMAGEVIEW_HIGH("Parent win(0x%08x) moved geomtery XYWH(%d,%d,%d,%d) angle=%d", obj, x, y, w, h, elm_win_rotation_get((Evas_Object *)ug_get_window())); +} +#endif + + +static void _on_base_resize(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Evas_Coord x,y,w,h; + evas_object_geometry_get(obj, &x, &y, &w, &h); + + MSG_IMAGEVIEW_HIGH("Base layout(0x%08x) resized geomtery XYWH(%d,%d,%d,%d) angle=%d", obj, x, y, w, h, elm_win_rotation_get((Evas_Object *)ug_get_window())); +} + +static void _on_base_move(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Evas_Coord x,y,w,h; + evas_object_geometry_get(obj, &x, &y, &w, &h); + + MSG_IMAGEVIEW_HIGH("Base layout(0x%08x) moved geomtery XYWH(%d,%d,%d,%d) angle=%d", obj, x, y, w, h, elm_win_rotation_get((Evas_Object *)ug_get_window())); +} + + +static void _on_base_show(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + MSG_IMAGEVIEW_HIGH("Base(0x%08x) layout show", obj); +} + +static void _on_base_hide(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + MSG_IMAGEVIEW_HIGH("Base(0x%08x) layout hide", obj); +} + +static void _on_receive_mouse_down (void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + MSG_MAIN_HIGH("Base layout(0x%08x) clicked : %s Layer=%d",obj, evas_object_name_get(obj), evas_object_layer_get(obj)); +} + +static Eina_Bool _on_exit_timer_expired(void *data) +{ + ivug_retv_if(!data, ECORE_CALLBACK_CANCEL); + + ug_data *ugd = (ug_data *)data; + + ugd->exit_timer = NULL; + + DESTROY_ME(); + + return ECORE_CALLBACK_CANCEL; +} + +static bool _is_mmc_inserted(void) +{ + int error = storage_foreach_device_supported(getSupportedStorages_cb, NULL); + + if (error == STORAGE_ERROR_NONE) + { + storage_state_e mmc_state; + int ret = storage_get_state(__externalStorageId, &mmc_state); + if (ret != STORAGE_ERROR_NONE) // failed + { + MSG_NOTI_ERROR("storage_get_state %d is failed", mmc_state); + return false; + } + if (mmc_state == STORAGE_STATE_MOUNTED) + { + return true; + } + } + + return false; + +} + +static void _on_mmc_state_changed(int storage_id, storage_state_e state, void *user_data) +{ + ug_data *ugd = (ug_data *)user_data; + IV_ASSERT(ugd != NULL); + + if(_is_mmc_inserted() == false) + { + MSG_IMAGEVIEW_WARN("MMC Removed!"); + if(strncmp(ugd->ivug_param->filepath, PATH_SDCARD, strlen(PATH_SDCARD)) != 0 + && ugd->ivug_param->view_by != IVUG_VIEW_BY_ALL + && ugd->ivug_param->view_by != IVUG_VIEW_BY_HIDDEN_ALL) + { + return; + } + + MSG_IMAGEVIEW_WARN("Request destroy UG=0x%08x", gGetUGHandle()); + + if(ugd->main_view) + { + _ivug_main_on_mmc_state_changed(ugd->main_view); + } + else if(ugd->ss_view) + { + _ivug_slideshow_view_on_mmc_state_changed(ugd->ss_view); + } + else + { + if(ugd->exit_timer == NULL) + { + ugd->exit_timer = ecore_timer_add(0.2, _on_exit_timer_expired, ugd); + } + } + } + else + { + MSG_IMAGEVIEW_WARN("MMC Inserted!"); + } +} + +static void _on_base_deleted(void * data, Evas * e, Evas_Object * obj, void * event_info) +{ + MSG_IMAGEVIEW_ERROR("_on_base_deleted"); +} + +static void _destroy_manually(void *priv) +{ + ug_data *ugd = (ug_data *)priv; + + MSG_IMAGEVIEW_HIGH("_destroy_manually ugd=0x%08x", ugd); + + int error_code = storage_unset_state_changed_cb(__externalStorageId, _on_mmc_state_changed); + if (error_code != STORAGE_ERROR_NONE) + { + MSG_MAIN_ERROR("storage_unset_state_changed_cb() failed!!"); + } + + if(ugd->bErrMsg) + { + free(ugd->bErrMsg); + ugd->bErrMsg = NULL; + } + + if(ugd->crop_ug) + { + ivug_crop_ug_destroy(ugd->crop_ug); + ugd->crop_ug = NULL; + } + + //destroy main view. + if (ugd->main_view ) + { + PERF_CHECK_BEGIN(LVL1, "MainView"); + ivug_main_view_destroy(ugd->main_view); + ugd->main_view = NULL; + PERF_CHECK_END(LVL1, "MainView"); + } + + if (ugd->ss_view ) + { + PERF_CHECK_BEGIN(LVL1, "SlideShowView"); + ivug_slideshow_view_destroy(ugd->ss_view); + ugd->ss_view = NULL; + PERF_CHECK_END(LVL1, "SlideShowView"); + } + + //delete param. + if(ugd->ivug_param) + { + ivug_param_delete(ugd->ivug_param); + ugd->ivug_param = NULL; + } + + if (ugd->base) + { + PERF_CHECK_BEGIN(LVL1, "Base layout"); + evas_object_event_callback_del(ugd->base, EVAS_CALLBACK_DEL, _on_base_deleted); + evas_object_del(ugd->base); + ugd->base = NULL; + PERF_CHECK_END(LVL1, "Base layout"); + } +} + +static Evas_Object *create_fullview(Evas_Object *win, ug_data *ugd) +{ + Evas_Object *base; + + /* Create Full view */ + base = EFL::create_layout(win, EDJ_PATH"/ivug-base.edj", "ivug_base"); + if (base == NULL) + { + MSG_IMAGEVIEW_HIGH("Cannot set layout. EDJ=%s Group=%s", EDJ_PATH"/ivug-base.edj", "ivug_base"); + return NULL; + } + + evas_object_name_set(base, "Base layout"); + + evas_object_size_hint_expand_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + + return base; +} + +static Evas_Object *create_frameview(Evas_Object *parent, ug_data *ugd) +{ + Evas_Object *base = NULL; + + /* Create Frame view */ + base = elm_layout_add(parent); + evas_object_name_set(base, "Base layout frame"); + elm_layout_theme_set(base, "layout", "application", "default"); + + return base; +} + + +#if 0 +static void +_on_base_backkey(void *data, Evas_Object *obj, void *event_info) +{ + MSG_SETAS_HIGH("Ignore back key"); +} +#endif + + +void *on_create(ui_gadget_h ug, enum ug_mode mode, app_control_h service, void *priv) +{ + ug_data *ugd; + + MSG_IMAGEVIEW_HIGH("on_create. CHECKING CONFORMANT"); + + Evas_Object *conform = (Evas_Object *)ug_get_conformant(); + IV_ASSERT(conform != NULL); + + PERF_CHECK_END(LVL0, "UG_MODULE_INIT -> On Create"); + + PERF_CHECK_BEGIN(LVL0, "On Create"); + + MSG_IMAGEVIEW_HIGH("on_create. UG & PRIV"); + + if (!ug || !priv) { + MSG_IMAGEVIEW_ERROR("Error. ug=0x%08x priv=0x%08x", ug, priv); + return NULL; + } + + ugd = (ug_data *)priv; + + MSG_IMAGEVIEW_HIGH("Image Viewer : %s ug=0x%08x, data=0x%08x", __func__, ug, ugd ); + + Evas_Object *win = (Evas_Object *)ug_get_window(); + + int wx, wy, ww, wh; + int error_code = -1; + + evas_object_geometry_get(win, &wx, &wy, &ww, &wh); + + MSG_IMAGEVIEW_HIGH("Parent Info. Layout(0x%08x) Win(0x%08x) Size(%d,%d,%d,%d) rotation=%d", + ug_get_parent_layout(ug), win, wx, wy, ww, wh, elm_win_rotation_get(win)); + + PERF_CHECK_BEGIN(LVL1, "init context"); + //init + if (!ivug_context_init(ug)) { + MSG_IMAGEVIEW_ERROR("ivug_main_init error"); + return NULL; + } + PERF_CHECK_END(LVL1, "init context"); + + PERF_CHECK_BEGIN(LVL1, "parse bundle"); + + ugd->ivug_param = ivug_param_create_from_bundle(service); + if ( ugd->ivug_param == NULL) { + MSG_IMAGEVIEW_ERROR("Cannot parse parameter"); + ugd->bError = true; + ugd->bErrMsg = strdup(IDS_UNABLE_TO_OPEN_FILE); + goto ON_CREATE_ERROR; + } + PERF_CHECK_END(LVL1, "parse bundle"); + + PERF_CHECK_BEGIN(LVL1, "creating base"); + + //create base + if (mode == UG_MODE_FULLVIEW) { + MSG_IMAGEVIEW_HIGH("create base layout for FullView"); + ugd->base = create_fullview(conform, ugd); + } else { + MSG_IMAGEVIEW_HIGH("create base layout for FrameView"); + ugd->base = create_frameview(conform, ugd); + } + + PERF_CHECK_END(LVL1, "creating base"); + + if (ugd->base == NULL) { + MSG_IMAGEVIEW_ERROR("Cannot create base view"); + ugd->bError = true; + ugd->bErrMsg = strdup(IDS_UNABLE_TO_OPEN_FILE); + goto ON_CREATE_ERROR; + } + + int ux1, uy1, uw1, uh1; + + evas_object_geometry_get(ugd->base, &ux1, &uy1, &uw1, &uh1); + + MSG_IMAGEVIEW_HIGH("UG base created : 0x%08x (%d,%d,%d,%d)", ugd->base, ux1, uy1, uw1, uh1); + + evas_object_event_callback_add(ugd->base, EVAS_CALLBACK_MOUSE_DOWN, _on_receive_mouse_down, NULL); + + evas_object_event_callback_add(ugd->base, EVAS_CALLBACK_RESIZE, _on_base_resize, ugd); + evas_object_event_callback_add(ugd->base, EVAS_CALLBACK_MOVE, _on_base_move, NULL); + + evas_object_event_callback_add(ugd->base, EVAS_CALLBACK_SHOW, _on_base_show, NULL); + evas_object_event_callback_add(ugd->base, EVAS_CALLBACK_HIDE, _on_base_hide, NULL); + +#ifdef TRACE_WINDOW + evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE, _on_win_resize, NULL); + evas_object_event_callback_add(win, EVAS_CALLBACK_MOVE, _on_win_move, NULL); +#endif + + error_code = storage_set_state_changed_cb(__externalStorageId, _on_mmc_state_changed, ugd); + if (error_code != STORAGE_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("storage_set_state_changed_cb() failed!!"); + } + + if (ugd->ivug_param->mode == IVUG_MODE_SETAS && ugd->ivug_param->setas_type != IVUG_SET_AS_UG_TYPE_CALLER_ID && ugd->ivug_param->setas_type != IVUG_SET_AS_UG_TYPE_WALLPAPER_CROP) { +#ifdef TEST_FOR_CROP + ugd->ivug_param->setas_type = IVUG_SET_AS_UG_TYPE_CROP; + ugd->ivug_param->width = 450; + ugd->ivug_param->height = 300; + ugd->ivug_param->bRatioFix= true; +#endif + MSG_IMAGEVIEW_HIGH("UG types=%d", ugd->ivug_param->setas_type); + + switch (ugd->ivug_param->setas_type) { + case IVUG_SET_AS_UG_TYPE_CALLER_ID: + MSG_IMAGEVIEW_HIGH("IVUG_SET_AS_UG_TYPE_CALLER_ID"); + return NULL; + break; + + case IVUG_SET_AS_UG_TYPE_VIDEO_CALL_ID: + MSG_IMAGEVIEW_HIGH("IVUG_SET_AS_UG_TYPE_VIDEO_CALL_ID"); + return NULL; + break; + + case IVUG_SET_AS_UG_TYPE_WALLPAPER: + MSG_IMAGEVIEW_HIGH("IVUG_SET_AS_UG_TYPE_WALLPAPER"); + return NULL; + break; + + case IVUG_SET_AS_UG_TYPE_LOCKSCREEN: + MSG_IMAGEVIEW_HIGH("IVUG_SET_AS_UG_TYPE_LOCKSCREEN"); + return NULL; + break; + + case IVUG_SET_AS_UG_TYPE_WALLPAPER_N_LOCKSCREEN: + MSG_IMAGEVIEW_HIGH("IVUG_SET_AS_UG_TYPE_WALLPAPER_N_LOCKSCREEN"); + return NULL; + break; + + case IVUG_SET_AS_UG_TYPE_WALLPAPER_CROP: + MSG_IMAGEVIEW_HIGH("IVUG_SET_AS_UG_TYPE_WALLPAPER_CROP"); + return NULL; + break; + + case IVUG_SET_AS_UG_TYPE_CROP: + MSG_IMAGEVIEW_HIGH("IVUG_SET_AS_UG_TYPE_CROP"); + return NULL; + break; + default: + MSG_IMAGEVIEW_ERROR("Invalid SetAS UG Type:%d", ugd->ivug_param->setas_type); + return NULL; + + } +#if 0//Dead code + if(ugd->crop_ug == NULL) + { + MSG_IMAGEVIEW_ERROR("SetAS UG creation failed Type:%d", ugd->ivug_param->setas_type); + ugd->bError = true; + ugd->bErrMsg = strdup("Layout Loading Fail"); + goto ON_CREATE_ERROR; + } + + Evas_Object *layout = NULL; + + if(ugd->crop_ug) + { + layout = ivug_crop_ug_get_layout(ugd->crop_ug); + } + +// SetAs -> Caller image -> Ok -> Immediately Back key + eext_object_event_callback_add(ugd->base, EEXT_CALLBACK_BACK, _on_base_backkey, NULL); + + elm_object_part_content_set(ugd->base, "elm.swallow.content", layout); //swallow +#endif + } else { + PERF_CHECK_BEGIN(LVL1, "main_view_create"); + + ivug_set_indicator_visibility(false); // Set indicator visibility false. + ivug_set_indicator_overlap_mode(true); // Set comformant as no indicator mode + + ugd->main_view = ivug_main_view_create(ugd->base, ugd->ivug_param); + + PERF_CHECK_END(LVL1, "main_view_create"); + + if (ugd->main_view == NULL) { //set main view. + MSG_IMAGEVIEW_ERROR("Main View Layout Loading Fail"); + ugd->bError = true; + ugd->bErrMsg = strdup("Layout Loading Fail"); + goto ON_CREATE_ERROR; + } + + if (ugd->ivug_param->bTestMode == true) { + ivug_main_view_set_testmode(ugd->main_view, true); + } + +// Load list. + PERF_CHECK_BEGIN(LVL1, "main_view_set_list"); + + if (ivug_main_view_set_list(ugd->main_view, ugd->ivug_param) == false) { + MSG_IMAGEVIEW_ERROR("Cannot load media list."); + // Need popup? + if (ugd->ivug_param->mode != IVUG_MODE_HIDDEN) { + ugd->bError = true; + ugd->bErrMsg = strdup(IDS_UNABLE_TO_OPEN_FILE); + goto ON_CREATE_ERROR; + } + } + + Evas_Object *layout = ivug_main_view_object_get(ugd->main_view); + elm_object_part_content_set(ugd->base, "elm.swallow.content", layout); //swallow + + PERF_CHECK_END(LVL1, "main_view_set_list"); + } + + PERF_CHECK_END(LVL0, "On Create"); + +// struct ug_data *ugd = (struct ug_data *)priv; + + PERF_CHECK_BEGIN(LVL0, "On Create -> On Start"); + + evas_object_size_hint_weight_set(ugd->base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + int ux, uy, uw, uh; + + evas_object_geometry_get(ugd->base, &ux, &uy, &uw, &uh); + + MSG_IMAGEVIEW_HIGH("Image Viewer : %s Base(0x%08x) Geometry(%d,%d,%d,%d)", __func__, ugd->base, ux, uy, uw, uh); + + evas_object_event_callback_add(ugd->base, EVAS_CALLBACK_DEL, _on_base_deleted, ugd); + + return ugd->base; + +ON_CREATE_ERROR: + if (ugd->main_view) { + ivug_main_view_destroy(ugd->main_view); + ugd->main_view = NULL; + } + + if (ugd->base == NULL) { + ugd->base = elm_layout_add((Evas_Object *)ug_get_window()); + elm_layout_theme_set(ugd->base, "layout", "application", "default"); + } + + return ugd->base; +} + +void on_start(ui_gadget_h ug, app_control_h service, void *priv) +{ + MSG_IMAGEVIEW_HIGH("Image Viewer BEGIN %s, ug=0x%08x, data=0x%08x", __func__, ug, priv); + + PERF_CHECK_END(LVL0, "On Create -> On Start"); + + PERF_CHECK_BEGIN(LVL0, "On Start"); + + if (!ug || !priv) + { + MSG_IMAGEVIEW_ERROR("Invalid UG. UG=0x%08x Priv=0x%08x", ug, priv); + return ; + } + + ug_data *ugd = (ug_data *)priv; + + int ux, uy, uw, uh; + + evas_object_geometry_get(ugd->base, &ux, &uy, &uw, &uh); + + MSG_IMAGEVIEW_HIGH("Image Viewer : %s BaseGeometry(%d,%d,%d,%d)", __func__, ux, uy, uw, uh); + + if(ugd->bError == true) + { + PERF_CHECK_END(LVL0, "On Start"); + MSG_IMAGEVIEW_ERROR("UG create has ERROR"); + notification_status_message_post(GET_STR(IDS_UNABLE_TO_OPEN_FILE)); + ug_destroy_me(gGetUGHandle()); + return; + } + + if (ugd->ivug_param->mode == IVUG_MODE_SLIDESHOW || ugd->ivug_param->footsteps) + { + PERF_CHECK_BEGIN(LVL1, "slideshow_view_start"); + ivug_slideshow_view_start(ugd->ss_view); + PERF_CHECK_END(LVL1, "slideshow_view_start"); + } + else if (ugd->main_view ) + { + // Force render only for main view. + MSG_IMAGEVIEW_HIGH("BEGIN : Force Render"); + // evas_render(evas_object_evas_get(ugd->base)); + MSG_IMAGEVIEW_HIGH("END : Force Render"); + + PERF_CHECK_BEGIN(LVL1, "main_view_start"); + ivug_main_view_start(ugd->main_view, service); + PERF_CHECK_END(LVL1, "main_view_start"); + } + else if (ugd->crop_ug ) + { + ivug_crop_ug_start(ugd->crop_ug); + } + + ivug_add_reg_idler(ugd->main_view); + + PERF_CHECK_END(LVL0, "On Start"); + + MSG_IMAGEVIEW_HIGH("Image Viewer END:%s, ug=0x%08x, data=0x%08x", __func__, ug, priv); + + if(ugd->ivug_param->bStandalone == true) + { + _send_result_to_caller(ug); + } +} + +void on_pause(ui_gadget_h ug, app_control_h service, void *priv) +{ + MSG_IMAGEVIEW_HIGH("Image Viewer : %s, ug=0x%08x, data=0x%08x", __func__, ug, priv); + + if (!ug || !priv) + { + MSG_IMAGEVIEW_ERROR("Invalid UG. UG=0x%08x Priv=0x%08x", ug, priv); + return ; + } + + if(gGetDestroying() == true) + { + MSG_IMAGEVIEW_WARN("Image Viewer is destroying"); + return; + } + + ug_data *ugd = (ug_data *)priv; + + if(ugd->ivug_param == NULL) + { + MSG_IMAGEVIEW_ERROR("UG is destroying"); + return; + } + + if (ugd->ivug_param->mode == IVUG_MODE_SLIDESHOW || ugd->ivug_param->footsteps) + { + ivug_slideshow_view_pause(ugd->ss_view); + } + else if (ugd->main_view ) + { + ivug_main_view_pause(ugd->main_view); + } + else + { + MSG_IMAGEVIEW_HIGH("don't need to pause"); + } +} + +void on_resume(ui_gadget_h ug, app_control_h service, void *priv) +{ + MSG_IMAGEVIEW_HIGH("Image Viewer : %s, ug=0x%08x, data=0x%08x", __func__, ug, priv); + + if (!ug || !priv) + { + IVUG_DEBUG_MSG("Invalid UG. UG=0x%08x Priv=0x%08x", ug, priv); + return ; + } + + ug_data *ugd = (ug_data *)priv; + + if (ugd->ivug_param->mode == IVUG_MODE_SLIDESHOW || ugd->ivug_param->footsteps) + { + ivug_slideshow_view_resume(ugd->ss_view); + } + else if (ugd->main_view ) + { + ivug_main_view_resume(ugd->main_view); + } + else + { + MSG_IMAGEVIEW_HIGH("don't need to resume"); + } + +} + +void on_destroy(ui_gadget_h ug, app_control_h service, void *priv) +{ + MSG_IMAGEVIEW_HIGH("Image Viewer : %s(0x%08x) UG=0x%08x data=0x%08x", __func__, on_destroy, ug, priv); + + PERF_CHECK_BEGIN(LVL0, "On Destroy"); + + if (!ug || !priv) + { + MSG_IMAGEVIEW_ERROR("Invalid UG. UG=0x%08x Priv=0x%08x", ug, priv); + return ; + } + + ug_data *ugd = (ug_data *)priv; + + MSG_IMAGEVIEW_HIGH("On Destroy : ug=0x%08x", ug); + + if(ugd->bErrMsg) + { + free(ugd->bErrMsg); + ugd->bErrMsg = NULL; + } + + if(ugd->crop_ug) + { + ivug_crop_ug_destroy(ugd->crop_ug); + ugd->crop_ug = NULL; + } + + //destroy main view. + if (ugd->main_view ) + { + PERF_CHECK_BEGIN(LVL1, "MainView"); + ivug_main_view_destroy(ugd->main_view); + ugd->main_view = NULL; + PERF_CHECK_END(LVL1, "MainView"); + } + + if (ugd->ss_view ) + { + PERF_CHECK_BEGIN(LVL1, "SlideShowView"); + ivug_slideshow_view_destroy(ugd->ss_view); + ugd->ss_view = NULL; + PERF_CHECK_END(LVL1, "SlideShowView"); + } + + //delete param. + if(ugd->ivug_param) + { + ivug_param_delete(ugd->ivug_param); + ugd->ivug_param = NULL; + } + + //finalize data + PERF_CHECK_BEGIN(LVL1, "Context"); + if (!ivug_context_deinit(ug)) + { + MSG_IMAGEVIEW_ERROR("ivug_main_deinit failed"); + } + PERF_CHECK_END(LVL1, "Context"); + + if (ugd->base) + { + PERF_CHECK_BEGIN(LVL1, "Base layout"); + evas_object_event_callback_del(ugd->base, EVAS_CALLBACK_DEL, _on_base_deleted); + evas_object_del(ugd->base); + ugd->base = NULL; + PERF_CHECK_END(LVL1, "Base layout"); + } + + MSG_IMAGEVIEW_HIGH("Destroyed ug"); + + PERF_CHECK_END(LVL0, "On Destroy"); +} + +static bool _data_print(app_control_h service, const char *key, void *user_data) +{ + char *value; + + app_control_get_extra_data(service, key, &value); + + MSG_IVUG_HIGH(" %s : %s", key, value); + + free(value); + + return true; +} + +void on_message(ui_gadget_h ug, app_control_h msg, app_control_h service, void *priv) +{ + MSG_IMAGEVIEW_HIGH("Image Viewer : %s UG=0x%08x", __func__, ug); //on message + + if (!ug || !priv) + { + MSG_IMAGEVIEW_ERROR("Invalid UG. UG=0x%08x Priv=0x%08x", ug, priv); + return; + } + + int ret = app_control_foreach_extra_data(msg, _data_print, NULL); + + if(APP_CONTROL_ERROR_NONE != ret) + { + MSG_IVUG_ERROR("app_control_foreach_extra_data ERROR"); + } + + ug_data *ugd = (ug_data *)priv; + + //ivug_msg_type msg_type = IVUG_MSG_NONE; + + if(ugd->main_view == NULL) + { + MSG_IMAGEVIEW_ERROR("main view is NULL"); + return; + } + + char *value = NULL; + app_control_get_extra_data(msg, "Destroy", &value); + if(value != NULL) + { + MSG_IMAGEVIEW_HIGH("_destroy_manually msg received"); + _destroy_manually(priv); + free(value); + return; + } + + ivug_callback_call(gGetCallbackHandle(), msg, NULL, NULL); + + return; +} + +void on_event(ui_gadget_h ug, enum ug_event event, app_control_h service, void *priv) +{ + if (!ug || !priv) + { + MSG_IMAGEVIEW_ERROR("Invalid UG. UG=0x%08x Priv=0x%08x", ug, priv); + return; + } + MSG_IMAGEVIEW_HIGH("Image Viewer : %s UG=0x%08x", __func__, ug); //on message + + switch (event) { + case UG_EVENT_LOW_MEMORY: + MSG_IMAGEVIEW_HIGH("Get Event : Low Memory"); + break; + case UG_EVENT_LOW_BATTERY: + MSG_IMAGEVIEW_HIGH("Get Event : Low battery"); + break; + case UG_EVENT_LANG_CHANGE: + MSG_IMAGEVIEW_HIGH("Get Event : Language changed"); + ivug_language_mgr_update(gGetLanguageHandle()); + break; + + // Rotate event is not used now.. plz, use only resized callback. + case UG_EVENT_ROTATE_PORTRAIT: + MSG_IMAGEVIEW_HIGH("Get Event : rotate portrait"); + break; + case UG_EVENT_ROTATE_LANDSCAPE: + MSG_IMAGEVIEW_HIGH("Get Event : rotate landscape"); + break; + case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN: + MSG_IMAGEVIEW_HIGH("Get Event : rotate portrait upsidedown"); + break; + case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN: + MSG_IMAGEVIEW_HIGH("Get Event : rotate landscape upsidedown"); + break; + + default: + MSG_IMAGEVIEW_ERROR("Unknown event type : %d", event); + break; + } +} + +void on_destroying(ui_gadget_h ug, app_control_h service, void *priv) +{ + MSG_IMAGEVIEW_HIGH("Image Viewer : %s UG=0x%08x", __func__, ug); + + if (!ug || !priv) + { + MSG_IMAGEVIEW_ERROR("Invalid UG. UG=0x%08x Priv=0x%08x", ug, priv); + return; + } + + int error_code = storage_unset_state_changed_cb(__externalStorageId, _on_mmc_state_changed); + if (error_code != STORAGE_ERROR_NONE) + { + MSG_MAIN_ERROR("storage_unset_state_changed_cb() failed!!"); + } + + gSetDestroying(true); +} diff --git a/main/src/control/ivug-popup.c b/main/src/popup/ivug-popup.c similarity index 51% rename from main/src/control/ivug-popup.c rename to main/src/popup/ivug-popup.c index 4a42173..97536d3 100755 --- a/main/src/control/ivug-popup.c +++ b/main/src/popup/ivug-popup.c @@ -1,25 +1,36 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 "ivug-popup.h" +#include "ivug-vibration.h" + +#include "ivug-language-mgr.h" +#include "ivug-context.h" #define NOTIFY_TIMEOUT 3.0 #define IVUG_POPUP_EDJ_NAME EDJ_PATH"/ivug-popup.edj" +#define TAG_BUDDY_ACCESS_FONT_SIZE 40 +#define TAG_BUDDY_ACCESS_FONT_COLOR "#FFFFFFFF" +#define TAG_BUDDY_ACCESS_BUFFER 1024 + typedef struct _Ivug_Popup { Evas_Object *parent; @@ -32,6 +43,10 @@ typedef struct _Ivug_Popup Popup_Response response; +#ifdef USE_MAXLENGTH_VIBE + vibration_h haptic_handle; +#endif + Evas_Smart_Cb callback; void *data; @@ -41,6 +56,7 @@ typedef struct { int index; char *name; + char *icon_path; Evas_Object *radio_main; Ivug_Popup *p_iv_popup; Elm_Object_Item *item; @@ -50,19 +66,32 @@ static Ivug_Popup * ivug_popup_create() { Ivug_Popup *iv_popup = calloc(1, sizeof(Ivug_Popup)); +#ifdef USE_MAXLENGTH_VIBE + iv_popup->haptic_handle = INVALID_HAPTIC_HANDLE; +#endif + return iv_popup; } static void ivug_popup_delete(Ivug_Popup *iv_popup) { +#ifdef USE_MAXLENGTH_VIBE + if (iv_popup->haptic_handle != INVALID_HAPTIC_HANDLE) + { + ivug_vibration_stop(iv_popup->haptic_handle); + ivug_vibration_delete(iv_popup->haptic_handle); - if(iv_popup->popup) + iv_popup->haptic_handle = INVALID_HAPTIC_HANDLE; + } +#endif + + if (iv_popup->popup) { evas_object_del(iv_popup->popup); iv_popup->popup = NULL; } - if(iv_popup->layout) + if (iv_popup->layout) { evas_object_del(iv_popup->layout); iv_popup->layout = NULL; @@ -71,7 +100,28 @@ static void ivug_popup_delete(Ivug_Popup *iv_popup) free(iv_popup); } -static void _on_popup_response(void *data, Evas_Object *obj, void *event_info ) + +static void _on_btn_back_clicked(void *data, Evas_Object *obj, void *event_info) +{ + IV_ASSERT(data != NULL); + + Ivug_Popup *iv_popup = (Ivug_Popup *)data; + + if (iv_popup->callback) + { + iv_popup->callback(iv_popup->data, iv_popup->popup, (void *)POPUP_RESPONSE_CANCEL); + } + + ivug_popup_delete(iv_popup); +} + + +static void _on_btn_back_progressing_clicked(void *data, Evas_Object *obj, void *event_info) +{ + MSG_IMAGEVIEW_HIGH("Ignore back button"); +} + +static void _on_popup_response(void *data, Evas_Object *obj, void *event_info) { IV_ASSERT(data != NULL); @@ -79,7 +129,7 @@ static void _on_popup_response(void *data, Evas_Object *obj, void *event_info ) Popup_Response response = (Popup_Response)evas_object_data_get(obj, "response"); MSG_IMAGEVIEW_HIGH("response callback=%d", response); - if(iv_popup->callback) + if (iv_popup->callback) { iv_popup->callback(iv_popup->data, iv_popup->popup, (void *)response); } @@ -88,59 +138,91 @@ static void _on_popup_response(void *data, Evas_Object *obj, void *event_info ) } -static void _on_ctxpopup_dismissed( void *data, Evas_Object *obj, void *event_info ) +static void _on_ctxpopup_dismissed(void *data, Evas_Object *obj, void *event_info) { // Triggered when clicked outside ctxpopup MSG_IMAGEVIEW_HIGH("Dismissed response"); Ivug_Popup *iv_popup = (Ivug_Popup *)data; + if (iv_popup->callback) + { + iv_popup->callback(iv_popup->data, iv_popup->popup, (void *)LPPOPUP_RESPONSE_NONE); + } + ivug_popup_delete(iv_popup); } Evas_Object* -ivug_deletepopup_show(Evas_Object* parent, const char* title, - const char* contents, Evas_Smart_Cb response, void* user_data) +ivug_popup_add(Evas_Object* parent, const char* title_id) { Evas_Object *popup; - Evas_Object *btn_delete; - Evas_Object *btn_cancel; + + popup = elm_popup_add(parent); + evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + + if (title_id) + ivug_elm_object_part_text_set(gGetLanguageHandle(), popup, "title,text", title_id); + + return popup; +} + +Evas_Object* +ivug_deletepopup_show(Evas_Object* parent, const char* title_id, + const char* contents_id, Evas_Smart_Cb response, void* user_data) +{ + Evas_Object *popup = NULL; + Evas_Object *btn_delete = NULL; + Evas_Object *btn_cancel = NULL; //create popup IV_ASSERT(response != NULL); Ivug_Popup *iv_popup = ivug_popup_create(); + if (iv_popup == NULL) { + MSG_IMAGEVIEW_ERROR("ivug_popup_create ERROR"); + return NULL; + } popup = elm_popup_add(parent); evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_object_text_set(popup, contents); - elm_object_part_text_set(popup, "title,text", title); + ivug_elm_object_text_set(gGetLanguageHandle(), popup, contents_id); - btn_delete = ivug_button_add(popup, "popup_button/default", IDS_DELETE, NULL, _on_popup_response, iv_popup); - elm_object_part_content_set(popup, "button1", btn_delete); - evas_object_data_set(btn_delete, "response", (void *)POPUP_RESPONSE_OK); + if (title_id) + ivug_elm_object_part_text_set(gGetLanguageHandle(), popup, "title,text", title_id); - btn_cancel = ivug_button_add(popup, "popup_button/default", IDS_CANCEL, NULL, _on_popup_response, iv_popup); - elm_object_part_content_set(popup, "button2", btn_cancel); + btn_cancel = ivug_button_add(popup, "popup_button/default", gGetLanguageHandle(), IDS_CANCEL, NULL, _on_popup_response, iv_popup); + elm_object_part_content_set(popup, "button1", btn_cancel); evas_object_data_set(btn_cancel, "response", (void *)POPUP_RESPONSE_CANCEL); + btn_delete = ivug_button_add(popup, "popup_button/default", gGetLanguageHandle(), IDS_DELETE, NULL, _on_popup_response, iv_popup); + //elm_object_style_set(btn_delete, "style1/delete"); + elm_object_part_content_set(popup, "button2", btn_delete); + evas_object_data_set(btn_delete, "response", (void *)POPUP_RESPONSE_OK); + iv_popup->popup = popup; iv_popup->callback = response; iv_popup->data = user_data; - evas_object_show(popup); + eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, _on_btn_back_clicked, iv_popup); + + evas_object_show(popup); return popup; } Evas_Object* -ivug_2btn_popup_show(Evas_Object* parent, const char* title, - const char* contents, Evas_Smart_Cb response, void* user_data) +ivug_2btn_popup_show(Evas_Object* parent, const char* title_id, + const char* contents_id, Evas_Smart_Cb response, void* user_data) { IV_ASSERT(response != NULL); Ivug_Popup *iv_popup = ivug_popup_create(); + if (iv_popup == NULL) { + MSG_IMAGEVIEW_ERROR("ivug_popup_create ERROR"); + return NULL; + } Evas_Object *popup; Evas_Object *btn_yes; @@ -149,20 +231,20 @@ ivug_2btn_popup_show(Evas_Object* parent, const char* title, popup = elm_popup_add(parent); evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_object_text_set(popup, contents); - if(title) + ivug_elm_object_text_set(gGetLanguageHandle(), popup, contents_id); + if (title_id) { - elm_object_part_text_set(popup, "title,text", title); + ivug_elm_object_part_text_set(gGetLanguageHandle(), popup, "title,text", title_id); } - btn_yes = ivug_button_add(popup, "popup_button/default", IDS_YES, NULL, _on_popup_response, iv_popup); - elm_object_part_content_set(popup, "button1", btn_yes); - evas_object_data_set(btn_yes, "response", (void *)POPUP_RESPONSE_OK); - - btn_no = ivug_button_add(popup, "popup_button/default", IDS_NO, NULL, _on_popup_response, iv_popup); - elm_object_part_content_set(popup, "button2", btn_no); + btn_no = ivug_button_add(popup, "popup_button/default", gGetLanguageHandle(), IDS_NO, NULL, _on_popup_response, iv_popup); + elm_object_part_content_set(popup, "button1", btn_no); evas_object_data_set(btn_no, "response", (void *)POPUP_RESPONSE_CANCEL); + btn_yes = ivug_button_add(popup, "popup_button/default", gGetLanguageHandle(), IDS_YES, NULL, _on_popup_response, iv_popup); + elm_object_part_content_set(popup, "button2", btn_yes); + evas_object_data_set(btn_yes, "response", (void *)POPUP_RESPONSE_OK); + iv_popup->popup = popup; iv_popup->callback = response; iv_popup->data = user_data; @@ -174,33 +256,38 @@ ivug_2btn_popup_show(Evas_Object* parent, const char* title, } Evas_Object *ivug_timeout_popup_show(Evas_Object *parent, - Evas_Smart_Cb response, void *data, const char *sztitle, const char *content) + Evas_Smart_Cb response, void *data, const char *sztitle_id, const char *content_id) { Ivug_Popup *iv_popup = ivug_popup_create(); + if (iv_popup == NULL) { + MSG_IMAGEVIEW_ERROR("ivug_popup_create ERROR"); + return NULL; + } Evas_Object *popup; popup = elm_popup_add(parent); evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_object_text_set(popup, content); + elm_object_text_set(popup, GET_STR(content_id)); - if(response) + if (response) { iv_popup->callback = response; } - if(data) + if (data) { iv_popup->data = data; } - if ( sztitle ) - elm_object_part_text_set(popup, "title,text", sztitle); + if (sztitle_id) + elm_object_part_text_set(popup, "title,text", GET_STR(sztitle_id)); elm_popup_timeout_set(popup, 3.0); evas_object_smart_callback_add(popup, "timeout", _on_popup_response, iv_popup); + eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, _on_btn_back_clicked, iv_popup); iv_popup->popup = popup; @@ -210,55 +297,20 @@ Evas_Object *ivug_timeout_popup_show(Evas_Object *parent, } -static void _on_longpress_popup_selected(void *data, Evas_Object *obj, void *event_info) -{ - IV_ASSERT(data != NULL); - - Ivug_Popup *iv_popup = (Ivug_Popup *)data; - - const char *label = elm_object_item_text_get((Elm_Object_Item *)event_info); - if(label == NULL) - { - MSG_MAIN_ERROR("label is NULL"); - ivug_popup_delete(iv_popup); - return; - } - MSG_MAIN_HIGH("text(%s) is clicked", label); - - Longpress_Popup_Response response = LPPOPUP_RESPONSE_NONE; - if(strncmp(label, IDS_COPY, strlen(label)) == 0) - { - response = LPPOPUP_RESPONSE_COPY; - } - else if(strncmp(label, IDS_MANUALLY_DETECT, strlen(label)) == 0) - { - response = LPPOPUP_RESPONSE_MANUALLY_DETECT; - } - else - { - MSG_MAIN_WARN("Unknown Share type : %s", label); - } - MSG_MAIN_HIGH("response=%d", response); - - if(iv_popup->callback) - { - iv_popup->callback(iv_popup->data, iv_popup->popup, (void *)response); - } - - ivug_popup_delete(iv_popup); -} - Evas_Object* -ivug_longpress_popup_show(Evas_Object *parent, int x, int y, Evas_Smart_Cb response, void *data) +ivug_longpress_popup_show(Evas_Object *parent, int x, int y, bool bUseExtMenu, Evas_Smart_Cb response, void *data) { Ivug_Popup *iv_popup = ivug_popup_create(); + if (iv_popup == NULL) { + MSG_IMAGEVIEW_ERROR("ivug_popup_create ERROR"); + return NULL; + } Evas_Object* ctx_popup = NULL; ctx_popup = elm_ctxpopup_add(parent); - elm_ctxpopup_item_append(ctx_popup, IDS_COPY, NULL, _on_longpress_popup_selected, iv_popup); - + //elm_ctxpopup_item_append(ctx_popup, GET_STR(IDS_COPY_TO_CLIPBOARD), NULL, _on_longpress_popup_selected, iv_popup); evas_object_smart_callback_add(ctx_popup, "dismissed", _on_ctxpopup_dismissed, iv_popup); @@ -273,7 +325,6 @@ ivug_longpress_popup_show(Evas_Object *parent, int x, int y, Evas_Smart_Cb respo return ctx_popup; } - void _ivug_rename_enter_click_cb(void *data, Evas_Object *obj, void *event_info) { @@ -282,23 +333,23 @@ _ivug_rename_enter_click_cb(void *data, Evas_Object *obj, void *event_info) Evas_Object *entry = iv_popup->obj; - char *name = elm_entry_markup_to_utf8 ( elm_entry_entry_get(entry) ); + char *name = elm_entry_markup_to_utf8 (elm_entry_entry_get(entry)); MSG_IMAGEVIEW_HIGH("name = %s", name); - if(name) + if (name) { char *new_name = NULL; new_name = ivug_strip_string(name); - if(new_name == NULL) + if (new_name == NULL) { - MSG_IMAGEVIEW_ERROR( "rename failed"); + MSG_IMAGEVIEW_ERROR("rename failed"); free(name); ecore_imf_context_input_panel_hide(elm_entry_imf_context_get(entry)); return; } elm_object_text_set(entry, new_name); - if(iv_popup->callback) + if (iv_popup->callback) { iv_popup->callback(iv_popup->data, iv_popup->popup, (void *)POPUP_RESPONSE_OK); } @@ -319,9 +370,9 @@ _ivug_rename_entry_changed(void *data, Evas_Object *obj, void *event_info) Evas_Object *entry = iv_popup->obj; Evas_Object *btn_ok = elm_object_part_content_get(iv_popup->popup, "button1"); - char *content = elm_entry_markup_to_utf8 ( elm_entry_entry_get(entry) ); + char *content = elm_entry_markup_to_utf8 (elm_entry_entry_get(entry)); - if (strlen(content) == 0) + if (content != NULL && strlen(content) == 0) { MSG_IMAGEVIEW_HIGH("ISF1 : %s", content); elm_object_disabled_set(btn_ok, EINA_TRUE); @@ -337,10 +388,26 @@ _ivug_rename_entry_changed(void *data, Evas_Object *obj, void *event_info) void _ivug_rename_maxlength_reached(void *data, Evas_Object *obj, void *event_info) { +#ifdef USE_MAXLENGTH_VIBE Ivug_Popup *iv_popup = (Ivug_Popup *)data; IV_ASSERT(iv_popup != NULL); - //todo : show popup + if (iv_popup->haptic_handle == INVALID_HAPTIC_HANDLE) + { + iv_popup->haptic_handle = ivug_vibration_create(); + if (iv_popup->haptic_handle == INVALID_HAPTIC_HANDLE) + { + MSG_IMAGEVIEW_ERROR("ivug_vibration_create failed"); + return; + } + } + else + { + ivug_vibration_stop(iv_popup->haptic_handle); + } + + ivug_vibration_play(iv_popup->haptic_handle ,VIBRATION_DURATION); +#endif } Evas_Object *ivug_rename_popup_show(Evas_Object *parent, const char *filename, Evas_Smart_Cb response, void *data) @@ -350,14 +417,13 @@ Evas_Object *ivug_rename_popup_show(Evas_Object *parent, const char *filename, E Evas_Object *layout = NULL; Ivug_Popup *iv_popup = ivug_popup_create(); - if(iv_popup == NULL) - { + if (iv_popup == NULL) { MSG_IMAGEVIEW_ERROR("ivug_popup_create ERROR"); return NULL; } popup = elm_popup_add(parent); - if(!popup) + if (!popup) { MSG_IMAGEVIEW_ERROR("popup is NULL"); goto ENTRY_POPUP_FREE; @@ -367,7 +433,7 @@ Evas_Object *ivug_rename_popup_show(Evas_Object *parent, const char *filename, E elm_object_part_text_set(popup, "title,text", "Rename"); layout = ivug_layout_add2(popup, IVUG_POPUP_EDJ_NAME, "popup_entryview"); - if(!layout) + if (!layout) { MSG_IMAGEVIEW_ERROR("layout is NULL"); goto ENTRY_POPUP_FREE; @@ -392,14 +458,14 @@ Evas_Object *ivug_rename_popup_show(Evas_Object *parent, const char *filename, E evas_object_show(layout); - Evas_Object *btn_ok = ivug_button_add(popup, "popup_button/default", IDS_OK, NULL, _ivug_rename_enter_click_cb, iv_popup); - elm_object_part_content_set(popup, "button1", btn_ok); - evas_object_data_set(btn_ok, "response", (void *)POPUP_RESPONSE_OK); - - Evas_Object *btn_cancel = ivug_button_add(popup, "popup_button/default", IDS_CANCEL, NULL, _on_popup_response, iv_popup); - elm_object_part_content_set(popup, "button2", btn_cancel); + Evas_Object *btn_cancel = ivug_button_add(popup, "popup_button/default", gGetLanguageHandle(), IDS_CANCEL, NULL, _on_popup_response, iv_popup); + elm_object_part_content_set(popup, "button1", btn_cancel); evas_object_data_set(btn_cancel, "response", (void *)POPUP_RESPONSE_CANCEL); + Evas_Object *btn_ok = ivug_button_add(popup, "popup_button/default", gGetLanguageHandle(), IDS_OK, NULL, _ivug_rename_enter_click_cb, iv_popup); + elm_object_part_content_set(popup, "button2", btn_ok); + evas_object_data_set(btn_ok, "response", (void *)POPUP_RESPONSE_OK); + iv_popup->popup = popup; iv_popup->callback = response; iv_popup->data = data; @@ -410,7 +476,7 @@ Evas_Object *ivug_rename_popup_show(Evas_Object *parent, const char *filename, E return popup; ENTRY_POPUP_FREE: - if(popup) + if (popup) { evas_object_del(popup); } @@ -426,7 +492,7 @@ static void _block_clicked_cb(void *data, Evas_Object *obj, void *event_info) Popup_Response response = (Popup_Response)evas_object_data_get(obj, "response"); MSG_IMAGEVIEW_HIGH("response callback=%d", response); - if(iv_popup->callback) + if (iv_popup->callback) { iv_popup->callback(iv_popup->data, iv_popup->popup, (void *)response); } @@ -442,7 +508,7 @@ _gl_text_get(void *data, Evas_Object *obj, const char *part) if (strcmp(part, "elm.text") == 0) { - return strdup(popup_item->name); + return strdup(GET_STR(popup_item->name)); } return NULL; } @@ -478,7 +544,7 @@ _gl_del(void *data, Evas_Object *obj) { ivug_radio_popup_item *popup_item = (ivug_radio_popup_item *)data; - if(popup_item->name) + if (popup_item->name) { free(popup_item->name); popup_item->name = NULL; @@ -507,7 +573,7 @@ _gl_sel(void *data, Evas_Object *obj, void *event_info) iv_popup->selected_index = popup_item->index; elm_genlist_item_update(item); - if(iv_popup->callback) + if (iv_popup->callback) { iv_popup->callback(iv_popup->data, iv_popup->popup, (void *)iv_popup->selected_index); } @@ -516,17 +582,18 @@ _gl_sel(void *data, Evas_Object *obj, void *event_info) } } -Evas_Object *ivug_radio_popoup_show(Evas_Object *parent, char *title, +Evas_Object *ivug_radio_popoup_show(Evas_Object *parent, const char *title_id, int selected_index, Eina_List *name_list, Evas_Smart_Cb response, void *data) { -#define GET_POPUP_HEIGHT(icnt) (((113*icnt-1) > 408) ? (408) : (113*icnt-1)) +#define ONE_ITEM_HEIGHT (115) +#define GET_POPUP_HEIGHT(icnt) ((((ONE_ITEM_HEIGHT*icnt)-1) > 408) ? (408) : ((ONE_ITEM_HEIGHT*icnt)-1)) #define GET_POPUP_WIDTH(icnt) (614) Evas_Object *popup; int index = 0; Elm_Object_Item *item; Evas_Object *genlist; - Evas_Object *btn_close; + Evas_Object *radio_main; static Elm_Genlist_Item_Class itc = {0,}; @@ -534,24 +601,36 @@ Evas_Object *ivug_radio_popoup_show(Evas_Object *parent, char *title, ivug_radio_popup_item *popup_item; Ivug_Popup *iv_popup = ivug_popup_create(); + if (iv_popup == NULL) { + MSG_IMAGEVIEW_ERROR("ivug_popup_create ERROR"); + return NULL; + } popup = elm_popup_add(parent); - elm_object_style_set(popup, "menustyle");//elm_object_style_set(popup, "min_menustyle"); - elm_object_part_text_set(popup, "title,text", title); + elm_object_style_set(popup, "content_no_vhpad"); + ivug_elm_object_part_text_set(gGetLanguageHandle(), popup, "title,text", title_id); evas_object_smart_callback_add(popup, "block,clicked", _block_clicked_cb, iv_popup); evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - btn_close = ivug_button_add(popup, "popup_button/default", IDS_CLOSE, NULL, _on_popup_response, iv_popup); +#if REMOVE_1_BUTTON + Evas_Object *btn_close; + + btn_close = ivug_button_add(popup, "popup_button/default",gGetLanguageHandle(), IDS_CLOSE, NULL, _on_popup_response, iv_popup); elm_object_part_content_set(popup, "button1", btn_close); evas_object_data_set(btn_close, "response", (void *)POPUP_RESPONSE_OK); +#endif + + Evas_Object *layout = elm_layout_add(popup); + elm_layout_theme_set(layout, "layout", "content", "min_menustyle"); + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - itc.item_style = "1text.1icon.2"; + itc.item_style = "1text.1icon.2/popup"; itc.func.text_get = _gl_text_get; itc.func.content_get = _gl_content_get; itc.func.state_get = NULL; itc.func.del = _gl_del; - genlist = elm_genlist_add(popup); + genlist = elm_genlist_add(layout); 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); evas_object_propagate_events_set(genlist, EINA_FALSE); @@ -567,22 +646,26 @@ Evas_Object *ivug_radio_popoup_show(Evas_Object *parent, char *title, EINA_LIST_FOREACH(name_list, l, name) { popup_item = calloc(1, sizeof(ivug_radio_popup_item)); - popup_item->index = index++; - popup_item->name = strdup(name); - popup_item->radio_main = radio_main; - popup_item->p_iv_popup = iv_popup; - item = elm_genlist_item_append(genlist, &itc, (void *)popup_item, NULL, - ELM_GENLIST_ITEM_NONE, _gl_sel, iv_popup); + if (popup_item != NULL) { + popup_item->index = index++; + popup_item->name = strdup(name); + popup_item->radio_main = radio_main; + popup_item->p_iv_popup = iv_popup; - popup_item->item = item; + item = elm_genlist_item_append(genlist, &itc, (void *)popup_item, NULL, + ELM_GENLIST_ITEM_NONE, _gl_sel, iv_popup); + + popup_item->item = item; + } } Evas_Object *box; - box = elm_box_add(popup); + box = elm_box_add(layout); evas_object_size_hint_min_set(box, GET_POPUP_WIDTH(index-1) * elm_config_scale_get(), GET_POPUP_HEIGHT(index-1) * elm_config_scale_get()); evas_object_show(genlist); elm_box_pack_end(box, genlist); + elm_object_part_content_set(layout, "elm.swallow.content" , box); elm_object_content_set(popup, box); //elm_object_content_set(popup, genlist); @@ -592,9 +675,101 @@ Evas_Object *ivug_radio_popoup_show(Evas_Object *parent, char *title, iv_popup->obj = radio_main; iv_popup->selected_index = selected_index; + eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, _on_btn_back_clicked, iv_popup); + evas_object_show(popup); return popup; } +Evas_Object *ivug_progress_popup_show(Evas_Object *parent, char *title_id, + Evas_Smart_Cb response, void *data) +{ + Evas_Object *popup = NULL; + + Ivug_Popup *iv_popup = ivug_popup_create(); + if (iv_popup == NULL) { + MSG_IMAGEVIEW_ERROR("ivug_popup_create ERROR"); + return NULL; + } + + popup = elm_popup_add(parent); + evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(popup, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_smart_callback_add(popup, "block,clicked", _block_clicked_cb, iv_popup); + ivug_elm_object_part_text_set(gGetLanguageHandle(), popup, "title,text", title_id); + + Evas_Object *progressbar = elm_progressbar_add(parent); + elm_object_style_set(progressbar, "list_title_progress"); + elm_progressbar_horizontal_set(progressbar, EINA_TRUE); + evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_progressbar_unit_format_set(progressbar, NULL); + evas_object_show(progressbar); + + elm_object_content_set(popup, progressbar); + + evas_object_data_set(popup, "pbar", (void *)progressbar); + + Evas_Object *btn_cancel = ivug_button_add(popup, "popup_button/default", gGetLanguageHandle(), IDS_CANCEL, NULL, _on_popup_response, iv_popup); + elm_object_part_content_set(popup, "button1", btn_cancel); + evas_object_data_set(btn_cancel, "response", (void *)POPUP_RESPONSE_OK); + + evas_object_show(popup); + + iv_popup->popup = popup; + iv_popup->callback = response; + iv_popup->data = data; + iv_popup->obj = progressbar; + + eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, _on_btn_back_clicked, iv_popup); + + return popup; +} + +Evas_Object *ivug_processing_popup_show(Evas_Object *parent) +{ + Evas_Object *popup; + Evas_Object *progressbar; + + Evas_Object *layout; + Evas_Object *label; + + popup = elm_popup_add(parent); + eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, _on_btn_back_progressing_clicked, NULL); + label = elm_label_add(popup); + elm_object_style_set(label, "popup/default"); + elm_label_line_wrap_set(label, ELM_WRAP_MIXED); + + char buf[128]; + + snprintf(buf, 128, "%s", IDS_PROCESSING); + + elm_object_text_set(label, buf); + evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(label, 0.5, EVAS_HINT_FILL); + evas_object_show(label); + + layout = elm_layout_add(popup); + elm_layout_file_set(layout, IVUG_POPUP_EDJ_NAME, "popup_processingview_1button"); + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + + progressbar = elm_progressbar_add(popup); + elm_progressbar_pulse(progressbar, EINA_TRUE); + elm_object_style_set(progressbar, "list_process"); + elm_progressbar_horizontal_set(progressbar, EINA_TRUE); + evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(progressbar); + + elm_object_part_content_set(layout, "elm.swallow.content", progressbar); + elm_object_part_content_set(layout, "elm.swallow.text", label); + + elm_object_content_set(popup, layout); + evas_object_show(popup); + + return popup; +} + + diff --git a/main/src/control/ivug-popup.h b/main/src/popup/ivug-popup.h similarity index 52% rename from main/src/control/ivug-popup.h rename to main/src/popup/ivug-popup.h index f500d48..af06e0f 100755 --- a/main/src/control/ivug-popup.h +++ b/main/src/popup/ivug-popup.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_POPUP_H__ #define __IVUG_POPUP_H__ @@ -25,7 +26,6 @@ typedef enum _Popup_Response POPUP_RESPONSE_TIMEOUT = -2, POPUP_RESPONSE_OK = -3, POPUP_RESPONSE_CANCEL = -4, - POPUP_RESPONSE_CLOSE = -5 }Popup_Response; typedef enum _Longpress_Popup_Response @@ -41,6 +41,9 @@ typedef enum _Longpress_Popup_Response extern "C" { #endif +Evas_Object* +ivug_popup_add(Evas_Object* parent, const char* title_id); + /* Create & show popup with 2 button (Yes/No) */ @@ -49,10 +52,12 @@ Evas_Object* ivug_2btn_popup_show(Evas_Object* parent, const char* title, /* Create & show popup with no button. + TODO : Rename function */ Evas_Object *ivug_timeout_popup_show(Evas_Object *parent, Evas_Smart_Cb response, void *data, const char *sztitle, const char *content); + Evas_Object* ivug_deletepopup_show(Evas_Object* parent, const char* title, const char* contents, Evas_Smart_Cb response, void* user_data); @@ -61,18 +66,26 @@ ivug_deletepopup_show(Evas_Object* parent, const char* title, /* Create show copy popup in coordinate (x,y) */ -Evas_Object* ivug_longpress_popup_show(Evas_Object *parent, int x, int y, Evas_Smart_Cb response, void *data); - +Evas_Object* ivug_longpress_popup_show(Evas_Object *parent, int x, int y, bool bUseExtMenu, Evas_Smart_Cb response, void *data); Evas_Object* ivug_deletepopup_show(Evas_Object* parent, const char* title, const char* contents, Evas_Smart_Cb response, void* user_data); Evas_Object *ivug_rename_popup_show(Evas_Object *parent, const char *filename, Evas_Smart_Cb response, void *data); -Evas_Object *ivug_radio_popoup_show(Evas_Object *parent, char *title, +Evas_Object *ivug_radio_popoup_show(Evas_Object *parent, const char *title, int selected_index, Eina_List *name_list, Evas_Smart_Cb response, void *data); +Evas_Object *ivug_progress_popup_show(Evas_Object *parent, char *title_id, + Evas_Smart_Cb response, void *data); + +Evas_Object *ivug_tag_buddy_access_popup_show(Evas_Object *parent, Evas_Smart_Cb check_response, + Evas_Smart_Cb response, void *data); + +Evas_Object *ivug_nearby_popup_show(Evas_Object *parent, Evas_Smart_Cb check_response, bool state, + Evas_Smart_Cb response, void *data); +Evas_Object *ivug_processing_popup_show(Evas_Object *parent); #ifdef __cplusplus } diff --git a/main/src/slider/ivug-slider-item.cpp b/main/src/slider/ivug-slider-item.cpp deleted file mode 100755 index b03ea46..0000000 --- a/main/src/slider/ivug-slider-item.cpp +++ /dev/null @@ -1,1223 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ivug-common.h" - -#include "EFLUtil.h" - -#include "ivug-slider-item.h" - -#include "ivug-image.h" - -#include "ivug-drm-common.h" - -#include "ivug-config.h" - -#define DEFAULT_THUMBNAIL_PATH IMAGE_PATH"/T01_Nocontents_broken.png" -#define DRM_NO_RIGHT_IMAGE_PATH IMAGE_PATH"/image_drm_no_rights.jpg" - -#define IVUG_SLIDER_EDJ EDJ_PATH"/ivug-slider.edj" - -#define USE_VIDEO_THUMBNAIL - - -/* - Determine whether LIL(Large image layer) loads or not. - - if define this feature, slider does not try to load image. only thumbnail is shown. -*/ -#undef DISABLE_LIL_LOADING - -/* - Use elm_icon istead of elm_image. elm_icon preserve image ratio. and seems more faster. -*/ - -static bool -_show_thumbnail( Slide_Item* si, const char *filepath) -{ - IV_ASSERT(si != NULL); - - if (si->thumbnail == NULL) - { - MSG_SITEM_FATAL("slide item or thumbnail object is NULL"); - return false; - } - - if ( filepath == NULL ) - { - MSG_SITEM_ERROR("thumbnail path is not exist"); - return false; - } - - MSG_SITEM_MED("Set thumbnail : %s", ivug_get_filename(filepath)); - - if (ivug_is_file_exist(filepath) == false ) - { - MSG_SITEM_ERROR("Cannot find thumbnail : %s", filepath); - filepath = DEFAULT_THUMBNAIL_PATH; - } - - if (elm_image_file_set(si->thumbnail, filepath, NULL) == EINA_FALSE) - { - MSG_SITEM_ERROR("Cannot load thumbnail : %s", filepath); - return false; - } - - int iw, ih; - - elm_image_object_size_get(si->thumbnail , &iw, &ih); - - evas_object_repeat_events_set(si->thumbnail, EINA_FALSE); - edje_object_signal_emit(_EDJ(si->layout), "elm,state,show_thumbnail", "slider"); - - MSG_SITEM_HIGH("Set thumbnail(%dx%d). %s", iw, ih, ivug_get_filename(filepath)); - -#ifdef _DEBUG - int bx, by, bw, bh; - evas_object_geometry_get(si->layout, &bx, &by, &bw, &bh); - - MSG_SITEM_MED("EDJE Geomtetry(%d,%d,%d,%d)", bx, by, bw, bh); -#endif - - return true; -} - -static bool -_hide_thumbnail(Slide_Item* si) -{ - IV_ASSERT(si != NULL); - - evas_object_repeat_events_set(si->thumbnail, EINA_TRUE); - - edje_object_signal_emit(_EDJ(si->layout), "elm,state,hide_thumbnail", "slider"); - - return true; -} - -static void _show_progressbar(Slide_Item *si) -{ - IV_ASSERT(si != NULL); - - if ( si->progress == NULL ) - { - //set progress - PERF_CHECK_BEGIN(LVL6, "set progress"); - - PERF_CHECK_BEGIN(LVL7, "elm_progressbar_add"); - si->progress = elm_progressbar_add(si->layout); - PERF_CHECK_END(LVL7, "elm_progressbar_add"); - - IV_ASSERT(si->progress != NULL); - - PERF_CHECK_BEGIN(LVL7, "set style"); - elm_object_style_set(si->progress, "list_process"); - PERF_CHECK_END(LVL7, "set style"); - - PERF_CHECK_BEGIN(LVL7, "set pulse"); - elm_progressbar_pulse(si->progress, EINA_FALSE); - PERF_CHECK_END(LVL7, "set pulse"); - - PERF_CHECK_BEGIN(LVL7, "swallow progress"); - elm_object_part_content_set(si->layout, "slider.progress", si->progress); - PERF_CHECK_END(LVL7, "swallow progress"); - - PERF_CHECK_END(LVL6, "set progress"); - } - - elm_progressbar_pulse(si->progress, EINA_TRUE); //start pulse. - - edje_object_signal_emit(_EDJ(si->layout), "elm,state,show,progress", "slider"); -} - -static void _hide_progressbar(Slide_Item *si) -{ - IV_ASSERT(si != NULL); - - if ( si->progress ) - { - elm_progressbar_pulse(si->progress, EINA_FALSE); //stop pulse. - } - edje_object_signal_emit(_EDJ(si->layout), "elm,state,hide,progress", "slider"); -} - - -static void _show_videoicon(Slide_Item *si) -{ - IV_ASSERT(si != NULL); - - edje_object_signal_emit(_EDJ(si->layout), "elm,state,show_icon", "slider"); // Hide video play icon -} - -static void _hide_videoicon(Slide_Item *si) -{ - IV_ASSERT(si != NULL); - - edje_object_signal_emit(_EDJ(si->layout), "elm,state,hide_icon", "slider"); // Hide video play icon - -// edje_object_signal_emit((si->layout), "elm,state,hide_icon", "slider"); // Hide video play icon -} - -static sitem_type_t _get_sitem_type(Media_Type mtype) -{ - switch(mtype) - { - case SLIDE_TYPE_IMAGE: - return SITEM_TYPE_IMAGE; - - case SLIDE_TYPE_VIDEO: - return SITEM_TYPE_VIDEO; - - case SLIDE_TYPE_NONE: - case SLIDE_TYPE_UNKNOWN: - default: - return SITEM_TYPE_UNKNOWN; - } - - return SITEM_TYPE_UNKNOWN; -} - -static char *_get_file_name(Slide_Item* si) -{ - Media_Data *mdata = ivug_medialist_get_data(si->mitem); - - if ( mdata == NULL ) - { - return NULL; - } - - return ivug_get_filename(mdata->filepath); -} - - -static bool _set_mitem(Slide_Item* si, Media_Item *item) -{ - Media_Data *mdata = ivug_medialist_get_data(item); - IV_ASSERT(mdata != NULL); - - si->mitem = item; - - si->type = _get_sitem_type(mdata->slide_type); - - if ( si->type == SITEM_TYPE_IMAGE ) - { - _hide_videoicon(si); - elm_object_part_content_set(si->layout, "slider.contents", si->photocam); - } - else if ( si->type == SITEM_TYPE_VIDEO ) - { - _show_thumbnail(si, mdata->thumbnail_path); - elm_image_file_set(si->vIcon, EDJ_PATH"/ivug-icons.edj", "btn.video.play"); - _show_videoicon(si); - } - else - { - MSG_SITEM_WARN("Unknown type : %s", ivug_get_filename(mdata->filepath)); - _hide_videoicon(si); - } - - switch(mdata->slide_type) - { - case SLIDE_TYPE_IMAGE: - MSG_SITEM_HIGH("Set image. %s", ivug_get_filename(mdata->filepath)); - - if(mdata->bIsDRMContent == EINA_FALSE) - { - si->state = SLIDE_STATE_READY; - } - else - { - si->state = SLIDE_STATE_DRM_CHECKING; - } - break; - - case SLIDE_TYPE_VIDEO: - MSG_SITEM_HIGH("Set video. %s", ivug_get_filename(mdata->filepath)); - - si->state = SLIDE_STATE_READY; // Video dont need to load photocam - break; - - case SLIDE_TYPE_UNKNOWN: - MSG_SITEM_ERROR("Unknown image. %s", ivug_get_filename(mdata->filepath)); - - si->state = SLIDE_STATE_ERROR; - - break; - - default: - MSG_SITEM_ERROR("slide type invaild. Type=%d", mdata->slide_type); - si->state = SLIDE_STATE_ERROR; - return true; - break; - - } - - return true; -} - - -static bool _unset_mitem(Slide_Item* si) -{ -// Unswallow photocam - elm_object_part_content_unset(si->layout, "slider.contents"); - - switch(si->type) - { - case SITEM_TYPE_IMAGE: - evas_object_hide(si->photocam); - ivug_image_unset(si->photocam); //init photocam. - break; - case SITEM_TYPE_VIDEO: - break; - default: - break; - } - - si->state = SLIDE_STATE_NONE; - -// Resetting GUI - _hide_progressbar(si); - _hide_thumbnail(si); - _hide_videoicon(si); - - si->type = SITEM_TYPE_UNKNOWN; - si->mitem = NULL; - - MSG_SITEM_HIGH("Slider Item is cleared."); - - return true; -} - - - -inline -void _call_user_callback(Slide_Item* si) -{ - if ( si->cb ) - { - (si->cb)(si->state, si, si->client_data); - } -} - - -static void -_photocam_loaded_cb(void *data, Evas_Object *obj, void *event_info) -{ - IV_ASSERT(data != NULL); - - Slide_Item* si = static_cast(data); - -//hide progress. - _hide_progressbar(si); - - if ( si->mitem == NULL) - { - MSG_SITEM_ERROR("Debug Me! Data item is NULL."); - return; - } - - Media_Data* mdata = ivug_medialist_get_data(si->mitem); - if(mdata == NULL) - { - MSG_SITEM_ERROR("ivug_medialist_get_data failed."); - si->state = SLIDE_STATE_ERROR; - return; - } - - if ( si->state != SLIDE_STATE_LOADING ) - { - // can be STATE_ERROR, STATE_NO_RIGHT - MSG_SITEM_ERROR("Invalid slide state. %s", ivug_get_filename(mdata->filepath)); - MSG_SITEM_ERROR("state=%d %s (%d,%d,%d,%d)", si->state, mdata->filepath, si->x, si->y, si->w, si->h); - } - -#if 0 - typedef enum _Evas_Load_Error - { - EVAS_LOAD_ERROR_NONE = 0, /**< No error on load */ - EVAS_LOAD_ERROR_GENERIC = 1, /**< A non-specific error occurred */ - EVAS_LOAD_ERROR_DOES_NOT_EXIST = 2, /**< File (or file path) does not exist */ - EVAS_LOAD_ERROR_PERMISSION_DENIED = 3, /**< Permission deinied to an existing file (or path) */ - EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED = 4, /**< Allocation of resources failure prevented load */ - EVAS_LOAD_ERROR_CORRUPT_FILE = 5, /**< File corrupt (but was detected as a known format) */ - EVAS_LOAD_ERROR_UNKNOWN_FORMAT = 6 /**< File is not a known format */ - } Evas_Load_Error; /**< Load error you can get from loading of files - see evas_load_error_str() too */ -#endif - - Evas_Load_Error error = static_cast(reinterpret_cast(event_info)); -// Evas_Load_Error error = evas_object_image_load_error_get(ivug_image_internal_image_get(si->photocam)); - - if ( error != EVAS_LOAD_ERROR_NONE ) - { - MSG_SITEM_ERROR("Image loading failed. Error=%d File=%s", error, mdata->filepath); - si->state = SLIDE_STATE_ERROR; - - evas_object_hide(si->photocam); - - if ( error == EVAS_LOAD_ERROR_PERMISSION_DENIED) - { - _show_thumbnail(si, DRM_NO_RIGHT_IMAGE_PATH); - } - else - { - _show_thumbnail(si, DEFAULT_THUMBNAIL_PATH); - } - - _call_user_callback(si); - - return ; - } - - si->state = SLIDE_STATE_LOADED; - - int w, h; - - ivug_image_image_size_get(si->photocam, &w, &h); - - if (mdata->slide_type == SLIDE_TYPE_VIDEO) //if slide type is video, - { - MSG_SITEM_FATAL("slide type is video. thumbnail image "); - return; - } - - evas_object_show(obj); //photocam show. - - _call_user_callback(si); - - MSG_SITEM_HIGH("Photocam Pre-loaded. File=%s", ivug_get_filename(mdata->filepath)); -} - -static void _on_event_mouse_down(void *data, Evas *evas, Evas_Object *obj, void *event_info) -{ - MSG_SITEM_HIGH("Event layer clicked : %s Layer=%d", evas_object_name_get(obj), evas_object_layer_get(obj)); -} - - -Slide_Item* -ivug_slider_item_add(Evas_Object *slider) -{ - Slide_Item* si = NULL; - - PERF_CHECK_BEGIN(LVL6, "init variable"); - - //create item - si = (Slide_Item*)calloc(1, sizeof (Slide_Item)); - - if ( si == NULL ) - { - MSG_SITEM_FATAL("Cannot allocated memory : %d.", sizeof (Slide_Item)); - return NULL; - } - - si->state = SLIDE_STATE_NONE; //set slide state - si->type = SITEM_TYPE_UNKNOWN; - - PERF_CHECK_END(LVL6, "init variable"); - -//Create the slider item layout - PERF_CHECK_BEGIN(LVL6, "create slider item layout"); - - Evas_Object *layout = EFL::create_layout(slider, IVUG_SLIDER_EDJ, "slider"); - if(layout == NULL) - { - MSG_SITEM_ERROR("Cannot load file : %s", IVUG_SLIDER_EDJ); - free(si); - return NULL; - } - - evas_object_name_set(layout, "Slider item edj"); - evas_object_event_callback_add(layout, EVAS_CALLBACK_MOUSE_DOWN, _on_event_mouse_down, NULL); - - si->layout = layout; - - PERF_CHECK_END(LVL6, "create slider item layout"); - -//set thumbnail. - PERF_CHECK_BEGIN(LVL6, "set thumbnail"); - - si->thumbnail = elm_icon_add(slider); - evas_object_name_set(si->thumbnail, "Thumbnail"); - elm_image_resizable_set(si->thumbnail, EINA_TRUE, EINA_TRUE); - elm_image_preload_disabled_set(si->thumbnail, EINA_FALSE); - - evas_object_event_callback_add(si->thumbnail, EVAS_CALLBACK_MOUSE_DOWN, _on_event_mouse_down, NULL); - - elm_object_part_content_set(si->layout, "slider.thumbnail", si->thumbnail); - - PERF_CHECK_END(LVL6, "set thumbnail"); - -//Add the photocam - PERF_CHECK_BEGIN(LVL6, "ivug_image_create"); - - si->photocam = ivug_image_create(si->layout); - evas_object_name_set(si->photocam, "photocam"); - evas_object_smart_callback_add(si->photocam, "loaded", _photocam_loaded_cb, si); - - PERF_CHECK_END(LVL6, "ivug_image_create"); - - PERF_CHECK_BEGIN(LVL6, "video icon"); - -// z-order be decided along added order - si->vIcon = elm_icon_add(slider); - elm_image_file_set(si->vIcon, EDJ_PATH"/ivug-icons.edj", "btn.video.play"); - - evas_object_name_set(si->vIcon, "video icon"); - evas_object_event_callback_add(si->vIcon, EVAS_CALLBACK_MOUSE_DOWN, _on_event_mouse_down, NULL); - - elm_object_part_content_set(si->layout, "slider.icon", si->vIcon); - PERF_CHECK_END(LVL6, "video icon"); - - si->bMenuVisible = true; // Default visibility is true - - evas_object_smart_member_add(si->layout, slider); - - int bx, by, bw, bh; - evas_object_geometry_get(si->layout, &bx, &by, &bw, &bh); - - MSG_SITEM_HIGH("Creating sitem(0x%08x): (%d,%d,%d,%d)", si, bx, by, bw, bh); - - return si; -} - - -void -ivug_slider_item_resize(Slide_Item* si, int w, int h) -{ - IV_ASSERT(si != NULL ); - - if ( si->w == w && si->h == h ) return; - MSG_SITEM_HIGH("SLIDER Resize to XYWH(%d,%d,%d,%d)", si->x, si->y, w, h ); - -// w,h is not Image's scale, but Object's scale - si->w = w; - si->h = h; - -// MSG_SITEM_HIGH("resize layout: %d, %d", si->w, si->h); - evas_object_resize(si->layout, si->w, si->h); - -} - - -void ivug_slider_item_move(Slide_Item* si, int x, int y) -{ - IV_ASSERT(si != NULL ); - - MSG_SITEM_MED("SLIDER Move to XYWH(%d,%d,%d,%d)", x, y, si->w, si->h ); - - if ( si->x == x && si->y == y) return; - - //photocam - si->x = x; - si->y = y; - - if ( si->w == 0 || si->h == 0) return; - - evas_object_move(si->layout, x, y); - -// Center align -// evas_object_move(); -// si->vIcon - -} - -void ivug_slider_item_del(Slide_Item* si) -{ - IV_ASSERT(si != NULL ); - - MSG_SITEM_HIGH("Removing Slider Item"); - - ivug_slider_item_stop(si); - - si->mitem = NULL; // for error handling - - if (si->photocam) - { - evas_object_del(si->photocam); - si->photocam = NULL; - } - - if (si->thumbnail) - { - evas_object_del(si->thumbnail); - si->thumbnail = NULL; - } - - if (si->progress) - { - evas_object_del(si->progress); - si->progress = NULL; - } - - if(si->layout) - { - evas_object_del(si->layout); - si->layout = NULL; - } - - if ( si->vIcon ) - { - evas_object_del(si->vIcon); - si->vIcon = NULL; - } - - free(si); - - si = NULL; - - MSG_SITEM_HIGH("Removed Slider Item"); - -} - -void ivug_slider_item_hide(Slide_Item* si) -{ - IV_ASSERT(si != NULL ); - - MSG_SITEM_HIGH("Hide slide item"); - evas_object_hide(si->layout); -} - - -void ivug_slider_item_show(Slide_Item* si) -{ - IV_ASSERT(si != NULL ); - - MSG_SITEM_HIGH("Show slide item"); - evas_object_show(si->layout); -} - - -void -ivug_slider_item_clip_set(Slide_Item* si, Evas_Object *clipper) -{ - IV_ASSERT(si != NULL ); -// no need to check layout is NULL - int x, y, w, h; - - evas_object_geometry_get(clipper, &x, &y, &w, &h); - - MSG_SITEM_MED("SItem clip SET!! Geometry(%d,%d,%d,%d)", x, y, w, h); - - evas_object_clip_set(si->layout, clipper); -// evas_object_clip_set(si->photocam, clipper); -} - -void -ivug_slider_item_clip_unset(Slide_Item* si) -{ - IV_ASSERT(si != NULL ); -// no need to check layout is NULL - evas_object_clip_unset(si->layout); -// evas_object_clip_unset(si->photocam); -} - -bool -ivug_slider_item_data_set(Slide_Item* si, Media_Item *item) -{ - IV_ASSERT(si != NULL ); - - MSG_SITEM_HIGH("Data set. Item(0x%08x)", item); - - if ( item == NULL ) - { - if ( si->state == SLIDE_STATE_NONE ) - { - MSG_SITEM_WARN("Slide item is already cleared. just return. Mitem=0x%08x", si->mitem); - return true; - } - - MSG_SITEM_WARN("Set data NULL : %s", _get_file_name(si)); - _unset_mitem(si); - } - else - { - if ( si->state != SLIDE_STATE_NONE ) - { - MSG_SITEM_WARN("State is %d. Remove old : %s", si->state, _get_file_name(si)); - _unset_mitem(si); - } - - _set_mitem(si, item); - } - - return true; -} - - -#ifdef DISABLE_LIL_LOADING -Eina_Bool _signal_send_idler(void *data) -{ - Slide_Item *si = (Slide_Item *)data; - - _call_user_callback(si); - - return EINA_FALSE; -} -#endif - - -// Ready to Loading -bool -ivug_slider_item_load(Slide_Item *si) -{ - IV_ASSERT(si != NULL); - - if (si->state != SLIDE_STATE_READY) - { - MSG_SITEM_ERROR("Invalid state : %d", si->state); - return false; - } - - Media_Data *mdata = ivug_medialist_get_data(si->mitem); - IV_ASSERT(mdata != NULL); - - if(mdata->filepath == NULL) - { - MSG_SITEM_ERROR("file path is NULL"); - return false; - } - - MSG_SITEM_HIGH("Load file. %s", ivug_get_filename(mdata->filepath)); - - char path[IVUG_MAX_FILE_PATH_LEN] = {0,}; - - { - strncpy(path, mdata->filepath, sizeof(path)); - } - - -#ifdef DISABLE_LIL_LOADING - // For debugging - si->state = SLIDE_STATE_LOADED; - - ecore_idler_add(_signal_send_idler, si); - - return true; -#endif - - switch(mdata->slide_type) - { - case SLIDE_TYPE_IMAGE: - { - si->state = SLIDE_STATE_LOADING; - - if (ivug_image_file_set(si->photocam, path, NULL) != EVAS_LOAD_ERROR_NONE) - { - MSG_SITEM_ERROR("Failed photocam to set file file=%s", path); - si->state = SLIDE_STATE_ERROR; - - _show_thumbnail(si, DEFAULT_THUMBNAIL_PATH); - - _call_user_callback(si); - return false; - } - - return true; - - } - break; - case SLIDE_TYPE_VIDEO: - { - si->state = SLIDE_STATE_LOADED; - } - - break; - - default: - MSG_SITEM_ERROR("slide type invaild. Type=%d", mdata->slide_type); - return false; - break; - } - - return true; -} - -void ivug_slider_item_play(Slide_Item* si) -{ - IV_ASSERT(si != NULL ); - - Media_Data *mdata = ivug_medialist_get_data(si->mitem); - if(mdata == NULL) - { - MSG_SITEM_ERROR("current data is NULL"); - return; - } - - MSG_SITEM_HIGH("Start sitem. Type(%d) State(%d) %s", si->type, si->state, mdata->filepath); - - if ( si->state != SLIDE_STATE_LOADED ) - { - MSG_SITEM_ERROR("Play. but state is %d", si->state); - } - -// Start animation - if ( si->type == SITEM_TYPE_IMAGE ) - { - ivug_image_animated_set(si->photocam, EINA_TRUE); - } -} - -void ivug_slider_item_stop(Slide_Item* si) -{ - IV_ASSERT(si != NULL ); - - if ( si->state != SLIDE_STATE_LOADED ) - { - // When very first/last image and invalid - return; - } - - Media_Data *mdata = ivug_medialist_get_data(si->mitem); - MSG_SITEM_HIGH("Stop sitem. %s", mdata->filepath); - - if (si->type == SITEM_TYPE_VIDEO) - { - ; - } - else if ( si->type == SITEM_TYPE_IMAGE ) - { - ivug_image_animated_set(si->photocam, EINA_FALSE); - } -} - - -void ivug_slider_item_pause(Slide_Item* si) -{ - IV_ASSERT(si != NULL ); - - if ( si->state != SLIDE_STATE_LOADED ) - { - // When very first/last image and invalid - return; - } - - Media_Data *mdata = ivug_medialist_get_data(si->mitem); - MSG_SITEM_HIGH("Pause sitem. %s", mdata->filepath); - - if (si->type == SITEM_TYPE_VIDEO) - { - // Reset state. - } - else if ( si->type == SITEM_TYPE_IMAGE ) - { - ivug_image_animated_set(si->photocam, EINA_FALSE); - } -} - -void ivug_slider_item_resume(Slide_Item* si) -{ - IV_ASSERT(si != NULL ); - - if ( si->state != SLIDE_STATE_LOADED ) - { - // When very first/last image and invalid - return; - } - - Media_Data *mdata = ivug_medialist_get_data(si->mitem); - MSG_SITEM_HIGH("Resume sitem. %s", mdata->filepath); - - if (si->type == SITEM_TYPE_IMAGE) - { - ivug_image_animated_set(si->photocam, EINA_TRUE); - } - else if (si->type == SITEM_TYPE_VIDEO) - { - } -} - -bool -ivug_slider_item_set_callback(Slide_Item* si, OnSliderStateChanged cb, void *data) -{ - IV_ASSERT(si != NULL ); - - si->cb = cb; - si->client_data = data; - - return true; -} - - -const Media_Item * -ivug_slider_item_data_get(Slide_Item *si) -{ - IV_ASSERT(si != NULL); - - return si->mitem; -} - -// Photocam -bool -ivug_slider_item_region_size_get(Slide_Item* si, int *x, int *y, int *w, int *h) -{ - IV_ASSERT(si != NULL ); - - if ( si->mitem == NULL) - { - MSG_SITEM_ERROR("Debug Me! Data item is NULL."); - return false; - } - - Media_Data *mdata = ivug_medialist_get_data(si->mitem); - - if ( mdata == NULL ) - { - MSG_SITEM_ERROR("slide type is NULL. Item=0x%08x", si); - return false; - } - - switch(si->type) - { - case SITEM_TYPE_IMAGE: - { - ivug_image_region_get(si->photocam, x, y, w, h); - } - break; - - case SITEM_TYPE_VIDEO: - { - { - return false; - } - } - break; - - case SITEM_TYPE_UNKNOWN: - return false; - break; - - default: - MSG_SITEM_ERROR("Unknwon type: %d", si->type); - return false; - break; - } - - return true; -} - - - -void -ivug_slider_item_hold_set(Slide_Item* si, Eina_Bool hold) -{ - IV_ASSERT(si != NULL ); - - switch(si->type) - { - case SITEM_TYPE_IMAGE: - { - ivug_image_hold_set(si->photocam, hold); - } - break; - - case SITEM_TYPE_VIDEO: - { - - } - break; - - case SITEM_TYPE_UNKNOWN: - default: - MSG_SITEM_ERROR("Unknwon type: %d", si->type); - break; - } - - -} - - -void -ivug_slider_item_zoom_reset(Slide_Item* si, Eina_Bool bAnim, int center_x, int center_y) -{ - IV_ASSERT(si != NULL ); - - switch(si->type) - { - case SITEM_TYPE_IMAGE: - { - Evas_Point pt; - - pt.x = center_x; - pt.y = center_y; - - ivug_image_zoom_reset(si->photocam, &pt); - } - break; - - case SITEM_TYPE_VIDEO: - { - - } - break; - - case SITEM_TYPE_UNKNOWN: - break; - - default: - MSG_SITEM_ERROR("Unknwon type: %d", si->type); - break; - - } - -} - - -void -ivug_slider_item_zoom_set(Slide_Item* si, double zoom, int center_x, int center_y) -{ - IV_ASSERT(si != NULL ); - - switch(si->type) - { - case SITEM_TYPE_IMAGE: - { - Evas_Point Center; - - Center.x = center_x; - Center.y = center_y; - ivug_image_zoom_set(si->photocam, zoom, &Center); - - } - break; - - case SITEM_TYPE_VIDEO: - break; - - case SITEM_TYPE_UNKNOWN: - break; - - default: - MSG_SITEM_ERROR("Unknwon type: %d", si->type); - break; - - } - -} - -double -ivug_slider_item_zoom_get(Slide_Item* si) -{ - IV_ASSERT(si != NULL ); - - double ret = 1.0; - - switch(si->type) - { - case SITEM_TYPE_IMAGE: - { - ret = ivug_image_zoom_get(si->photocam); - } - break; - - case SITEM_TYPE_VIDEO: - break; - - case SITEM_TYPE_UNKNOWN: - break; - - default: - MSG_SITEM_ERROR("Unknwon type: %d", si->type); - break; - - } - - - return ret; -} - - -bool -ivug_slider_item_icon_click_check(Slide_Item *si, int x, int y) -{ - MSG_SITEM_HIGH("Check play icon clicked. SI=0x%08x, XY(%d,%d)", si, x, y); - - IV_ASSERT(si != NULL ); - - Media_Data *mdata = ivug_medialist_get_data(si->mitem); - - if ( mdata == NULL ) - { - MSG_SITEM_ERROR("Debug Me! Data item is NULL."); - return false; - } - - if ( mdata->slide_type == SLIDE_TYPE_VIDEO ) - { - if (si->vIcon) - { - Evas_Coord ix,iy,iw,ih; - - evas_object_geometry_get(si->vIcon, &ix, &iy, &iw, &ih); - - bool bInside = !( (x) > (ix + iw) || (x) < (ix) - || (y) > (iy + iw) || (y) < (iy) ); - - MSG_SITEM_HIGH("Item XYWH(%d,%d,%d,%d) XY(%d,%d) bInside=%d", ix,iy,iw,ih, x, y, bInside); - - return bInside; - } - } - - MSG_SITEM_HIGH("Slide type = %d", mdata->slide_type); - return false; -} - -drm_data_t * ivug_slider_item_check_drm_constraint(Slide_Item *si) -{ - IV_ASSERT(si != NULL); - - Media_Data *mdata = ivug_medialist_get_data(si->mitem); - if(mdata == NULL) - { - MSG_SLIDER_ERROR("mdata is NULL"); - return NULL; - } - - if(mdata->bIsDRMContent == EINA_FALSE) - { - MSG_SITEM_HIGH("It is not DRM file, path = %s", mdata->filepath); - return NULL; - } - - MSG_SITEM_HIGH("before check valid"); - if(ivug_drm_has_valid_ro(mdata->filepath) == 0) - { - MSG_SITEM_HIGH("RO is invalid, path = %s", mdata->filepath); - si->state = SLIDE_STATE_ERROR; - _show_thumbnail(si, DRM_NO_RIGHT_IMAGE_PATH); - evas_object_smart_callback_call(si->photocam, "loaded", (void *)EVAS_LOAD_ERROR_PERMISSION_DENIED); - //for lauch WAP purchase page - drm_data_t *result = (drm_data_t *)calloc(1, sizeof(drm_data_t)); - result->constraints = IVUG_DRM_RESULT_LIMITED; - result->data = -1; - return result; - } - MSG_SITEM_HIGH("RO is valid, path = %s", mdata->filepath); - - return ivug_drm_check_constraint(mdata->filepath); -} - - - -bool -ivug_slider_item_image_rotate_set(Slide_Item *si, int angle) -{ - IV_ASSERT(si != NULL); - - ivug_image_rotate_set(si->photocam, ( (ivug_image_rotate_get(si->photocam) - angle) % 360 )); - - return true; -} - - -// Video specific APIs - -void ivug_slider_item_video_play(Slide_Item* si) -{ - IV_ASSERT(si != NULL ); - - MSG_SITEM_HIGH("Start Video play"); - - if (si->type == SITEM_TYPE_VIDEO) - { - - } - -} - - -void ivug_slider_item_video_pause(Slide_Item* si) -{ - IV_ASSERT(si != NULL ); - - MSG_SITEM_HIGH("Pause Video play"); - - if (si->type == SITEM_TYPE_VIDEO) - { - - } -} - -void ivug_slider_item_hide_menu(Slide_Item* si) -{ - IV_ASSERT(si != NULL ); - - MSG_SITEM_HIGH("Hide menu"); - - si->bMenuVisible = false; - -// Item is video and state is playing then hide paused icon - if (si->type == SITEM_TYPE_VIDEO) - { - _hide_videoicon(si); - } - -} - - -void ivug_slider_item_show_menu(Slide_Item* si) -{ - IV_ASSERT(si != NULL ); - - MSG_SITEM_HIGH("Show menu"); - - si->bMenuVisible = true; - -// Item is video and state is pause then show paused icon - if (si->type == SITEM_TYPE_VIDEO) - { - _show_videoicon(si); - } -} - -Evas_Object * -ivug_slider_item_image_get(Slide_Item* si) -{ - IV_ASSERT(si != NULL ); - - if ( (si->type == SITEM_TYPE_IMAGE) && (si->state == SLIDE_STATE_LOADED) ) - { - return ivug_image_internal_image_get(si->photocam); - } - - return NULL; - -} - - -void ivug_slider_item_image_size_get(Slide_Item* si, int *w, int *h) -{ - IV_ASSERT(si != NULL ); - - if ( (si->type == SITEM_TYPE_IMAGE) && (si->state == SLIDE_STATE_LOADED) ) - { - ivug_image_image_size_get(si->photocam, w, h); - } -} - -void ivug_slider_item_reload(Slide_Item* si) -{ - evas_object_del(si->photocam); - - si->photocam = ivug_image_create(si->layout); - evas_object_name_set(si->photocam, "photocam"); - evas_object_smart_callback_add(si->photocam, "loaded", _photocam_loaded_cb, si); - - elm_object_part_content_set(si->layout, "slider.contents", si->photocam); - - si->state = SLIDE_STATE_READY; - - ivug_slider_item_load(si); -} - diff --git a/main/src/slider/ivug-slider-mouse.cpp b/main/src/slider/ivug-slider-mouse.cpp deleted file mode 100755 index 69191fa..0000000 --- a/main/src/slider/ivug-slider-mouse.cpp +++ /dev/null @@ -1,928 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ivug-common.h" -#include "ivug-slider-item.h" -#include "ivug-slider.h" - -#include "ivug-slider-priv.h" -#include "ECoreAnimator.h" - -#define LOGNTAP_THRESHOLD (100) // allow moving distance(pixel) - -#define LOG_LVL DBG_MSG_LVL_HIGH -#define LOG_CAT "IV-SMOUSE" - - -void -_ivug_slider_pass_event_to_item(struct Smart_Data *sd, Eina_Bool bPass) -{ - sd->bPassEvent = bPass; - - if ( bPass == EINA_TRUE) - { - MSG_SLIDER_MED("Photocam can get Event"); - } - else - { - MSG_SLIDER_MED("Photocam can not get Event"); - } - - for (int i = 0; i < MAX_SLIDE; i++) - { - ivug_slider_item_hold_set(sd->slide[i], !bPass); - } -} - - -bool _ivug_slider_is_visible(struct Smart_Data *sd, Slide_Item* si) -{ - if ( si->x + si->w < 0 ) - { - return false; - } - - if ( si->x > sd->x + sd->w ) - { - return false; - } - - return true; -} - -#define _ivug_slider_edge_state_get(si) __ivug_slider_edge_state_get(si, __func__, __LINE__) - -slide_edge_t __ivug_slider_edge_state_get(Slide_Item *si, const char *func, int line) -{ - int nx, ny, nw, nh; - - slide_edge_t result = EDGE::SLIDE_NO_EDGE; - - if ( ivug_slider_item_region_size_get(si, &nx, &ny, &nw, &nh) == false) - { - // false means video file item. in this case, no photocam exists. - MSG_MED("[%s:%4d] Slide fit. Thumbnail only", func, line); - result = EDGE::SLIDE_FIT; - - return result; - } - else - { - if ( nw <= (si->w + IMAGE_SCROLL_MARGIN) && (nh <= si->h + IMAGE_SCROLL_MARGIN)) - { - MSG_MED("[%20s:%4d] Slide fit", func, line); - result = EDGE::SLIDE_FIT; - } - else - { - if ( nx >= si->x - IMAGE_MOVE_MARGIN) - { - MSG_MED("[%20s:%4d] image edge left. N(%d,%d) Si(%d,%d)", func, line, nx, nw, si->x, si->w); - - result = (result | EDGE::SLIDE_LEFT_EDGE); - } - - if ( nx + nw <= si->x + si->w + IMAGE_MOVE_MARGIN) - { //edge right - MSG_MED("[%20s:%4d] image edge right. N(%d,%d) Si(%d,%d)", func, line, nx, nw, si->x, si->w); - result = (result | EDGE::SLIDE_RIGHT_EDGE); - } -#ifdef ENABLE_Y_SCR - if ( ny >= si->y ) - { - MSG_MED("[%20s:%4d] image edge top", func, line); - result = (result | EDGE::SLIDE_TOP_EDGE); - } - - if ( ny + nh <= si->y + si->h) - { //edge right - MSG_MED("[%20s:%4d] image edge bottom", func, line); - result = (result | EDGE::SLIDE_BOTTOM_EDGE); - } -#endif - } - } - - if ( result == EDGE::SLIDE_NO_EDGE ) - { - MSG_MED("[%20s:%4d] image over screen. Edge=%d N(%d,%d,%d,%d) Si(%d,%d,%d,%d)", func, line, result, nx, ny, nw, nh, si->x, si->y, si->w, si->h); - } - - return result; -} - -void _put_originate(struct Smart_Data *sd, shift_direction_t dir, int momentum) -{ - if ( dir == SLIDE_SHIFT_TO_LEFT ) - { - if ( sd->slide[PREV_SLIDE]->state == SLIDE_STATE_NONE ) - { - dir = SLIDE_SHIFT_NONE; - } - - MSG_MED("Prev slide state : %d", sd->slide[NEXT_SLIDE]->state); - } - - if ( dir == SLIDE_SHIFT_TO_RIGHT ) - { - if ( sd->slide[NEXT_SLIDE]->state == SLIDE_STATE_NONE ) - { - dir = SLIDE_SHIFT_NONE; - } - - MSG_MED("Next slide state : %d", sd->slide[NEXT_SLIDE]->state); - } - - int src_x, dst_x; - - switch(dir) - { - case SLIDE_SHIFT_TO_LEFT: - src_x = sd->slide[CENTER_SLIDE]->x; - dst_x = sd->x + sd->slide[CENTER_SLIDE]->w + IMAGE_BETWEEN_MARGIN; - - MSG_HIGH("Scroll --->. Move from %d, %d", src_x, dst_x); - - _ivug_slider_start_slide(sd, src_x, dst_x, momentum); - break; - - case SLIDE_SHIFT_TO_RIGHT: - src_x = sd->slide[CENTER_SLIDE]->x; - dst_x = sd->x -sd->slide[CENTER_SLIDE]->w - IMAGE_BETWEEN_MARGIN; - - MSG_HIGH("Scroll <---. Move from %d, %d", src_x, dst_x); - - _ivug_slider_start_slide(sd, src_x, dst_x, momentum); - break; - - case SLIDE_SHIFT_NONE: - src_x = sd->slide[CENTER_SLIDE]->x; - dst_x = sd->x; - - MSG_HIGH("Scroll to center. Move from %d, %d", src_x , dst_x); - - if (src_x == dst_x ) - { - MSG_WARN("No need to animation"); - return ; - } - // Defaut velocity - _ivug_slider_start_slide(sd, src_x, dst_x, ANIN_VELOCITY); - - break; - } - -} - -shift_direction_t _get_shift_direction(struct Smart_Data *sd) -{ -#define SHIFT_THRESHOLD (0.0f) - - Slide_Item* si = sd->slide[CENTER_SLIDE]; - - if ( abs( si->x - sd->x ) < 10 ) - { - MSG_HIGH("Shift None. si->x=%d sd->x=%d", si->x, sd->x); - return SLIDE_SHIFT_NONE; - } - - if ( (si->x - sd->x) > sd->w * SHIFT_THRESHOLD ) - { - // Scroll to ---> - MSG_HIGH("Shift ---->. si->x=%d sd->x=%d", si->x, sd->x); - return SLIDE_SHIFT_TO_LEFT; - } - else if ((si->x - sd->x) + si->w < sd->w * (1.0f - SHIFT_THRESHOLD) ) - { - // Scroll to <--- - MSG_HIGH("Shift <----. si->x=%d sd->x=%d", si->x, sd->x); - return SLIDE_SHIFT_TO_RIGHT; - } - - return SLIDE_SHIFT_NONE; - -} - - -Evas_Event_Flags _zoom_start(void *data, void *event_info) -{ - Elm_Gesture_Zoom_Info *p = (Elm_Gesture_Zoom_Info *) event_info; - MSG_LOW("zoom start <%d,%d> <%f>", p->x, p->y, p->zoom); - - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get((Evas_Object *)data); - MSG_ASSERT(sd != NULL); - - Slide_Item* si = sd->slide[CENTER_SLIDE]; - - MSG_MED("%s MoveX=%d", __func__, si->x); - - sd->bZooming = false; - - if ( abs(si->x - sd->x) < IMAGE_MOVE_MARGIN) - { - _ivug_slider_slide_move(sd, 0, si->y); // Move to Center - _ivug_slider_pass_event_to_item(sd, EINA_TRUE); - sd->bZooming = true; - } - - return EVAS_EVENT_FLAG_NONE; -} - -Evas_Event_Flags _zoom_move(void *data, void *event_info) -{ - Elm_Gesture_Zoom_Info *p = (Elm_Gesture_Zoom_Info *) event_info; - MSG_LOW("zoom move <%d,%d> <%f>", p->x, p->y, p->zoom); - - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get((Evas_Object *)data); - MSG_ASSERT(sd != NULL); - - Slide_Item* si = sd->slide[CENTER_SLIDE]; - - if ( sd->bZooming == false ) return EVAS_EVENT_FLAG_NONE; - - MSG_MED("%s MoveX=%d", __func__, si->x); - - return EVAS_EVENT_FLAG_NONE; -} - -Evas_Event_Flags _zoom_end(void *data, void *event_info) -{ - Elm_Gesture_Zoom_Info *p = (Elm_Gesture_Zoom_Info *) event_info; - MSG_LOW("zoom end <%d,%d> <%f>", p->x, p->y, p->zoom); - - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get((Evas_Object *)data); - MSG_ASSERT(sd != NULL); - - Slide_Item* si = sd->slide[CENTER_SLIDE]; - - if ( sd->bZooming == false ) - { -// Flick image - shift_direction_t dir = _get_shift_direction(sd); - _put_originate(sd, dir, ANIN_VELOCITY); - - return EVAS_EVENT_FLAG_NONE; - } - - MSG_MED("%s. CenteSize WH(%d,%d)", __func__, si->w, si->h); // Si->w,h didnot change. after zoom - - sd->edge = _ivug_slider_edge_state_get(si); // Update Edge - - return EVAS_EVENT_FLAG_NONE; -} - -Evas_Event_Flags _zoom_abort(void *data, void *event_info) -{ - Elm_Gesture_Zoom_Info *p = (Elm_Gesture_Zoom_Info *) event_info; - MSG_LOW("zoom abort <%d,%d> <%f>", p->x, p->y, p->zoom); - - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get((Evas_Object *)data); - MSG_ASSERT(sd != NULL); - - Slide_Item* si = sd->slide[CENTER_SLIDE]; - - if ( sd->bZooming == false ) - { -// Flick image - shift_direction_t dir = _get_shift_direction(sd); - _put_originate(sd, dir, ANIN_VELOCITY); - - return EVAS_EVENT_FLAG_NONE; - } - - MSG_MED("%s. CenteSize WH(%d,%d)", __func__, si->w, si->h); // Si->w,h didnot change. after zoom - - sd->edge = _ivug_slider_edge_state_get(si); // Update Edge - - return EVAS_EVENT_FLAG_NONE; -} - -Evas_Event_Flags _momentum_start(void *data, void *event_info) -{ - Elm_Gesture_Momentum_Info *p = (Elm_Gesture_Momentum_Info *) event_info; - MSG_MED("momentum_start <%d,%d>", p->x2, p->y2); - - if ( p->n != 1 ) return EVAS_EVENT_FLAG_NONE; - - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get((Evas_Object *)data); - MSG_ASSERT(sd != NULL); - - Slide_Item* si = sd->slide[CENTER_SLIDE]; - -//save down position. - sd->prev_x = p->x2; - sd->prev_y = p->y2; - - sd->anim->Stop(); - -// Update Center!. - - sd->edge = _ivug_slider_edge_state_get(si); - - sd->bMomentumStarted = true; - - return EVAS_EVENT_FLAG_NONE; -} - -Evas_Event_Flags _momentum_move(void *data, void *event_info) -{ - Elm_Gesture_Momentum_Info *p = (Elm_Gesture_Momentum_Info *) event_info; - // _momentum_move is comming when pinch zoom - if ( p->n != 1 ) return EVAS_EVENT_FLAG_NONE; - - MSG_LOW("momentum move <%d,%d>, <%d,%d>, p->n=%d", p->x1, p->y1, p->x2, p->y2, p->n); - - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get((Evas_Object *)data); - MSG_ASSERT(sd != NULL); - - Slide_Item* si = sd->slide[CENTER_SLIDE]; - - int dist_down_x = p->x2 - p->x1; - int dist_down_y = p->y2 - p->y1; - - if(sqrt(dist_down_x*dist_down_x + dist_down_y*dist_down_y) > LOGNTAP_THRESHOLD) - { - MSG_LOW("Long press cancel"); - sd->bLongtapEnable = false; - } - - if(sd->bLongtapEnable == true) - { - int longtap_dx = p->x2 - sd->longtap_prev_x; - int longtap_dy = p->y2 - sd->longtap_prev_y; - - if(sqrt(longtap_dx*longtap_dx + longtap_dy*longtap_dy) > LOGNTAP_THRESHOLD) - { - MSG_LOW("Long press cancel"); - evas_object_smart_callback_call(sd->obj, "slider,longpress,end", (void*)LONGTAP_ENDED); - } - } - -// MSG_MED("%s. XY(%d,%d)", __func__, cur->x, cur->y); - if ( sd->edge == EDGE::SLIDE_NO_EDGE ) - { - MSG_HIGH("Photocam handle this event"); - return EVAS_EVENT_FLAG_NONE; - } - - int dx, dy; - - dx = p->x2 - sd->prev_x; - dy = p->y2 - sd->prev_y; - - if ( dx == 0 ) return EVAS_EVENT_FLAG_NONE; - - sd->prev_x = p->x2; - sd->prev_y = p->y2; - - int dst_x, dst_y; - - dst_x = si->x + (dx); - dst_y = si->y + (dy); - - if ( sd->edge == EDGE::SLIDE_FIT) - { - MSG_MED("Case 1. edge=%d, X=%d dx=%d si->x=%d", sd->edge, dst_x, dx, si->x); - _ivug_slider_pass_event_to_item(sd, EINA_FALSE); - - if ( dst_x >= 0 && sd->slide[PREV_SLIDE]->state == SLIDE_STATE_NONE) - { - MSG_HIGH("first file"); - dst_x = 0; - - // Update left shadow. - } - - if ( dst_x < 0 && sd->slide[NEXT_SLIDE]->state == SLIDE_STATE_NONE) - { - MSG_HIGH("last file"); - dst_x = 0; - } - - _ivug_slider_slide_move(sd, dst_x , si->y); - - return EVAS_EVENT_FLAG_NONE; - } - - if ( (si->x - sd->x) * (dst_x - sd->x) < 0 ) - { - MSG_MED("Case a. edge=%d, X=%d dx=%d si->x=%d", sd->edge, dst_x, dx, si->x); - - dst_x = 0; - _ivug_slider_pass_event_to_item(sd, EINA_TRUE); - _ivug_slider_slide_move(sd, dst_x , si->y); - - return EVAS_EVENT_FLAG_NONE; - } - - if ( si->x != sd->x ) - { - MSG_MED("Case 2. edge=%d, X=%d dx=%d si->x=%d", sd->edge, dst_x, dx, si->x); - - _ivug_slider_pass_event_to_item(sd, EINA_FALSE); - - if ( dst_x >= 0 && sd->slide[PREV_SLIDE]->state == SLIDE_STATE_NONE) - { - MSG_HIGH("first file"); - dst_x = 0; - } - - if ( dst_x < 0 && sd->slide[NEXT_SLIDE]->state == SLIDE_STATE_NONE) - { - MSG_HIGH("last file"); - dst_x = 0; - } - - _ivug_slider_slide_move(sd, dst_x , si->y); - - return EVAS_EVENT_FLAG_NONE; - } - - if ( sd->edge & EDGE::SLIDE_LEFT_EDGE) - { - if ( dx > 0 ) // Mouse --> - { - MSG_MED("Case 3. edge=%d, X=%d dx=%d si->x=%d", sd->edge, dst_x, dx, si->x); - - _ivug_slider_pass_event_to_item(sd, EINA_FALSE); - - if ( dst_x >= 0 && sd->slide[PREV_SLIDE]->state == SLIDE_STATE_NONE) - { - MSG_HIGH("first file"); - dst_x = 0; - } - - _ivug_slider_slide_move(sd, dst_x , si->y); - - return EVAS_EVENT_FLAG_NONE; - } - else - { - MSG_MED("Case 4. edge=%d, X=%d dx=%d si->x=%d", sd->edge, dst_x, dx, si->x); - - _ivug_slider_pass_event_to_item(sd, EINA_TRUE); - } - } - - if ( sd->edge & EDGE::SLIDE_RIGHT_EDGE) - { - if ( dx < 0 ) // Mouse <-- - { - MSG_MED("Case 5. edge=%d, X=%d dx=%d si->x=%d", sd->edge, dst_x, dx, si->x); - - _ivug_slider_pass_event_to_item(sd, EINA_FALSE); - - if ( dst_x < 0 && sd->slide[NEXT_SLIDE]->state == SLIDE_STATE_NONE) - { - MSG_HIGH("last file"); - dst_x = 0; - } - - _ivug_slider_slide_move(sd, dst_x , si->y); - - return EVAS_EVENT_FLAG_NONE; - } - else - { - - MSG_MED("Case 6. edge=%d, X=%d dx=%d si->x=%d", sd->edge, dst_x, dx, si->x); - - _ivug_slider_pass_event_to_item(sd, EINA_TRUE); - - } - } - -#ifdef ENABLE_Y_SCR - - if ( sd->edge & EDGE::SLIDE_TOP_EDGE) - { - if ( dy > 0 ) // Mouse downward - { - MSG_MED("Case 7. edge=%d, Y=%d dy=%d si->y=%d", sd->edge, dst_y, dy, si->y); - - _ivug_slider_pass_event_to_item(sd, EINA_FALSE); - - return EVAS_EVENT_FLAG_NONE; - } - else - { - - MSG_MED("Case 8. edge=%d, Y=%d dy=%d si->y=%d", sd->edge, dst_y, dy, si->y); - - _ivug_slider_pass_event_to_item(sd, EINA_TRUE); - - } - } - - if ( sd->edge & EDGE::SLIDE_BOTTOM_EDGE) - { - if ( dy < 0 ) // Mouse downward. ^ - { - MSG_MED("Case 9. edge=%d, Y=%d dy=%d si->y=%d", sd->edge, dst_y, dy, si->y); - - _ivug_slider_pass_event_to_item(sd, EINA_FALSE); - - return EVAS_EVENT_FLAG_NONE; - } - else - { - - MSG_MED("Case 10. edge=%d, Y=%d dy=%d si->y=%d", sd->edge, dst_y, dy, si->y); - - _ivug_slider_pass_event_to_item(sd, EINA_TRUE); - - } - } -#endif - - sd->edge = _ivug_slider_edge_state_get(si); - return EVAS_EVENT_FLAG_NONE; - -} - -Evas_Event_Flags _momentum_end(void *data, void *event_info) -{ - Elm_Gesture_Momentum_Info *p = (Elm_Gesture_Momentum_Info *) event_info; - - //if ( p->n != 1 ) return EVAS_EVENT_FLAG_NONE; - - MSG_MED("momentum end Cur=<%d,%d> M=<%d,%d>", p->x2, p->y2, p->mx, p->my); - - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get((Evas_Object *)data); - MSG_ASSERT(sd != NULL); - - Slide_Item *si = sd->slide[CENTER_SLIDE]; - - MSG_MED("Mouse Up : si->XYWH(%d,%d,%d,%d)", si->x, si->y, si->w, si->h); - -// Find Scroll Direction - sd->edge = _ivug_slider_edge_state_get(si); - - shift_direction_t dir = SLIDE_SHIFT_NONE; - - bool isFlick = abs(p->mx) < 1500 ? false : true; - - if ( isFlick == true ) - { -// momentumÀÌ 0ÀÌ ¾Æ´Ñ °æ¿ì(flick animation Áß°£¿¡ ´Ù½Ã click½Ã) center¸¦ ¾÷µ¥ÀÌÆ® Çؾߵdzª? ±×·¸°Ô ÇÏ¸é ºÎµå·¯¿ö Áúµí.. Çѵ¥.. ÀÏ´Ü pass - MSG_HIGH("Velocity = %d Momentum=%d", sd->momentum, p->mx); - - sd->momentum += p->mx; - - if ( (sd->edge & EDGE::SLIDE_LEFT_EDGE) && p->mx > 0) - { - // Flick - if ( p->mx + (si->x - sd->x) > sd->w ) - { - // Flick right - dir = SLIDE_SHIFT_TO_LEFT; - - MSG_HIGH("Flick Right ----------->"); - - if ( sd->slide[PREV_SLIDE]->state == SLIDE_STATE_NONE ) - { - dir = SLIDE_SHIFT_NONE; - sd->momentum = 0; - } - - MSG_MED("Prev slide state : %d", sd->slide[NEXT_SLIDE]->state); - } - } - - if ( (sd->edge & EDGE::SLIDE_RIGHT_EDGE) && p->mx < 0) - { - // Flick - if ( p->mx + ((si->x - sd->x) + si->w ) < 0 ) - { - // Flick left - dir = SLIDE_SHIFT_TO_RIGHT; - MSG_HIGH("Flick Left <-----------"); - - if ( sd->slide[NEXT_SLIDE]->state == SLIDE_STATE_NONE ) - { - dir = SLIDE_SHIFT_NONE; - sd->momentum = 0; - } - - MSG_MED("Next slide state : %d", sd->slide[NEXT_SLIDE]->state); - } - } - - MSG_MED("Velocity2 = %d", sd->momentum); - _put_originate(sd, dir, sd->momentum); - - } - else - { - MSG_MED("Si->x=%d", si->x); - - dir = _get_shift_direction(sd); - _put_originate(sd, dir, ANIN_VELOCITY); - - } - - sd->bLongtapEnable = true; - - sd->bMomentumStarted = false; - - return EVAS_EVENT_FLAG_NONE; -} - -Evas_Event_Flags _momentum_abort(void *data, void *event_info) -{ - Elm_Gesture_Momentum_Info *p = (Elm_Gesture_Momentum_Info *) event_info; - - MSG_MED("momentum abort Cur=<%d,%d> M=<%d,%d> N=%d", p->x2, p->y2, p->mx, p->my, p->n); - - //if ( p->n != 1 ) return EVAS_EVENT_FLAG_NONE; - - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get((Evas_Object *)data); - MSG_ASSERT(sd != NULL); - - Slide_Item *si = sd->slide[CENTER_SLIDE]; - - MSG_MED("Mouse Up : si->XYWH(%d,%d,%d,%d)", si->x, si->y, si->w, si->h); - -// Find Scroll Direction - sd->edge = _ivug_slider_edge_state_get(si); - - shift_direction_t dir = SLIDE_SHIFT_NONE; - - bool isFlick = abs(p->mx) < 1500 ? false : true; - - if ( isFlick == true ) - { - if ( (sd->edge & EDGE::SLIDE_LEFT_EDGE) && p->mx > 0) - { - // Flick - if ( p->mx + ((si->x - sd->x) ) > sd->w ) - { - // Flick right - MSG_MED("Flick Right"); - dir = SLIDE_SHIFT_TO_LEFT; - } - } - - if ( (sd->edge & EDGE::SLIDE_RIGHT_EDGE) && p->mx < 0) - { - // Flick - if ( p->mx + ((si->x - sd->x) + si->w ) < 0 ) - { - // Flick left - MSG_MED("Flick Left"); - dir = SLIDE_SHIFT_TO_RIGHT; - } - } - } - else - { - MSG_MED("Si->x=%d", si->x); - dir = _get_shift_direction(sd); - } - - _put_originate(sd, dir, ANIN_VELOCITY); - - sd->bLongtapEnable = true; - - sd->bMomentumStarted = false; - - return EVAS_EVENT_FLAG_NONE; -} - - - -Evas_Event_Flags _flick_start(void *data, void *event_info) -{ - Elm_Gesture_Line_Info *p = (Elm_Gesture_Line_Info *) event_info; - - MSG_LOW("flick started x1,x2=(%d,%d) tx=%u mx=%d n=%u", - p->momentum.x1, p->momentum.x2, p->momentum.tx, - p->momentum.mx, p->momentum.n); - - return EVAS_EVENT_FLAG_NONE; -} - - -Evas_Event_Flags _flick_move(void *data, void *event_info) -{ - Elm_Gesture_Line_Info *p = (Elm_Gesture_Line_Info *) event_info; - - MSG_LOW("flick moving x1,x2=(%d,%d) tx=%u mx=%d n=%u", - p->momentum.x1, p->momentum.x2, p->momentum.tx, - p->momentum.mx, p->momentum.n); - - return EVAS_EVENT_FLAG_NONE; - -} - - -Evas_Event_Flags _flick_end(void *data, void *event_info) -{ - Elm_Gesture_Line_Info *p = (Elm_Gesture_Line_Info *) event_info; - - MSG_LOW("flick ended x1,x2=(%d,%d) tx=%u mx=%d n=%u", - p->momentum.x1, p->momentum.x2, p->momentum.tx, - p->momentum.mx, p->momentum.n); - return EVAS_EVENT_FLAG_NONE; -} - - -Evas_Event_Flags _flick_abort(void *data, void *event_info) -{ - Elm_Gesture_Line_Info *p = (Elm_Gesture_Line_Info *) event_info; - - MSG_LOW("flick aborted x1,x2=(%d,%d) tx=%u mx=%d n=%u", - p->momentum.x1, p->momentum.x2, p->momentum.tx, - p->momentum.mx, p->momentum.n); - return EVAS_EVENT_FLAG_NONE; -} - - - -Evas_Event_Flags _dbl_click_start(void *data , void *event_info) -{ - Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) event_info; - - MSG_MED("Double click start"); - - if ( p->n != 1 ) return EVAS_EVENT_FLAG_NONE; - - return EVAS_EVENT_FLAG_NONE; -} - -Evas_Event_Flags _dbl_click_end(void *data , void *event_info) -{ - Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) event_info; - - MSG_MED("Double click end"); - - if ( p->n != 1 ) return EVAS_EVENT_FLAG_NONE; - - return EVAS_EVENT_FLAG_NONE; -} - -Evas_Event_Flags _dbl_click_abort(void *data , void *event_info) -{ - Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) event_info; - - MSG_MED("Double click abort"); - - if ( p->n != 1 ) return EVAS_EVENT_FLAG_NONE; - - return EVAS_EVENT_FLAG_NONE; -} - -Evas_Event_Flags n_finger_tap_start(void *data , void *event_info) -{ - Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) event_info; - - MSG_MED("Finger tab start. Time=%d", p->timestamp); - - if ( p->n != 1 ) return EVAS_EVENT_FLAG_NONE; - - return EVAS_EVENT_FLAG_NONE; -} - - -Evas_Event_Flags n_finger_tap_end(void *data , void *event_info) -{ - Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) event_info; - - MSG_MED("Finger tab end. Time=%d", p->timestamp); - - if ( p->n != 1 ) return EVAS_EVENT_FLAG_NONE; - - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get((Evas_Object *)data); - MSG_ASSERT(sd != NULL); - - Slide_Item *si = sd->slide[CENTER_SLIDE]; - - if ( ivug_slider_item_icon_click_check(si, p->x, p->y ) == true ) - { - evas_object_smart_callback_call(sd->obj, "slider,clicked,icon", si); // Clicked video icon - } - else - { - evas_object_smart_callback_call(sd->obj, "slider,clicked", si); - } - - return EVAS_EVENT_FLAG_NONE; -} - -Evas_Event_Flags n_finger_tap_abort(void *data , void *event_info) -{ - Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) event_info; - - MSG_MED("Finger tab aborted. Time=%d", p->timestamp); - - if ( p->n != 1 ) return EVAS_EVENT_FLAG_NONE; - - return EVAS_EVENT_FLAG_NONE; -} - - -Evas_Event_Flags n_long_tap_start(void *data , void *event_info) -{ - Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) event_info; - - MSG_MED("Long tab start, x=%d, y=%d", p->x, p->y); - - if ( p->n != 1 ) return EVAS_EVENT_FLAG_NONE; - - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get((Evas_Object *)data); - MSG_ASSERT(sd != NULL); - - sd->longtap_count = 0; - - return EVAS_EVENT_FLAG_NONE; - -} - -Evas_Event_Flags n_long_tap_move(void *data , void *event_info) -{ - Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) event_info; - - MSG_MED("Long tab move"); - - if ( p->n != 1 ) return EVAS_EVENT_FLAG_NONE; - - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get((Evas_Object *)data); - MSG_ASSERT(sd != NULL); - - if(sd->longtap_count != 0) - { - return EVAS_EVENT_FLAG_NONE; - } - sd->longtap_count = 1; - - if(sd->bLongtapEnable == false) - { - MSG_HIGH("It is not long tap case"); - return EVAS_EVENT_FLAG_NONE; - } - - if(sd->bMomentumStarted == true) // compare down and longpressed position - { - sd->longtap_prev_x = p->x; - sd->longtap_prev_y = p->y; - - int longtap_dx = sd->prev_x - sd->longtap_prev_x; - int longtap_dy = sd->prev_y - sd->longtap_prev_y; - - if(sqrt(longtap_dx*longtap_dx + longtap_dy*longtap_dy) > LOGNTAP_THRESHOLD) - { - MSG_HIGH("It is not long tap"); - return EVAS_EVENT_FLAG_NONE; - } - } - - evas_object_smart_callback_call(sd->obj, "slider,longpress,start", p); - - return EVAS_EVENT_FLAG_NONE; -} - -Evas_Event_Flags n_long_tap_end(void *data , void *event_info) -{ - Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) event_info; - - MSG_MED("Long tab end"); - - if ( p->n != 1 ) return EVAS_EVENT_FLAG_NONE; - - MSG_MED("Long press end"); - - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get((Evas_Object *)data); - MSG_ASSERT(sd != NULL); - - evas_object_smart_callback_call(sd->obj, "slider,longpress,end", (void*)LONGTAP_ENDED); - - return EVAS_EVENT_FLAG_NONE; - -} - -Evas_Event_Flags n_long_tap_abort(void *data , void *event_info) -{ - Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) event_info; - - MSG_MED("Long tab abort"); - - if ( p->n != 1 ) return EVAS_EVENT_FLAG_NONE; - - return EVAS_EVENT_FLAG_NONE; - -} - - diff --git a/main/src/slider/ivug-slider-new.cpp b/main/src/slider/ivug-slider-new.cpp new file mode 100755 index 0000000..49d8d0f --- /dev/null +++ b/main/src/slider/ivug-slider-new.cpp @@ -0,0 +1,962 @@ +/* +* Copyright (c) 2000-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 // ug_destroy_me, ug_send_result +#include // std::swap + +#include +#include + +#include "ivug-common.h" +#include "ivug-slider-new.h" + +#include "ivug-parameter.h" +#include "ivug-define.h" +#include "ivug-config.h" + +#include "ivug-util.h" +//#include "ivug-medialist.h" +#include "ivug-media.h" + +#include "ivug-decolayer.h" + +#include "ivug-main-view.h" +#include "../view/ivug-main-view-priv.h" + +#define ICON_PLAY_SIZE 100 +#define LOGNTAP_THRESHOLD (100) // allow moving distance(pixel) +#define TILT_THRESHOLD (3) // allow tilt value + +#undef LOG_LVL +#define LOG_LVL (DBG_MSG_LVL_HIGH) + +#undef LOG_CAT +#define LOG_CAT "IV-QSLIDER" + +#define SLIDER_NEW_EDJ_FILE EDJ_PATH"/ivug-slider-new.edj" +#define SLIDER_NEW_HD_EDJ_FILE EDJ_PATH"/ivug-slider-new-hd.edj" +typedef struct _Ivug_SliderNew{ + Evas_Object *parent; + Evas_Object *layout; + Evas_Object *gesture; + Evas_Object *photocam; + + int prev_x; + int prev_y; + + int curpc; + bool curpcm_state;//current photocam move state; + bool pcreset; //photocam reset + bool bLongtapEnable; + bool bMomentumStarted; + + int longtap_count; + int longtap_prev_x; + int longtap_prev_y; + + double zoom_level; + int zoom_internal_level; + int max_zoom_level; + + bool bZooming; + bool bSliding; + + int c_x; // zoom center x + int c_y; // zoom center x + + double zoom_factor_prev; + + slider_mode_e mode; + +// Have same size as Imange internal's + Evas_Object *icon_layer; // Decoration layer. VideoIcon/BestPicIcon/Sound&Pic icon + + Media_List *mList; + + callback_t changed_cb; + void *changed_data; + + callback_t loaded_cb; + void *loaded_data; + + location_callback_t location_cb; + void *location_data; + + pthread_t mainTID; + bool bDeleting; + + int orientation; + Ivug_MainView *pMainView; +}Ivug_SliderNew; + + +#if (1) + +static void _on_obj_resize(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Ivug_SliderNew *slider_new = (Ivug_SliderNew *)data; + + Evas_Coord x,y,w,h; + evas_object_geometry_get(obj, &x, &y, &w, &h); + +#if 1 + if (w == 0 || h == 0 ) + { + MSG_WARN("Not ready for update XYWH(%d,%d,%d,%d)", x, y, w, h); + return; + } + + if(slider_new->icon_layer) + { + evas_object_show(slider_new->icon_layer); + } +#endif + + MSG_HIGH("QSlider(0x%08x) resized geomtery XYWH(%d,%d,%d,%d) angle=%d", obj, x, y, w, h, elm_win_rotation_get((Evas_Object *)ug_get_window())); +} + +static void _on_obj_move(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Ivug_SliderNew *slider_new = (Ivug_SliderNew *)data; + + Evas_Coord x,y,w,h; + evas_object_geometry_get(obj, &x, &y, &w, &h); + +#if 1 + if (w == 0 || h == 0 ) + { + MSG_WARN("Not ready for update XYWH(%d,%d,%d,%d)", x, y, w, h); + return; + } + + if(slider_new->icon_layer) + { + evas_object_show(slider_new->icon_layer); + } +#endif + + MSG_HIGH("QSlider(0x%08x) moved geomtery XYWH(%d,%d,%d,%d) angle=%d", obj, x, y, w, h, elm_win_rotation_get((Evas_Object *)ug_get_window())); +} + + +static void _on_obj_show(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + MSG_HIGH("QSlider(0x%08x) layout show", obj); +} + +static void _on_obj_hide(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + MSG_HIGH("QSlider(0x%08x) layout hide", obj); +} +#endif + +void ivug_slider_update_icon_layer(Ivug_SliderNew *slider_new) +{ + + int x,y,w,h; + evas_object_geometry_get(slider_new->photocam,&x,&y,&w,&h); + evas_object_move(slider_new->icon_layer, (w/2 -ICON_PLAY_SIZE/2) , (h/2 -ICON_PLAY_SIZE/2)); + evas_object_resize(slider_new->icon_layer, ICON_PLAY_SIZE, ICON_PLAY_SIZE); + Media_Item *mitem = ivug_medialist_get_current_item(slider_new->mList); + Media_Data *mdata = ivug_medialist_get_data(mitem); + + if(mdata->slide_type == SLIDE_TYPE_VIDEO + ) + { + ivug_decolayer_set_type(slider_new->icon_layer, IVUG_DECO_VIDEO); + } + else if(mdata->iType == MIMAGE_TYPE_BESTSHOT) + { + ivug_decolayer_set_type(slider_new->icon_layer, IVUG_DECO_BESTPIC); + } + else if(mdata->iType == MIMAGE_TYPE_SOUNDSCENE) + { + ivug_decolayer_set_type(slider_new->icon_layer, IVUG_DECO_SOUNDPIC); + } + else if (mdata->m_handle && ivug_db_is_burstshot(mdata->m_handle) == true ) + { + ivug_decolayer_set_type(slider_new->icon_layer, IVUG_DECO_BURST); + } + else + { + ivug_decolayer_set_type(slider_new->icon_layer, IVUG_DECO_NONE); + } + +} + + +typedef struct _SliderCB +{ + Ivug_SliderNew *slider_new; + int x,y,w,h; // Location CB + Media_Item *mItem; // Changed CB + + void *handle; +} SliderCB; + +// Item changed. +static void _ivug_slider_new_changed_cb(void *handle, Media_Item *mItem, void *data) +{ + Ivug_SliderNew *slider_new = (Ivug_SliderNew *)data; + + if(slider_new->changed_cb) + { + MSG_LOW("START : Item Changed"); + slider_new->changed_cb(NULL, mItem, slider_new->changed_data); + MSG_LOW("END : Item Changed"); + } + + if(mItem) + { + ivug_slider_update_icon_layer(slider_new); + } + + MSG_HIGH("Slider Item Changed. mItem=0x%08x", mItem); + + return; +} + +static Evas_Event_Flags _momentum_start(void *data , void *event_info) +{ + return EVAS_EVENT_FLAG_NONE; +} + +static Evas_Event_Flags _momentum_move(void *data , void *event_info) +{ + Ivug_SliderNew *slider_new = (Ivug_SliderNew *)data; + MSG_ASSERT(slider_new != NULL); + + Elm_Gesture_Momentum_Info *p = (Elm_Gesture_Momentum_Info *) event_info; + + MSG_LOW("No of Fingers = %d", p->n); + + if (p->n >= 2) { + slider_new->pMainView->bmultitouchsliding = true; + } + + return EVAS_EVENT_FLAG_NONE; +} + +static Evas_Event_Flags _momentum_end(void *data , void *event_info) +{ + Ivug_SliderNew *slider_new = (Ivug_SliderNew *)data; + MSG_ASSERT(slider_new != NULL); + + Elm_Gesture_Momentum_Info *p = (Elm_Gesture_Momentum_Info *) event_info; + + if (p->n >= 2) { + slider_new->pMainView->bmultitouchsliding = false; + } + + return EVAS_EVENT_FLAG_NONE; +} + +static Evas_Event_Flags _momentum_abort(void *data , void *event_info) +{ + Ivug_SliderNew *slider_new = (Ivug_SliderNew *)data; + MSG_ASSERT(slider_new != NULL); + + Elm_Gesture_Momentum_Info *p = (Elm_Gesture_Momentum_Info *) event_info; + + if (p->n >= 2) { + slider_new->pMainView->bmultitouchsliding = false; + } + + return EVAS_EVENT_FLAG_NONE; +} + +static Evas_Event_Flags n_finger_tap_end(void *data , void *event_info) +{ + Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) event_info; + + MSG_MED("Finger tab end. Time=%d", p->timestamp); + + if (p->n != 1 ) return EVAS_EVENT_FLAG_NONE; + + Ivug_SliderNew *slider_new = (Ivug_SliderNew *)data; + MSG_ASSERT(slider_new != NULL); + + ivug_deco_icon_e icon; + + icon = ivug_decolayer_check_icon(slider_new->icon_layer, p->x, p->y); + + if (icon == IVUG_DECO_ICON_VIDEO ) + { + evas_object_smart_callback_call(slider_new->layout, "slider,playvideo", slider_new); // Clicked video icon + } + else if (icon == IVUG_DECO_ICON_SOUNDPIC ) + { + if (slider_new->icon_layer ) + { + ivug_decolayer_start_blinking(slider_new->icon_layer); + } + } + else if (icon == IVUG_DECO_ICON_BURST_PLAY) + { + MSG_HIGH("Burst play!!!!"); + evas_object_smart_callback_call(slider_new->layout, "slider,playburst", slider_new); // Clicked video icon + } +/* else if (icon == IVUG_DECO_ICON_BURST_PLAYSPEED) + { + MSG_HIGH("Burst play speed"); + Evas_Object *popup = ivug_playspeed_popup_add(slider_new->layout); + + evas_object_smart_callback_add(popup, "playspeed,changed", _on_playspeed_changed, slider_new); + }*/ + else + { + evas_object_smart_callback_call(slider_new->layout, "slider,clicked", slider_new); + } + + return EVAS_EVENT_FLAG_NONE; +} + +static Evas_Event_Flags _dbl_click_start(void *data , void *event_info) +{ + Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) event_info; + Ivug_SliderNew *slider_new = (Ivug_SliderNew *)data; + MSG_ASSERT(slider_new != NULL); + + MSG_HIGH("Double Tap Start :: No of fingers: %d", p->n); + if (p->n != 1) { + return EVAS_EVENT_FLAG_NONE; + } + slider_new->bSliding = false; + return EVAS_EVENT_FLAG_NONE; +} + +static Evas_Event_Flags _dbl_click_end(void *data , void *event_info) +{ + Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) event_info; + + MSG_HIGH("Double Tap End :: No of fingers: %d, CenterPointXY(%d,%d)", p->n, p->x, p->y); + Ivug_SliderNew *slider_new = (Ivug_SliderNew *)data; + MSG_ASSERT(slider_new != NULL); + + if (!slider_new->bZooming && slider_new->photocam) { + slider_new->bZooming = true; + slider_new->bSliding = false; + slider_new->zoom_level = elm_photocam_zoom_get(slider_new->photocam); + elm_photocam_zoom_mode_set(slider_new->photocam, ELM_PHOTOCAM_ZOOM_MODE_MANUAL); + elm_photocam_zoom_set(slider_new->photocam, slider_new->zoom_level - 0.4 ); + } else { + + slider_new->bSliding = true ; + ivug_reset_zoom(slider_new); + } + + return EVAS_EVENT_FLAG_NONE; +} + +static Evas_Event_Flags _dbl_click_abort(void *data , void *event_info) +{ + Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) event_info; + MSG_HIGH("Double Tap Abort :: No of fingers: %d", p->n); + + Ivug_SliderNew *slider_new = (Ivug_SliderNew *)data; + MSG_ASSERT(slider_new != NULL); + + if (!slider_new->bZooming) { + slider_new->bSliding = true ; + } + + return EVAS_EVENT_FLAG_NONE; +} + +Evas_Event_Flags n_long_tap_start(void *data , void *event_info) +{ + Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) event_info; + + MSG_HIGH("Long tab start, x=%d, y=%d", p->x, p->y); + + if (p->n != 1 ) return EVAS_EVENT_FLAG_NONE; + + Ivug_SliderNew *slider_new = (Ivug_SliderNew *)data; + MSG_ASSERT(slider_new != NULL); + + slider_new->longtap_count = 0; + + return EVAS_EVENT_FLAG_NONE; +} + +void ivug_slider_set_current_Photocam(Ivug_SliderNew *slider_new,int pc) +{ + slider_new->curpc =pc; +} +void ivug_slider_set_Photocam_moved(Ivug_SliderNew *slider_new,bool pcm) +{ + slider_new->curpcm_state = pcm; +} + +Evas_Event_Flags _zoom_start(void *data, void *event_info) +{ + Elm_Gesture_Zoom_Info *p = (Elm_Gesture_Zoom_Info *) event_info; + MSG_LOW("zoom start <%d,%d> <%f>", p->x, p->y, p->zoom); + + Ivug_SliderNew *slider_new = (Ivug_SliderNew *)data; + MSG_ASSERT(slider_new != NULL); + MSG_ASSERT(slider_new->pMainView != NULL); + if (slider_new->pMainView->slide_state) { + MSG_MAIN_HIGH("Sliding, no Zoom should happen"); + return EVAS_EVENT_FLAG_NONE; + } + + if (p->zoom == 1.000000) { + slider_new->curpcm_state = false; + } + + if (slider_new->curpcm_state == true) { + MSG_MAIN_HIGH("_zoom_start"); + slider_new->bSliding = false ; + slider_new->curpcm_state = false; + slider_new->pcreset = true; + + if (slider_new->curpc == 0) { + edje_object_signal_emit(elm_layout_edje_get(slider_new->layout), "set_stop", "imageview_area_temp0"); + edje_object_signal_emit(elm_layout_edje_get(slider_new->layout), "set_right", "imageview_area"); + edje_object_signal_emit(elm_layout_edje_get(slider_new->layout), "set_left", "imageview_area_temp2"); + } else if (slider_new->curpc == 1) { + edje_object_signal_emit(elm_layout_edje_get(slider_new->layout), "set_stop", "imageview_area"); + edje_object_signal_emit(elm_layout_edje_get(slider_new->layout), "set_right", "imageview_area_temp2"); + edje_object_signal_emit(elm_layout_edje_get(slider_new->layout), "set_left", "imageview_area_temp0"); + } else if (slider_new->curpc == 2) { + edje_object_signal_emit(elm_layout_edje_get(slider_new->layout), "set_stop", "imageview_area_temp2"); + edje_object_signal_emit(elm_layout_edje_get(slider_new->layout), "set_right", "imageview_area_temp0"); + edje_object_signal_emit(elm_layout_edje_get(slider_new->layout), "set_left", "imageview_area"); + } + } + + if (!slider_new->bZooming) { + //elm_photocam_zoom_mode_set(slider_new->photocam, ELM_PHOTOCAM_ZOOM_MODE_MANUAL); + //lider_new->bZooming = true; + //slider_new->zoom_level = elm_photocam_zoom_get(slider_new->photocam); + int width,height; + elm_photocam_image_size_get(slider_new->photocam,&width,&height); + slider_new->zoom_internal_level = 0; + MSG_MAIN_HIGH(" width= %d height = %d", width,height); + if (width <= 50 && height <=50) { + slider_new->max_zoom_level = 3; + } else if (width <= 200 && height <=200) { + slider_new->max_zoom_level = 5; + } else if (width <= 500 && height <=500) { + slider_new->max_zoom_level = 8; + } else if (width <= 1000 && height <=1000) { + slider_new->max_zoom_level = 12; + } else if (width > 1000 && height > 1000) { + slider_new->max_zoom_level = 20; + } else { + slider_new->max_zoom_level = 5; + } + } + + slider_new->c_x = p->x; + slider_new->c_y = p->y; + slider_new->zoom_factor_prev = p->zoom ; + + return EVAS_EVENT_FLAG_NONE; +} + +Evas_Event_Flags _zoom_move(void *data, void *event_info) +{ + Elm_Gesture_Zoom_Info *p = (Elm_Gesture_Zoom_Info *) event_info; + MSG_LOW("zoom move <%d,%d> <%f>", p->x, p->y, p->zoom); + MSG_MAIN_HIGH(" _zoom_move"); + Ivug_SliderNew *slider_new = (Ivug_SliderNew *)data; + double zoom_level = elm_photocam_zoom_get(slider_new->photocam); + MSG_ASSERT(slider_new != NULL); + MSG_ASSERT(slider_new->pMainView != NULL); + if (slider_new->pMainView->slide_state) { + MSG_MAIN_HIGH("Sliding, no Zoom should happen"); + return EVAS_EVENT_FLAG_NONE; + } + + if (zoom_level <= 1.0) { + elm_photocam_gesture_enabled_set(slider_new->photocam,EINA_TRUE); + + if (!slider_new->bZooming) { + slider_new->bZooming = true; + elm_photocam_zoom_mode_set(slider_new->photocam, ELM_PHOTOCAM_ZOOM_MODE_MANUAL); + slider_new->zoom_level = elm_photocam_zoom_get(slider_new->photocam); + } + zoom_level = elm_photocam_zoom_get(slider_new->photocam); + double zoomfactordiff = (p->zoom - slider_new->zoom_factor_prev ); + + if (zoomfactordiff >= 0.1) { + if (slider_new->zoom_internal_level <= slider_new->max_zoom_level) { + slider_new->zoom_factor_prev = p->zoom; + slider_new->zoom_internal_level++; + elm_photocam_zoom_set(slider_new->photocam,zoom_level - 0.2 ); + } + } else if (zoomfactordiff <= -0.1) { + elm_photocam_zoom_mode_set(slider_new->photocam, ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT); + if (slider_new->zoom_internal_level > 0 && zoom_level != slider_new->zoom_level) { + slider_new->zoom_factor_prev = p->zoom; + slider_new->zoom_internal_level--; + elm_photocam_zoom_set(slider_new->photocam,zoom_level + 0.2); + } + } + } + + slider_new->bSliding = false ; + return EVAS_EVENT_FLAG_NONE; +} + +Evas_Event_Flags _zoom_end(void *data, void *event_info) +{ + Elm_Gesture_Zoom_Info *p = (Elm_Gesture_Zoom_Info *) event_info; + MSG_MAIN_HIGH("zoom end <%d,%d> <%f>", p->x, p->y, p->zoom); + + Ivug_SliderNew *slider_new = (Ivug_SliderNew *)data; + MSG_ASSERT(slider_new != NULL); + MSG_ASSERT(slider_new->pMainView != NULL); + if(slider_new->pMainView->slide_state /*|| slider_new->pMainView->is_moved*/) { + MSG_MAIN_HIGH("Sliding, no Zoom should happen"); + return EVAS_EVENT_FLAG_NONE; + } + + double zoom_level = elm_photocam_zoom_get(slider_new->photocam); + if (zoom_level >= 1.0) { + slider_new->bSliding = true; + } + + if(slider_new->zoom_internal_level == 0 || zoom_level == slider_new->zoom_level ) + { + ivug_reset_zoom(slider_new); + + } + return EVAS_EVENT_FLAG_NONE; +} + +Evas_Event_Flags _zoom_abort(void *data, void *event_info) +{ + Elm_Gesture_Zoom_Info *p = (Elm_Gesture_Zoom_Info *) event_info; + MSG_LOW("zoom abort <%d,%d> <%f>", p->x, p->y, p->zoom); + + Ivug_SliderNew *slider_new = (Ivug_SliderNew *)data; + MSG_ASSERT(slider_new != NULL); + MSG_ASSERT(slider_new->pMainView != NULL); + if(slider_new->pMainView->slide_state) { + MSG_MAIN_HIGH("Sliding, no Zoom should happen"); + return EVAS_EVENT_FLAG_NONE; + } + return EVAS_EVENT_FLAG_NONE; +} + +void ivug_disable_gesture(Ivug_SliderNew *slider_new) +{ + MSG_ASSERT(slider_new != NULL); + + elm_photocam_gesture_enabled_set(slider_new->pMainView->photocam0, EINA_FALSE); + elm_photocam_gesture_enabled_set(slider_new->pMainView->photocam, EINA_FALSE); + elm_photocam_gesture_enabled_set(slider_new->pMainView->photocam2, EINA_FALSE); + + elm_gesture_layer_cb_set(slider_new->gesture, ELM_GESTURE_MOMENTUM , ELM_GESTURE_STATE_START, NULL, slider_new); + elm_gesture_layer_cb_set(slider_new->gesture, ELM_GESTURE_MOMENTUM , ELM_GESTURE_STATE_MOVE, NULL, slider_new); + elm_gesture_layer_cb_set(slider_new->gesture, ELM_GESTURE_MOMENTUM, ELM_GESTURE_STATE_END, NULL, slider_new); + elm_gesture_layer_cb_set(slider_new->gesture, ELM_GESTURE_MOMENTUM, ELM_GESTURE_STATE_ABORT, NULL, slider_new); + + + elm_gesture_layer_cb_set(slider_new->gesture, ELM_GESTURE_N_TAPS, ELM_GESTURE_STATE_END, NULL, slider_new); + + elm_gesture_layer_cb_set(slider_new->gesture, ELM_GESTURE_N_DOUBLE_TAPS, ELM_GESTURE_STATE_START, NULL, slider_new); + elm_gesture_layer_cb_set(slider_new->gesture, ELM_GESTURE_N_DOUBLE_TAPS, ELM_GESTURE_STATE_END, NULL, slider_new); + elm_gesture_layer_cb_set(slider_new->gesture, ELM_GESTURE_N_DOUBLE_TAPS, ELM_GESTURE_STATE_ABORT, NULL, slider_new); + + elm_gesture_layer_cb_set(slider_new->gesture, ELM_GESTURE_ZOOM, ELM_GESTURE_STATE_START, NULL, slider_new); + elm_gesture_layer_cb_set(slider_new->gesture, ELM_GESTURE_ZOOM, ELM_GESTURE_STATE_MOVE, NULL, slider_new); + elm_gesture_layer_cb_set(slider_new->gesture, ELM_GESTURE_ZOOM, ELM_GESTURE_STATE_END, NULL, slider_new); + elm_gesture_layer_cb_set(slider_new->gesture, ELM_GESTURE_ZOOM, ELM_GESTURE_STATE_ABORT, NULL, slider_new); + +} + +void ivug_enable_gesture(Ivug_SliderNew *slider_new) +{ + MSG_ASSERT(slider_new != NULL); + + elm_photocam_gesture_enabled_set(slider_new->pMainView->photocam0, EINA_TRUE); + elm_photocam_gesture_enabled_set(slider_new->pMainView->photocam, EINA_TRUE); + elm_photocam_gesture_enabled_set(slider_new->pMainView->photocam2, EINA_TRUE); + + elm_gesture_layer_cb_set(slider_new->gesture, ELM_GESTURE_MOMENTUM , ELM_GESTURE_STATE_START, _momentum_start, slider_new); + elm_gesture_layer_cb_set(slider_new->gesture, ELM_GESTURE_MOMENTUM , ELM_GESTURE_STATE_MOVE, _momentum_move, slider_new); + elm_gesture_layer_cb_set(slider_new->gesture, ELM_GESTURE_MOMENTUM, ELM_GESTURE_STATE_END, _momentum_end, slider_new); + elm_gesture_layer_cb_set(slider_new->gesture, ELM_GESTURE_MOMENTUM, ELM_GESTURE_STATE_ABORT, _momentum_abort, slider_new); + + + elm_gesture_layer_cb_set(slider_new->gesture, ELM_GESTURE_N_TAPS, ELM_GESTURE_STATE_END, n_finger_tap_end, slider_new); + + elm_gesture_layer_cb_set(slider_new->gesture, ELM_GESTURE_N_DOUBLE_TAPS, ELM_GESTURE_STATE_START, _dbl_click_start, slider_new); + elm_gesture_layer_cb_set(slider_new->gesture, ELM_GESTURE_N_DOUBLE_TAPS, ELM_GESTURE_STATE_END, _dbl_click_end, slider_new); + elm_gesture_layer_cb_set(slider_new->gesture, ELM_GESTURE_N_DOUBLE_TAPS, ELM_GESTURE_STATE_ABORT, _dbl_click_abort, slider_new); + + elm_gesture_layer_cb_set(slider_new->gesture, ELM_GESTURE_ZOOM, ELM_GESTURE_STATE_START, _zoom_start, slider_new); + elm_gesture_layer_cb_set(slider_new->gesture, ELM_GESTURE_ZOOM, ELM_GESTURE_STATE_MOVE, _zoom_move, slider_new); + elm_gesture_layer_cb_set(slider_new->gesture, ELM_GESTURE_ZOOM, ELM_GESTURE_STATE_END, _zoom_end, slider_new); + elm_gesture_layer_cb_set(slider_new->gesture, ELM_GESTURE_ZOOM, ELM_GESTURE_STATE_ABORT, _zoom_abort, slider_new); +} + +Ivug_SliderNew * ivug_slider_new_init(Evas_Object *parent, void *pMainView) +{ + Ivug_SliderNew *slider_new = (Ivug_SliderNew *)calloc(1, sizeof(Ivug_SliderNew)); + if (slider_new == NULL) + { + MSG_ERROR("Cannot allocate memory"); + return NULL; + } + + PERF_CHECK_BEGIN(LVL3, "create slider layout"); + + slider_new->parent = parent; + slider_new->mainTID = pthread_self(); + MSG_WARN("main tid = 0x%08x", slider_new->mainTID); + slider_new->bDeleting = false; + slider_new->pMainView = (Ivug_MainView *)pMainView; + slider_new->bSliding = true; + + + Evas_Object *win = (Evas_Object *)ug_get_window(); + int wx, wy, ww, wh; + + evas_object_geometry_get(win, &wx, &wy, &ww, &wh); + if(ww == 720 && wh == 1280) + { + MSG_WARN("HD Loading"); + slider_new->layout = ivug_layout_add2(parent, SLIDER_NEW_HD_EDJ_FILE, "slider_new"); + } + else + { + MSG_WARN("WVGA Loading"); + slider_new->layout = ivug_layout_add2(parent, SLIDER_NEW_EDJ_FILE, "slider_new"); + } + if (slider_new->layout == NULL) + { + MSG_WARN("layout sawllow failed"); + free(slider_new); + return NULL; + } + + evas_object_name_set(slider_new->layout, "Slider new"); +// evas_object_propagate_events_set(slider_new->layout, EINA_FALSE); + + Evas_Object *event = const_cast(edje_object_part_object_get(_EDJ(slider_new->layout), "slider.event")); + MSG_ASSERT(event != NULL); + + //evas_object_event_callback_add(event, EVAS_CALLBACK_MOUSE_DOWN, _on_event_mouse_down, (void *)slider_new); + //evas_object_event_callback_add(event, EVAS_CALLBACK_MOUSE_UP, _on_event_mouse_up, (void *)slider_new); + + slider_new->bLongtapEnable = true; + + Evas_Object *gesture = elm_gesture_layer_add(slider_new->layout); + elm_gesture_layer_hold_events_set(gesture, EINA_FALSE); + + if (elm_gesture_layer_attach(gesture, event) == EINA_FALSE) + { + MSG_ERROR("Cannot attach event rect"); + } + + elm_gesture_layer_cb_set(gesture, ELM_GESTURE_MOMENTUM , ELM_GESTURE_STATE_START, _momentum_start, slider_new); + elm_gesture_layer_cb_set(gesture, ELM_GESTURE_MOMENTUM , ELM_GESTURE_STATE_MOVE, _momentum_move, slider_new); + elm_gesture_layer_cb_set(gesture, ELM_GESTURE_MOMENTUM, ELM_GESTURE_STATE_END, _momentum_end, slider_new); + elm_gesture_layer_cb_set(gesture, ELM_GESTURE_MOMENTUM, ELM_GESTURE_STATE_ABORT, _momentum_abort, slider_new); + + + elm_gesture_layer_cb_set(gesture, ELM_GESTURE_N_TAPS, ELM_GESTURE_STATE_END, n_finger_tap_end, slider_new); + + elm_gesture_layer_cb_set(gesture, ELM_GESTURE_N_DOUBLE_TAPS, ELM_GESTURE_STATE_START, _dbl_click_start, slider_new); + elm_gesture_layer_cb_set(gesture, ELM_GESTURE_N_DOUBLE_TAPS, ELM_GESTURE_STATE_END, _dbl_click_end, slider_new); + elm_gesture_layer_cb_set(gesture, ELM_GESTURE_N_DOUBLE_TAPS, ELM_GESTURE_STATE_ABORT, _dbl_click_abort, slider_new); +// elm_gesture_layer_cb_set(gesture, ELM_GESTURE_N_DOUBLE_TAPS, ELM_GESTURE_STATE_MOVE, _dbl_click_end, slider_new); + + +/* + elm_gesture_layer_cb_set(gesture, ELM_GESTURE_N_LONG_TAPS, ELM_GESTURE_STATE_START, n_long_tap_start, slider_new); + elm_gesture_layer_cb_set(gesture, ELM_GESTURE_N_LONG_TAPS, ELM_GESTURE_STATE_MOVE, n_long_tap_move, slider_new); + elm_gesture_layer_cb_set(gesture, ELM_GESTURE_N_LONG_TAPS, ELM_GESTURE_STATE_END, n_long_tap_end, slider_new); + elm_gesture_layer_cb_set(gesture, ELM_GESTURE_N_LONG_TAPS, ELM_GESTURE_STATE_ABORT, n_long_tap_abort, slider_new); +*/ + elm_gesture_layer_cb_set(gesture, ELM_GESTURE_ZOOM, ELM_GESTURE_STATE_START, _zoom_start, slider_new); + elm_gesture_layer_cb_set(gesture, ELM_GESTURE_ZOOM, ELM_GESTURE_STATE_MOVE, _zoom_move, slider_new); + elm_gesture_layer_cb_set(gesture, ELM_GESTURE_ZOOM, ELM_GESTURE_STATE_END, _zoom_end, slider_new); + elm_gesture_layer_cb_set(gesture, ELM_GESTURE_ZOOM, ELM_GESTURE_STATE_ABORT, _zoom_abort, slider_new); + + slider_new->gesture = gesture; + + { + slider_new->icon_layer = ivug_decolayer_add(slider_new->layout); + evas_object_name_set(slider_new->icon_layer, "Decolayer"); + + evas_object_pass_events_set(slider_new->icon_layer, EINA_FALSE); // For pressed icon display + evas_object_repeat_events_set(slider_new->icon_layer, EINA_TRUE); + + evas_object_smart_member_add(slider_new->icon_layer, _EDJ(slider_new->layout)); + } + +#if 1 + int x, y, w, h; + evas_object_geometry_get((Evas_Object *)ug_get_window(), &x, &y, &w, &h); +#else +// \B0\A1\B7η\CE \BD\C3\C0\DB\C7Ï´\C2 \B0\E6\BF\EC \B5\BF\C0\DB \C0Ì»\F3\C7\D4. + int w, h; + ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h); // Portrait size. +#endif + + PERF_CHECK_END(LVL3, "create slider layout"); + + PERF_CHECK_BEGIN(LVL3, "QPhotoAPI::create()"); + + //Qphoto_init(); + +#if (1) + evas_object_event_callback_add(slider_new->layout, EVAS_CALLBACK_RESIZE, _on_obj_resize, slider_new); + evas_object_event_callback_add(slider_new->layout, EVAS_CALLBACK_MOVE, _on_obj_move, slider_new); + + evas_object_event_callback_add(slider_new->layout, EVAS_CALLBACK_SHOW, _on_obj_show, NULL); + evas_object_event_callback_add(slider_new->layout, EVAS_CALLBACK_HIDE, _on_obj_hide, NULL); +#endif + + return slider_new; +} + +void ivug_slider_new_destroy(Ivug_SliderNew * slider_new) +{ + IV_ASSERT(slider_new != NULL); + + slider_new->bDeleting = true; + + if(slider_new->gesture) + { + evas_object_del(slider_new->gesture); + slider_new->gesture = NULL; + } + + if(slider_new->icon_layer) + { + evas_object_del(slider_new->icon_layer); + slider_new->icon_layer = NULL; + } + + MSG_HIGH("Qphoto destroy. [END]"); + + if(slider_new->layout) + { + evas_object_del(slider_new->layout); + slider_new->layout = NULL; + } + + free(slider_new); +} + +void ivug_slider_new_set_mode(Ivug_SliderNew * slider_new, slider_mode_e mode) +{ + slider_new->mode = mode; +} + +slider_mode_e ivug_slider_new_get_mode(Ivug_SliderNew * slider_new) +{ + return slider_new->mode; +} + +void ivug_slider_new_set_list(Ivug_SliderNew * slider_new, Media_List *mList, Media_Item *current) +{ + slider_new->mList = mList; +} + +void ivug_slider_new_set_photocam(Ivug_SliderNew *slider_new,Evas_Object * photocam) +{ + slider_new->photocam = photocam; +} + +bool ivug_slider_new_is_zoomed(Ivug_SliderNew *slider_new) +{ + return FALSE; +} + +void ivug_slider_new_enable_motion_pan(Ivug_SliderNew *slider_new, bool pan_state) +{ + // set motion pan +} + +Evas_Object * ivug_slider_new_get_layout(Ivug_SliderNew *slider_new) +{ + return slider_new->layout; +} + +Evas_Object * ivug_slider_new_get_gesture(Ivug_SliderNew *slider_new) +{ + return slider_new->gesture; +} + +void ivug_reset_zoom(Ivug_SliderNew *slider_new) +{ + slider_new->bZooming = false; + elm_photocam_zoom_mode_set(slider_new->photocam, ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT); + +} + +bool ivug_iszoom_enabled(Ivug_SliderNew *slider_new) +{ + return slider_new->bZooming; +} + +bool ivug_isslide_enabled(Ivug_SliderNew *slider_new) +{ + return slider_new->bSliding; +} + +bool ivug_isphotocam_reset(Ivug_SliderNew *slider_new) +{ + return slider_new->pcreset; +} + +void ivug_set_photocam_reset(Ivug_SliderNew *slider_new) +{ + slider_new->pcreset = false; +} + +void ivug_slider_new_move_item(Ivug_SliderNew *slider_new, Media_Item *item) +{ + +} + +void ivug_slider_new_reload(Ivug_SliderNew *slider_new) +{ + MSG_HIGH("QSlider(0x%08x) Reload", slider_new); +} + +void ivug_slider_new_region_get(Ivug_SliderNew *slider_new, int *x, int *y, int *w, int *h) +{ + +} + +void ivug_slider_new_region_image_get(Ivug_SliderNew *slider_new, int x, int y, int w, int h) +{ + MSG_ASSERT(0); + +// Bitmap *bitmap = NULL; +// bitmap = slider_new->qphoto->Qphoto_region_image_get(x, y, w, h); // Current display coord. +} + +int ivug_slider_new_get_cur_index(Ivug_SliderNew *slider_new) +{ + return 0; +} + +void ivug_slider_new_change_view_size(Ivug_SliderNew *slider_new, int w, int h) +{ + + int wx, wy, ww, wh; + evas_object_geometry_get((Evas_Object *)ug_get_window(), &wx, &wy, &ww, &wh); + + int rot = elm_win_rotation_get((Evas_Object *)ug_get_window()); + + int fw, fh; + ecore_x_window_size_get(ecore_x_window_root_first_get(), &fw, &fh); // Portrait size. + + if ((rot % 180) != 0 ) + { + std::swap(fw,fh); + } + +// Landscape Mode -> SIP visible --> Window geometry is 1280x729.... +// Rotate in E-mail.. WH=1225x1280 + + MSG_HIGH("Set new Size : Win(%d,%d,%d,%d) WH(%d,%d)", wx, wy, ww, wh, fw, fh); +} + +void ivug_slider_new_delete_cur_image(Ivug_SliderNew *slider_new) +{ + +} + +void ivug_slider_set_changed_callback(Ivug_SliderNew *slider_new, callback_t callback, void *data) +{ + MSG_HIGH("Slider(0x%08x) Set changed callback. CB=0x%08x", slider_new, callback); + slider_new->changed_cb = callback; + slider_new->changed_data = data; +} + +void ivug_slider_call_changed_callback(Ivug_SliderNew *slider_new, Media_Item *cur_mItem) +{ + MSG_HIGH("Slider(0x%08x) call changed callback", slider_new); + + _ivug_slider_new_changed_cb(NULL, cur_mItem, slider_new); +} + +void ivug_slider_set_loaded_callback(Ivug_SliderNew *slider_new, callback_t callback, void *data) +{ + MSG_HIGH("Slider(0x%08x) Set loaded callback. CB=0x%08x", slider_new, callback); + slider_new->loaded_cb = callback; + slider_new->loaded_data = data; +} + +void ivug_slider_set_location_callback(Ivug_SliderNew *slider_new, location_callback_t callback, void *data) +{ + +} + +void ivug_slider_new_image_size_get(Ivug_SliderNew *slider_new, int *w, int *h) +{ + MSG_HIGH("ivug_slider_new_image_size_get w=%d, h=%d", *w, *h); +} + +void ivug_slider_new_update_list(Ivug_SliderNew *slider_new, Media_List *mList) +{ + ivug_media_list_free(slider_new->mList); + + slider_new->mList = mList; +} + +void ivug_slider_new_set_orientation(Ivug_SliderNew *slider_new, int orientation) +{ + MSG_HIGH("ivug_slider_new_set_orientation orientation=%d", orientation); + slider_new->orientation = orientation; +} + +int ivug_slider_new_get_orientation(Ivug_SliderNew *slider_new) +{ + MSG_HIGH("ivug_slider_new_get_orientation orientation=%d", slider_new->orientation); + return slider_new->orientation; +} + +void ivug_slider_new_agif_enable(Ivug_SliderNew *slider_new, bool enable) +{ + +} + +void ivug_slider_new_mouse_enable(Ivug_SliderNew *slider_new, bool enable) +{ + MSG_HIGH("Slider Mouse Enabled=%d", enable); +} + +void ivug_slider_new_rotate(Ivug_SliderNew *slider_new, int degree) +{ + +} + +float ivug_slider_new_get_zoom(Ivug_SliderNew *slider_new) +{ + float zoom = 0.0; + + MSG_ERROR("ivug_slider_new_get_zoom zoom=%f", zoom); + return zoom; +} +void ivug_slider_new_hide_play_icon(Ivug_SliderNew *slider_new) +{ + MSG_HIGH("Hiding play icon"); + ivug_decolayer_hide_play_icon(slider_new->icon_layer); +} + diff --git a/main/src/slider/ivug-slider-priv.h b/main/src/slider/ivug-slider-priv.h deleted file mode 100755 index c39aafc..0000000 --- a/main/src/slider/ivug-slider-priv.h +++ /dev/null @@ -1,195 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 __IVUG_SLIDER_PRIV_H__ -#define __IVUG_SLIDER_PRIV_H__ - -#include "ivug-define.h" -#include "ivug-medialist.h" - -/*********************************************************************/ -/* Configuration */ -/*********************************************************************/ - -/* elm_config_finger_size_get = 40 */ -#define IMAGE_BETWEEN_MARGIN (30) // The value is width between photocam(unit is pixel). -#define IMAGE_MOVE_MARGIN ((int)IMAGE_BETWEEN_MARGIN*0.8) -/* If moved width is larger than IMAGE_SCROLL_MARGIN, image is scrolled */ -#define IMAGE_SCROLL_MARGIN (5) /* vertical move doen't over 5 pixel width */ -#define LONG_PRESS_MARGIN ((int)(elm_config_finger_size_get() / 3)) - - -#define ANIN_VELOCITY (5000) - -#undef ENABLE_Y_SCR - -typedef int slide_edge_t; - -namespace EDGE { - const int SLIDE_NO_EDGE = (1<<0); // 1 - - const int SLIDE_LEFT_EDGE = (1<<1); // 2 - const int SLIDE_RIGHT_EDGE = (1<<2); // 4 - -#ifdef ENABLE_Y_SCR - const int SLIDE_TOP_EDGE = (1<<3); // 8 - const int SLIDE_BOTTOM_EDGE = (1<<4); // 16 -#endif - - const int SLIDE_FIT = SLIDE_LEFT_EDGE | SLIDE_RIGHT_EDGE -#ifdef ENABLE_Y_SCR - | SLIDE_TOP_EDGE | SLIDE_BOTTOM_EDGE -#endif - ; -}; - -typedef enum { - SLIDE_SHIFT_NONE = 0x00, - SLIDE_SHIFT_TO_RIGHT, // <---------------------Mouse - SLIDE_SHIFT_TO_LEFT, // Mouse---------------------> -} shift_direction_t; - -class ECoreAnimator; -class CAnimator; - -#undef USE_CALC_JOB - -// slider -typedef struct Smart_Data -{ - Evas_Object *obj; // smart object itself. - Evas_Coord x, y, w, h; // Geometry of slider - - Evas_Object *clipper; - -//silde - Slide_Item* slide[MAX_SLIDE]; - -//data list - Eina_Bool bShow; - - Media_List* media_list; // Storing entire media list. - -// for flick anim - CAnimator *tween; - ECoreAnimator *anim; - - shift_direction_t last_dir; - int momentum; - -//Mouse event handler - Evas_Object *event_obj; // Mouse event receiver. - Evas_Object *gesture; - - bool bPassEvent; - bool bZooming; - - int prev_x; - int prev_y; - - bool bLongtapEnable; - bool bMomentumStarted; - - int longtap_count; - int longtap_prev_x; - int longtap_prev_y; - - slide_edge_t edge; - - Ecore_Idler *load_idler; - Ecore_Idler *item_load_idler; - - unsigned int zoom_level; - -#ifdef USE_CALC_JOB - Ecore_Job *calc_job; -#endif - - -} _Smart_Data; - - -#ifdef __cplusplus -extern "C" { -#endif - - - -// Common function between slide show and slider. - -void _ivug_slider_slide_move(struct Smart_Data *sd, Evas_Coord x, Evas_Coord y); - -// Common function between slide and slide mouse. - -void _ivug_slider_start_slide(struct Smart_Data *sd, int src_x, int dst_x, int momentum); - -void _ivug_slider_slide_shift(struct Smart_Data *sd, shift_direction_t direction); - -Evas_Event_Flags _zoom_start(void *data, void *event_info); - -Evas_Event_Flags _zoom_move(void *data, void *event_info); - -Evas_Event_Flags _zoom_end(void *data, void *event_info); - -Evas_Event_Flags _zoom_abort(void *data, void *event_info); - -Evas_Event_Flags _momentum_start(void *data, void *event_info); - -Evas_Event_Flags _momentum_move(void *data, void *event_info); - -Evas_Event_Flags _momentum_end(void *data, void *event_info); - -Evas_Event_Flags _momentum_abort(void *data, void *event_info); - -Evas_Event_Flags _dbl_click_start(void *data , void *event_info); - -Evas_Event_Flags _dbl_click_end(void *data , void *event_info); - -Evas_Event_Flags _dbl_click_abort(void *data , void *event_info); - -Evas_Event_Flags _flick_start(void *data, void *event_info); - -Evas_Event_Flags _flick_move(void *data, void *event_info); - -Evas_Event_Flags _flick_end(void *data, void *event_info); - -Evas_Event_Flags _flick_abort(void *data, void *event_info); - -Evas_Event_Flags n_finger_tap_start(void *data , void *event_info); - -Evas_Event_Flags n_finger_tap_end(void *data , void *event_info); - -Evas_Event_Flags n_finger_tap_abort(void *data , void *event_info); - -Evas_Event_Flags n_long_tap_start(void *data , void *event_info); - -Evas_Event_Flags n_long_tap_move(void *data , void *event_info); - -Evas_Event_Flags n_long_tap_end(void *data , void *event_info); - -Evas_Event_Flags n_long_tap_abort(void *data , void *event_info); - -void _put_originate(struct Smart_Data *sd, shift_direction_t dir, int momentum); - - -#ifdef __cplusplus -} -#endif - - - -#endif // __IVUG_SLIDER_PRIV_H__ - diff --git a/main/src/slider/ivug-slider.cpp b/main/src/slider/ivug-slider.cpp deleted file mode 100755 index c737184..0000000 --- a/main/src/slider/ivug-slider.cpp +++ /dev/null @@ -1,1397 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 // ug_destroy_me, ug_send_result - -#include "ivug-slider.h" -#include "ivug-common.h" - -#include "ivug-parameter.h" -#include "ivug-define.h" -#include "ivug-config.h" - -#include "ivug-util.h" -#include "ivug-medialist.h" -#include "ivug-media.h" - -#include "ivug-drm-common.h" -#include "ivug-mouse-event.h" -#include "ivug-slider-item.h" - -#include "ivug-slider-priv.h" - - -#include "ivug-image.h" - -#include "Animation.h" -#include "ECoreAnimator.h" -#include "ivug-slideshow.h" -#include "EFLUtil.h" - -#define LOG_CAT "IV-SLIDER" - -/* local subsystem globals */ -static Evas_Smart *_smart_ = NULL; - -#define USE_CLIPPER - -// Forward declaration -void _ivug_slider_slide_resize(struct Smart_Data *sd, Evas_Coord w, Evas_Coord h); -void _ivug_slider_slide_move(struct Smart_Data *sd, Evas_Coord x, Evas_Coord y); - -const char *_GetStateString(slide_state_t state) -{ - static const char *szState[] = - { - "None", - "Set", - "Downloading", - "DRM Checking", - "Ready", - "Loading", - "Loaded", - "Download Failed", - "No Right", - "Error", - }; - - return szState[state]; -} - -static Eina_Bool _idler_loading_func(void* data) -{ - struct Smart_Data *sd = static_cast(data); - - sd->load_idler = NULL; - MSG_SLIDER_MED("Do idle loading."); - - int i; - if ( sd->slide[CENTER_SLIDE]->state == SLIDE_STATE_READY ) // Center image must be loaded even while other image is loading. - { - MSG_SLIDER_MED("Idler. Load center item"); - ivug_slider_item_load(sd->slide[CENTER_SLIDE]); - goto end; - } - - for ( i = 0; i < MAX_SLIDE ; i++) - { - if ( sd->slide[i]->state == SLIDE_STATE_LOADING ) - { - goto end; - } - } - - if ( sd->slide[NEXT_SLIDE]->state == SLIDE_STATE_READY ) - { - MSG_SLIDER_MED("Idler. Load next item"); - ivug_slider_item_load(sd->slide[NEXT_SLIDE]); - goto end; - } - - if ( sd->slide[PREV_SLIDE]->state == SLIDE_STATE_READY ) - { - MSG_SLIDER_MED("Idler. Load prev item"); - ivug_slider_item_load(sd->slide[PREV_SLIDE]); - goto end; - } - - MSG_SLIDER_WARN("Idler. Nothing to do."); -end: - MSG_SLIDER_HIGH("Set Data loading State=%s,%s,%s", - _GetStateString(sd->slide[PREV_SLIDE]->state), - _GetStateString(sd->slide[CENTER_SLIDE]->state), - _GetStateString(sd->slide[NEXT_SLIDE]->state) - ); - - return ECORE_CALLBACK_CANCEL; - -} - -#define _do_load(sd) _do_load_dbg(sd, __func__, __LINE__) - -static void _do_load_dbg(struct Smart_Data *sd, const char *file, int line) -{ - if ( sd->load_idler ) - { - ecore_idler_del(sd->load_idler); - sd->load_idler = NULL; - } - - MSG_SLIDER_HIGH("Add idler for loading. from %s(%d)", file, line); - sd->load_idler = ecore_idler_add(_idler_loading_func, sd); -} - -static void _ivug_slider_on_center_changed(Evas_Object *obj, Slide_Item *old, Slide_Item *cur) -{ - IV_ASSERT(old != cur ); - - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - - if ( old != NULL ) - { - ivug_slider_item_zoom_reset(old, EINA_FALSE, 0, 0); - ivug_slider_item_stop(old); // Stop DRM consume/Animation - } - - if(cur->state == SLIDE_STATE_LOADED) - { - ivug_slider_item_play(cur); - } - else - { - MSG_SLIDER_ERROR("Center changed. but Invalid state : %s", _GetStateString(cur->state)); - } - - Media_Item *mitem = NULL; - - mitem = cur->mitem; - - if ( mitem != NULL ) - { - Media_Data *pData = ivug_medialist_get_data(mitem); - - MSG_SLIDER_HIGH("Center item changed. %s State=%s", ivug_get_filename(pData->filepath), _GetStateString(cur->state)); - } - else - { - MSG_SLIDER_WARN("Center item changed. but Center item is NULL."); - } - - evas_object_smart_callback_call(sd->obj, "slider,item,changed", cur); -} - -void _ivug_slider_item_state_changed(slide_state_t state, Slide_Item *si, void *client_data) -{ - struct Smart_Data *sd = static_cast(client_data); - IV_ASSERT(sd != NULL); - - if ( sd->slide[CENTER_SLIDE] == si ) - { - MSG_SLIDER_HIGH("Center Item state changed. Old=%s New=%s", _GetStateString(state), _GetStateString(si->state)); - - if ( state == SLIDE_STATE_LOADED ) - { - ivug_slider_item_play(si); - evas_object_smart_callback_call(sd->obj, "slider,item,state,changed", si); - } - else if (state == SLIDE_STATE_DOWNLOAD_FAILED) - { - evas_object_smart_callback_call(sd->obj, "slider,item,state,changed", si); - } - else - { - evas_object_smart_callback_call(sd->obj, "slider,item,state,changed", si); - } - } - - _do_load(sd); - -} - -static void _on_event_mouse_down(void *data, Evas *evas, Evas_Object *obj, void *event_info) -{ - MSG_SLIDER_HIGH("Event layer clicked : %s Layer=%d", evas_object_name_get(obj), evas_object_layer_get(obj)); -} - - -static void _on_event_mouse_wheel(void *data, Evas *evas, Evas_Object *obj, void *event_info) -{ - Evas_Event_Mouse_Wheel *Info = (Evas_Event_Mouse_Wheel *)event_info; - - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get((Evas_Object *)data); - -#if 0 -struct _Evas_Event_Mouse_Wheel /** Wheel event */ -{ - int direction; /* 0 = default up/down wheel FIXME: more wheel types */ - int z; /* ...,-2,-1 = down, 1,2,... = up */ - - Evas_Point output; /**< The X/Y location of the cursor */ - Evas_Coord_Point canvas; /**< The X/Y location of the cursor */ - - void *data; - Evas_Modifier *modifiers; /**< modifier keys pressed during the event */ - Evas_Lock *locks; - unsigned int timestamp; - Evas_Event_Flags event_flags; - Evas_Device *dev; -}; -#endif -/* -W/IV-SLIDER( 2557): 0:00:18.005[F:ivug-slider.cpp L: 322][HIGH] Mouse Wheel. Dir=0 Z=1 Event=0 --> Wheel downward --> View Next -W/IV-SLIDER( 2557): 0:00:18.292[F:ivug-slider.cpp L: 322][HIGH] Mouse Wheel. Dir=0 Z=-1 Event=0 --> Wheel upward --> View Prev -*/ - - if ( Info->z == 1 ) - { - _put_originate(sd, SLIDE_SHIFT_TO_RIGHT, ANIN_VELOCITY); - } - else if ( Info->z == -1) - { - _put_originate(sd, SLIDE_SHIFT_TO_LEFT, ANIN_VELOCITY); - } - - - MSG_SLIDER_MED("Mouse Wheel. Dir=%d Z=%d Event=%d", Info->direction, Info->z, Info->event_flags); -} - - - -static Eina_Bool _item_loader_idler(void* data) -{ - IV_ASSERT(data != NULL); - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get((Evas_Object *)data); - - sd->item_load_idler = NULL; - - Slide_Item *si = sd->slide[CENTER_SLIDE]; - - MSG_SLIDER_MED("Center Image load again"); - si->state = SLIDE_STATE_READY; - - ivug_slider_item_load(si); - - return ECORE_CALLBACK_CANCEL; -} - -static void _sizing_eval(void *data) -{ - struct Smart_Data *sd = (struct Smart_Data *)data; - -#ifdef USE_CALC_JOB - sd->calc_job = NULL; -#endif - - MSG_SLIDER_MED("Object geometry resized. (%d,%d,%d,%d)", sd->x, sd->y , sd->w , sd->h); - -#ifdef USE_CLIPPER - evas_object_move(sd->clipper, sd->x, sd->y); - evas_object_resize(sd->clipper, sd->w, sd->h); -#endif - - evas_object_move(sd->event_obj, sd->x, sd->y); - evas_object_resize(sd->event_obj, sd->w, sd->h); - - evas_object_smart_changed(sd->obj); -} - -static void -_ivug_slider_smart_add(Evas_Object *obj) -{ - MSG_SLIDER_MED("Slider Add : 0x%08x", obj); - - PERF_CHECK_BEGIN(LVL4, "slider smart add"); - - PERF_CHECK_BEGIN(LVL5, "initialize memory"); - - struct Smart_Data *sd = (struct Smart_Data *)calloc(1, sizeof(struct Smart_Data)); - IV_ASSERT(sd != NULL); - - evas_object_smart_data_set(obj, sd); - - sd->obj = obj; - sd->momentum = 0; - - sd->anim = new ECoreAnimator(); - - sd->edge = EDGE::SLIDE_FIT; - sd->last_dir = SLIDE_SHIFT_TO_RIGHT; /* default for first loading*/ - sd->bPassEvent = false; - sd->bLongtapEnable = true; - - evas_object_data_set(obj, "conf-use-inline", (void *)0); - - PERF_CHECK_END(LVL5, "initialize memory"); - - - //create slider item. - for (int idx = 0; idx < MAX_SLIDE; idx++) - { - PERF_CHECK_BEGIN(LVL5, "add slider item"); - sd->slide[idx] = ivug_slider_item_add(obj); - - ivug_slider_item_set_callback(sd->slide[idx], _ivug_slider_item_state_changed, sd); - - PERF_CHECK_END(LVL5, "add slider item"); - } - - PERF_CHECK_BEGIN(LVL5, "create child objects"); - - sd->event_obj = evas_object_rectangle_add(evas_object_evas_get(obj)); - evas_object_name_set(sd->event_obj, "slider-event"); - evas_object_color_set(sd->event_obj , 0, 0, 0, 0); // Fully Transparent object. - evas_object_size_hint_align_set(sd->event_obj, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_size_hint_weight_set(sd->event_obj, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_repeat_events_set(sd->event_obj, EINA_TRUE); - evas_object_show(sd->event_obj); - - evas_object_smart_member_add(sd->event_obj, obj); - - sd->gesture = elm_gesture_layer_add(sd->event_obj); - elm_gesture_layer_hold_events_set(sd->gesture, EINA_FALSE); - - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_ZOOM, ELM_GESTURE_STATE_START, _zoom_start, obj); - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_ZOOM, ELM_GESTURE_STATE_MOVE, _zoom_move, obj); - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_ZOOM, ELM_GESTURE_STATE_END, _zoom_end, obj); - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_ZOOM, ELM_GESTURE_STATE_ABORT, _zoom_abort, obj); - - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_MOMENTUM, ELM_GESTURE_STATE_START, _momentum_start, obj); - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_MOMENTUM, ELM_GESTURE_STATE_MOVE, _momentum_move, obj); - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_MOMENTUM, ELM_GESTURE_STATE_END, _momentum_end, obj); - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_MOMENTUM, ELM_GESTURE_STATE_ABORT, _momentum_abort, obj); - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_N_FLICKS, ELM_GESTURE_STATE_START, _flick_start, obj); - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_N_FLICKS, ELM_GESTURE_STATE_END, _flick_move, obj); - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_N_FLICKS, ELM_GESTURE_STATE_END, _flick_end, obj); - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_N_FLICKS, ELM_GESTURE_STATE_ABORT, _flick_abort, obj); - - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_N_DOUBLE_TAPS, ELM_GESTURE_STATE_START, _dbl_click_start, obj); - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_N_DOUBLE_TAPS, ELM_GESTURE_STATE_END, _dbl_click_end, obj); - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_N_DOUBLE_TAPS, ELM_GESTURE_STATE_ABORT, _dbl_click_abort, obj); - - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_N_TAPS, ELM_GESTURE_STATE_START, n_finger_tap_start, obj); - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_N_TAPS, ELM_GESTURE_STATE_END, n_finger_tap_end, obj); - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_N_TAPS, ELM_GESTURE_STATE_ABORT, n_finger_tap_abort, obj); - - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_N_LONG_TAPS, ELM_GESTURE_STATE_START, n_long_tap_start, obj); - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_N_LONG_TAPS, ELM_GESTURE_STATE_MOVE, n_long_tap_move, obj); - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_N_LONG_TAPS, ELM_GESTURE_STATE_END, n_long_tap_end, obj); - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_N_LONG_TAPS, ELM_GESTURE_STATE_ABORT, n_long_tap_abort, obj); - - if ( elm_gesture_layer_attach(sd->gesture, sd->event_obj) == EINA_FALSE) - { - MSG_SLIDER_ERROR("Cannot attach event rect"); - } - evas_object_name_set(sd->gesture, "Slider:Getsture"); - - evas_object_event_callback_add(obj, EVAS_CALLBACK_MOUSE_DOWN, _on_event_mouse_down, NULL); - evas_object_event_callback_add(sd->event_obj, EVAS_CALLBACK_MOUSE_DOWN, _on_event_mouse_down, NULL); - - evas_object_event_callback_add(sd->event_obj, EVAS_CALLBACK_MOUSE_WHEEL, _on_event_mouse_wheel, obj); - - sd->bLongtapEnable = true; - -#if 0 - for (int idx = 0; idx < MAX_SLIDE; idx++) - { - // Video iconÀÌ event¸¦ ¸ÕÀú ¹Þ°Ô Çϱâ À§ÇØ z orderÀ» º¯°æ ÇÑ´Ù. - evas_object_stack_above(sd->slide[idx]->vIcon, sd->event_obj); - } -#endif - - -#ifdef USE_CLIPPER - sd->clipper = evas_object_rectangle_add(evas_object_evas_get(obj)); - evas_object_color_set(sd->clipper, 255,255,255,255); - evas_object_smart_member_add(sd->clipper, obj); - evas_object_name_set(sd->clipper, "slider-clipper"); - - MSG_SLIDER_MED("Create clipper(0x%08x)", sd->clipper); - - evas_object_show(sd->clipper); -#endif - - PERF_CHECK_END(LVL5, "create child objects"); - - PERF_CHECK_END(LVL4, "slider smart add"); - - return; - -} - -static void -_ivug_slider_smart_del(Evas_Object *obj) -{ - MSG_SLIDER_MED("Slider delete. obj=0x%08x", obj); - - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - ivug_ret_if(!sd); - - if ( sd->tween) delete sd->tween; - sd->tween = NULL; - - if ( sd->anim) delete sd->anim; - sd->anim = NULL; - - if ( sd->item_load_idler ) - { - ecore_idler_del(sd->item_load_idler); - sd->item_load_idler = NULL; - } - - if ( sd->load_idler ) - { - ecore_idler_del(sd->load_idler); - sd->load_idler = NULL; - } - -#ifdef USE_CALC_JOB - if ( sd->calc_job ) ecore_job_del(sd->calc_job); - sd->calc_job = NULL; -#endif - - if ( sd->event_obj ) - { - evas_object_event_callback_del_full(sd->event_obj, EVAS_CALLBACK_MOUSE_WHEEL, _on_event_mouse_wheel, obj); - - evas_object_del(sd->event_obj); - sd->event_obj = NULL; - } - - if ( sd->gesture ) - { - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_ZOOM, ELM_GESTURE_STATE_ABORT, NULL, NULL); - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_MOMENTUM, ELM_GESTURE_STATE_ABORT, NULL, NULL); - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_N_FLICKS, ELM_GESTURE_STATE_ABORT, NULL, NULL); - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_N_DOUBLE_TAPS, ELM_GESTURE_STATE_ABORT, NULL, NULL); - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_N_TAPS, ELM_GESTURE_STATE_ABORT, NULL, NULL); - elm_gesture_layer_cb_set(sd->gesture, ELM_GESTURE_N_LONG_TAPS, ELM_GESTURE_STATE_ABORT, NULL, NULL); - - evas_object_del(sd->gesture); - sd->gesture = NULL; - } - - for (int i = 0; i < MAX_SLIDE ; i++) //delete layout - { - ivug_slider_item_del(sd->slide[i]); - sd->slide[i] = NULL; - } - - -#ifdef USE_CLIPPER - if ( sd->clipper ) - { - evas_object_del(sd->clipper); - sd->clipper = NULL; - } -#endif - - - free(sd); - -} - - -static void -_ivug_slider_smart_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y) -{ - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - MSG_ASSERT(sd != NULL); - - if ((sd->x == x) && (sd->y == y)) return; - - MSG_SLIDER_MED("Slider Move : XY(%d,%d,%d,%d)", x, y, sd->w, sd->h); - - sd->x = x; - sd->y = y; - -#ifdef USE_CALC_JOB - if ( sd->calc_job ) ecore_job_del(sd->calc_job); - sd->calc_job = NULL; - - sd->calc_job = ecore_job_add(_sizing_eval, sd); -#else - _sizing_eval(sd); -#endif - -} - -static void -_ivug_slider_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h) -{ - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - MSG_ASSERT(sd != NULL); - - if ((sd->w == w) && (sd->h == h)) return; - - MSG_SLIDER_MED("Slider Resize : XY(%d,%d,%d,%d)", sd->x, sd->y , w, h); - - - sd->w = w; - sd->h = h; - -#ifdef USE_CALC_JOB - if ( sd->calc_job ) ecore_job_del(sd->calc_job); - sd->calc_job = NULL; - - sd->calc_job = ecore_job_add(_sizing_eval, sd); -#else - _sizing_eval(sd); -#endif - -} - -static void -_ivug_slider_smart_show(Evas_Object *obj) -{ - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - MSG_ASSERT(sd != NULL); - - if ( sd->bShow == EINA_TRUE) return; - - sd->bShow = EINA_TRUE; - - MSG_SLIDER_MED("Slider Show"); - - ivug_slider_item_show(sd->slide[CENTER_SLIDE]); - ivug_slider_item_show(sd->slide[NEXT_SLIDE]); - ivug_slider_item_show(sd->slide[PREV_SLIDE]); - - evas_object_show(sd->event_obj); - -} - -static void -_ivug_slider_smart_hide(Evas_Object *obj) -{ - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - MSG_ASSERT(sd != NULL); - - if ( sd->bShow == EINA_FALSE) return; - - sd->bShow = EINA_FALSE; - - MSG_SLIDER_MED("Slider Hide"); - - ivug_slider_item_hide(sd->slide[CENTER_SLIDE]); - ivug_slider_item_hide(sd->slide[NEXT_SLIDE]); - ivug_slider_item_hide(sd->slide[PREV_SLIDE]); - - evas_object_hide(sd->event_obj); -} - -static void -_ivug_slider_smart_clip_set(Evas_Object *obj, Evas_Object * clip) -{ - int x, y, w, h; - evas_object_geometry_get(clip, &x, &y, &w, &h); - MSG_SLIDER_MED("Slider Clip set : Clipper=0x%08x (%d,%d,%d,%d)", clip, x, y, w, h); - -#ifdef USE_CLIPPER - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - - for (int i = 0; i < MAX_SLIDE; i++) - { //set resize - ivug_slider_item_clip_set(sd->slide[i], sd->clipper); - } - - evas_object_clip_set(sd->event_obj, sd->clipper); -#endif - -} - -static void -_ivug_slider_smart_clip_unset(Evas_Object *obj) -{ - MSG_SLIDER_MED("Slider Clip unset"); - -#ifdef USE_CLIPPER - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - - for (int i = 0; i < MAX_SLIDE; i++) - { //set resize - ivug_slider_item_clip_unset(sd->slide[i]); - } - - evas_object_clip_unset(sd->event_obj); -#endif - -} - -static void -_ivug_slider_smart_calculate(Evas_Object *obj) -{ - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - if ((sd->w == 0) || (sd->h == 0)) return; - - MSG_SLIDER_MED("Slider Calculate : XYWH(%d,%d, %d,%d)", sd->x, sd->y, sd->w, sd->h); - - sd->anim->Stop(); - - if ( sd->tween ) delete sd->tween; - sd->tween = NULL; - - _ivug_slider_slide_resize(sd, sd->w, sd->h); - _ivug_slider_slide_move(sd, sd->x, sd->y); -} - -// Smart Object -static void -_ivug_slider_smart_init(void) -{ - if (_smart_) return; - - { - PERF_CHECK_BEGIN(LVL3, "ivug_slider_smart_init"); - - const char* name = eina_stringshare_add("ivug-slider"); - MSG_SLIDER_MED("name=%s", name); - static Evas_Smart_Class sc = - { - NULL, - EVAS_SMART_CLASS_VERSION, - _ivug_slider_smart_add, - _ivug_slider_smart_del, - _ivug_slider_smart_move, - _ivug_slider_smart_resize, - _ivug_slider_smart_show, - _ivug_slider_smart_hide, - NULL, - _ivug_slider_smart_clip_set, - _ivug_slider_smart_clip_unset, - _ivug_slider_smart_calculate, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL - }; //Evas_smart_Class - sc.name = name; - _smart_ = evas_smart_class_new(&sc); - - PERF_CHECK_END(LVL3, "ivug_slider_smart_init"); - } -} - - -/******* slide UI function *******/ - -void -_ivug_slider_slide_move(struct Smart_Data *sd, Evas_Coord x, Evas_Coord y) -{ - IV_ASSERT(sd != NULL); - - MSG_SLIDER_LOW("Slider move. XY(%d,%d)", x, y); -#if 0 - int nOffset = 100; // For debugging - x += nOffset; -#endif - ivug_slider_item_move(sd->slide[CENTER_SLIDE], x, y); - - ivug_slider_item_move(sd->slide[PREV_SLIDE], x - sd->slide[PREV_SLIDE]->w - IMAGE_BETWEEN_MARGIN , y); - ivug_slider_item_move(sd->slide[NEXT_SLIDE], x + sd->slide[CENTER_SLIDE]->w + IMAGE_BETWEEN_MARGIN , y); -} - -void -_ivug_slider_slide_resize(struct Smart_Data *sd, Evas_Coord w, Evas_Coord h) -{ - IV_ASSERT(sd != NULL); - - ivug_slider_item_resize(sd->slide[CENTER_SLIDE], sd->w, sd->h); - ivug_slider_item_resize(sd->slide[PREV_SLIDE], sd->w, sd->h); - ivug_slider_item_resize(sd->slide[NEXT_SLIDE], sd->w, sd->h); -} - - -static void _ivug_slider_on_tween(double value, void *data) -{ - struct Smart_Data *sd = (struct Smart_Data *)data; - - _ivug_slider_slide_move(sd, value, sd->y); -} - -static void _ivug_slider_on_moment(double value, void *data) -{ - struct Smart_Data *sd = (struct Smart_Data *)data; - - sd->momentum = value; -} - -static bool _ivug_slider_on_ecore_animator(double value, void *pData) -{ - struct Smart_Data *sd = (struct Smart_Data *)pData; - - if ( sd->tween->IsFinished() ) - { - MSG_SLIDER_HIGH("animation ended"); - - shift_direction_t direction = SLIDE_SHIFT_NONE; - - if ( (sd->slide[CENTER_SLIDE]->x - sd->x) + sd->slide[CENTER_SLIDE]->w < 0 ) - { - direction = SLIDE_SHIFT_TO_RIGHT; - } - else if ( (sd->slide[CENTER_SLIDE]->x - sd->x) > sd->w ) - { - direction = SLIDE_SHIFT_TO_LEFT; - } - - _ivug_slider_slide_shift(sd, direction); // Change center item - - delete sd->tween; - sd->tween = NULL; - return false; - } - - MSG_SLIDER_LOW("On Animaion. %f ", value); - - sd->tween->Update(value); - - return true; -} - -void -_ivug_slider_start_slide(struct Smart_Data *sd, int src_x, int dst_x, int momentum) - { - // Slider Move animation. - IV_ASSERT(sd != NULL); - - if ( sd->anim == NULL ) - { - // When destroying gesture, abort message is comming. EFL behavior may be changed. - MSG_SLIDER_WARN("Slider is destroying..."); - return; - } - - sd->anim->Stop(); - - if ( sd->tween ) delete sd->tween; - sd->tween = NULL; - - if ( src_x == dst_x ) - { - MSG_SLIDER_ERROR("Src and Dest are same."); - return; - } - - double duration; - - duration = (src_x - dst_x) / (double)momentum; - - duration = fabs(duration); - - sd->tween = new CGroupAnimator(); - - sd->tween->AddAnimator(new CSingleAnimator(src_x, dst_x, duration, CTranstionFunc::EaseInoutTransit, _ivug_slider_on_tween, sd)); - sd->tween->AddAnimator(new CSingleAnimator(sd->momentum, 0, duration, CTranstionFunc::EaseInoutTransit, _ivug_slider_on_moment, sd)); - - sd->anim->Start(_ivug_slider_on_ecore_animator, (void *)sd); - - MSG_SLIDER_HIGH("Start scroll anim from %d~%d duration=%f Momentyum=%d~%d", src_x, dst_x, duration, sd->momentum, sd->momentum + (src_x - dst_x)); - -} - -void -_ivug_slider_slide_shift(struct Smart_Data *sd, shift_direction_t direction) -{ - IV_ASSERT(sd != NULL); - - if ( direction == SLIDE_SHIFT_NONE ) - { - MSG_SLIDER_ERROR("Shift none!. just return"); - return; - } - - sd->zoom_level = 0; //reset zoom level - - Media_Item *item = NULL; - Slide_Item *NewItem = NULL; - - if ( direction == SLIDE_SHIFT_TO_RIGHT ) - { - MSG_SLIDER_HIGH( "Slide shited. <-----"); - - NewItem = sd->slide[PREV_SLIDE]; - - item = ivug_medialist_get_next(sd->media_list, sd->slide[NEXT_SLIDE]->mitem); - - sd->slide[PREV_SLIDE] = sd->slide[CENTER_SLIDE]; - sd->slide[CENTER_SLIDE] = sd->slide[NEXT_SLIDE]; - sd->slide[NEXT_SLIDE] = NewItem; - - } - else - { - MSG_SLIDER_HIGH( "Slide shited. ----->"); - - NewItem = sd->slide[NEXT_SLIDE]; - item = ivug_medialist_get_prev(sd->media_list, sd->slide[PREV_SLIDE]->mitem); - - sd->slide[NEXT_SLIDE] = sd->slide[CENTER_SLIDE]; - sd->slide[CENTER_SLIDE] = sd->slide[PREV_SLIDE]; - sd->slide[PREV_SLIDE] = NewItem; - } - - ivug_slider_item_data_set(NewItem, item); //set data. - - MSG_SLIDER_MED("Center slide. XY(%d,%d)", sd->slide[CENTER_SLIDE]->x , sd->slide[CENTER_SLIDE]->y); - - sd->last_dir = direction; - - if ( direction == SLIDE_SHIFT_TO_RIGHT ) - { - _ivug_slider_on_center_changed(sd->obj, sd->slide[PREV_SLIDE], sd->slide[CENTER_SLIDE]); - } - else - { - _ivug_slider_on_center_changed(sd->obj, sd->slide[NEXT_SLIDE], sd->slide[CENTER_SLIDE]); - } - - _do_load(sd); - -} - - -Evas_Object* -ivug_slider_add(Evas_Object* parent) -{ - Evas_Object *obj = NULL; - - _ivug_slider_smart_init(); //init smart object for ivug slider - - PERF_CHECK_BEGIN(LVL3, "evas_object_smart_add"); - - obj = evas_object_smart_add(evas_object_evas_get(parent), _smart_); //create smart object. - evas_object_name_set(obj, "Slider"); - - ivug_retv_if(!obj, NULL); - - PERF_CHECK_END(LVL3, "evas_object_smart_add"); - - MSG_SLIDER_HIGH("Slider Added Obj(0x%08x) Evas(0x%08x) Parent(0x%08x)", obj, evas_object_evas_get(parent), parent); - - return obj; -} - -void -ivug_slider_start(Evas_Object *obj) -{ - IV_ASSERT(obj != NULL); - - MSG_SLIDER_HIGH("Slider start"); - - ivug_slider_load(obj); - -} - -Slide_Item * -ivug_slider_get_sitem(Evas_Object* obj) -{ - IV_ASSERT(obj != NULL); - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - - return sd->slide[CENTER_SLIDE]; -} - -Media_Item * -ivug_slider_get_item(Evas_Object* obj) -{ - IV_ASSERT(obj != NULL); - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - - return sd->slide[CENTER_SLIDE]->mitem; -} - -slide_state_t -ivug_slider_get_state(Evas_Object* obj) -{ - IV_ASSERT(obj != NULL); - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - IV_ASSERT(sd != NULL); - - return sd->slide[CENTER_SLIDE]->state; -} - -void -ivug_slider_delete_item(Evas_Object* obj) -{ - IV_ASSERT(obj != NULL); - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - IV_ASSERT(sd != NULL); - - ivug_slider_item_stop(sd->slide[CENTER_SLIDE]); - - shift_direction_t direction = SLIDE_SHIFT_NONE; - - if (sd->slide[NEXT_SLIDE]->state != SLIDE_STATE_NONE) - { - MSG_SLIDER_MED("right slide state : %s", _GetStateString(sd->slide[NEXT_SLIDE]->state)); - direction = SLIDE_SHIFT_TO_RIGHT; - } - else if (sd->slide[PREV_SLIDE]->state != SLIDE_STATE_NONE) - { - MSG_SLIDER_MED("left slide state : %s", _GetStateString(sd->slide[PREV_SLIDE]->state)); - direction = SLIDE_SHIFT_TO_LEFT; - } - - Media_Item *mitem = sd->slide[CENTER_SLIDE]->mitem; - - ivug_slider_item_data_set(sd->slide[CENTER_SLIDE], NULL); - ivug_medialist_delete_item(sd->media_list, mitem); //delete data. - - Media_Item* item = NULL; - -//move slide. - if ( direction == SLIDE_SHIFT_TO_RIGHT ) // <-------------- Next image - { - Slide_Item *tmp = sd->slide[CENTER_SLIDE]; - - item = ivug_medialist_get_next(sd->media_list, sd->slide[NEXT_SLIDE]->mitem); //get next data. - - sd->slide[CENTER_SLIDE] = sd->slide[NEXT_SLIDE]; - sd->slide[NEXT_SLIDE] = tmp; - - if(item != NULL) - { - ivug_slider_item_data_set(sd->slide[NEXT_SLIDE], item); - ivug_slider_item_load(sd->slide[NEXT_SLIDE]); - } - else - { - MSG_SLIDER_WARN("Item is NULL"); - } - } - else if ( direction == SLIDE_SHIFT_TO_LEFT) // Prev Image -----------> - { - Slide_Item *tmp = sd->slide[CENTER_SLIDE]; - - item = ivug_medialist_get_prev(sd->media_list, sd->slide[PREV_SLIDE]->mitem); - - sd->slide[CENTER_SLIDE] = sd->slide[PREV_SLIDE]; - sd->slide[PREV_SLIDE] = tmp; - - if(item != NULL) - { - ivug_slider_item_data_set(sd->slide[PREV_SLIDE], item); - ivug_slider_item_load(sd->slide[PREV_SLIDE]); - } - else - { - MSG_SLIDER_WARN("Item is NULL"); - } - } - else // Shift none - { - MSG_SLIDER_WARN("Direction is NONE"); - } - - _ivug_slider_slide_move(sd, 0 , sd->slide[CENTER_SLIDE]->y); //draw item - - ivug_slider_item_load(sd->slide[CENTER_SLIDE]); - - _ivug_slider_on_center_changed(sd->obj, NULL, sd->slide[CENTER_SLIDE]); - -} - -Eina_Bool -ivug_slider_set_medialist(Evas_Object* obj, Media_List *mList, Media_Item *current) -{ - IV_ASSERT(obj != NULL); - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - IV_ASSERT(current != NULL); - - sd->media_list = mList; - - //set init - PERF_CHECK_BEGIN(LVL4, "set center"); - - ivug_slider_item_data_set(sd->slide[CENTER_SLIDE], current); - - PERF_CHECK_END(LVL4, "set center"); - - Media_Item *item = ivug_medialist_get_next(sd->media_list, current); - - PERF_CHECK_BEGIN(LVL4, "set next"); - - ivug_slider_item_data_set(sd->slide[NEXT_SLIDE], item); - - PERF_CHECK_END(LVL4, "set next"); - - item = ivug_medialist_get_prev(sd->media_list, current); - - PERF_CHECK_BEGIN(LVL4, "set prev"); - - ivug_slider_item_data_set(sd->slide[PREV_SLIDE], item); - - PERF_CHECK_END(LVL4, "set prev"); - - PERF_CHECK_BEGIN(LVL4, "_ivug_slider_on_center_changed"); - - _ivug_slider_on_center_changed(sd->obj, NULL, sd->slide[CENTER_SLIDE]); - - PERF_CHECK_END(LVL4, "_ivug_slider_on_center_changed"); - -// Is it needed???????.. Slide item load is called from slider_start!. -// _do_load(sd); - - return EINA_TRUE; -}//ivug slider set list - -void -ivug_slider_set_item(Evas_Object* obj, Media_Item *newItem, slide_dir_t dir) -{ - IV_ASSERT(obj != NULL); - IV_ASSERT(newItem != NULL); - - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - - MSG_SLIDER_HIGH("Slider set item. Dir=%d", dir); - - Media_Item *mitem = NULL; - - switch(dir) - { - case SLIDE_TO_RIGHT: // <--------------- Next image - ivug_slider_item_data_set(sd->slide[NEXT_SLIDE], newItem); - - _ivug_slider_start_slide(sd, sd->slide[CENTER_SLIDE]->x , sd->slide[CENTER_SLIDE]->w + IMAGE_BETWEEN_MARGIN, ANIN_VELOCITY); - - mitem = ivug_medialist_get_prev(sd->media_list, newItem); - - ivug_slider_item_data_set(sd->slide[PREV_SLIDE], mitem); - break; - case SLIDE_TO_LEFT: // Prev Image ------------------> - ivug_slider_item_data_set(sd->slide[PREV_SLIDE], newItem); - - _ivug_slider_start_slide(sd, sd->slide[CENTER_SLIDE]->x , sd->slide[CENTER_SLIDE]->w + IMAGE_BETWEEN_MARGIN, ANIN_VELOCITY); - - mitem = ivug_medialist_get_next(sd->media_list, newItem); - - ivug_slider_item_data_set(sd->slide[NEXT_SLIDE], mitem); - break; - case SLIDE_INSTANTLY: -// For avoid blinking, set item in next_slide and then swap with center - ivug_slider_item_data_set(sd->slide[NEXT_SLIDE], newItem); - - Slide_Item *sitem = sd->slide[CENTER_SLIDE]; - sd->slide[CENTER_SLIDE] = sd->slide[NEXT_SLIDE]; - sd->slide[NEXT_SLIDE] = sitem; - - _ivug_slider_slide_move(sd, 0, sd->slide[CENTER_SLIDE]->y); - - mitem = ivug_medialist_get_next(sd->media_list, newItem); - ivug_slider_item_data_set(sd->slide[NEXT_SLIDE], mitem); - - mitem = ivug_medialist_get_prev(sd->media_list, newItem); - ivug_slider_item_data_set(sd->slide[PREV_SLIDE], mitem); - - _do_load(sd); - - _ivug_slider_on_center_changed(sd->obj, sd->slide[NEXT_SLIDE] , sd->slide[CENTER_SLIDE]); - break; - } - -} - -void -ivug_slider_set_item_to_slide(Evas_Object* obj, slide_index_t where, Media_Item *newItem) -{ - IV_ASSERT(obj != NULL); - IV_ASSERT(newItem != NULL); - - if(where >= MAX_SLIDE) - { - MSG_SLIDER_ERROR("where is invalid %d, where"); - return; - } - - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - - MSG_SLIDER_HIGH("ivug_slider_set_item_to_slide. where=%d", where); - - Media_Item *mitem = NULL; - - ivug_slider_item_data_set(sd->slide[where], newItem); - - _do_load(sd); -} - - -// Goto Background -void -ivug_slider_pause(Evas_Object *obj) -{ - if (obj == NULL) { - MSG_SLIDER_WARN("Slider is NULL"); - return; - } - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - - MSG_SLIDER_HIGH("Slider pause"); - - ivug_slider_item_pause(sd->slide[CENTER_SLIDE]); -} - -// Goto Foreground -void -ivug_slider_resume(Evas_Object *obj) -{ - if (obj == NULL) { - MSG_SLIDER_WARN("Slider is NULL"); - return; - } - - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - - MSG_SLIDER_HIGH("Slider resume"); - - ivug_slider_item_resume(sd->slide[CENTER_SLIDE]); -} - -void -ivug_slider_skip(Evas_Object* obj) -{ - ivug_ret_if(!obj); - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - - if ( sd->last_dir == SLIDE_SHIFT_TO_RIGHT) // <-------------- - { - if(sd->slide[NEXT_SLIDE]->mitem == NULL) - { - MSG_SLIDER_HIGH("next is NULL"); - if(sd->slide[PREV_SLIDE]->mitem == NULL) - { - MSG_SLIDER_HIGH("prev is NULL too, exit Image viewer"); - ug_destroy_me(gGetUGHandle()); - return; - } - _ivug_slider_start_slide(sd, sd->slide[CENTER_SLIDE]->x , sd->slide[CENTER_SLIDE]->w + IMAGE_BETWEEN_MARGIN, ANIN_VELOCITY); - } - else - { - _ivug_slider_start_slide(sd, sd->slide[CENTER_SLIDE]->x , -sd->slide[CENTER_SLIDE]->w - IMAGE_BETWEEN_MARGIN, ANIN_VELOCITY); - } - } - else if (sd->last_dir == SLIDE_SHIFT_TO_LEFT) // --------------> - { - if(sd->slide[PREV_SLIDE]->mitem == NULL) - { - MSG_SLIDER_HIGH("prev is NULL"); - if(sd->slide[NEXT_SLIDE]->mitem == NULL) - { - MSG_SLIDER_HIGH("next is NULL too, exit Image viewer"); - ug_destroy_me(gGetUGHandle()); - return; - } - _ivug_slider_start_slide(sd, sd->slide[CENTER_SLIDE]->x , -sd->slide[CENTER_SLIDE]->w - IMAGE_BETWEEN_MARGIN, ANIN_VELOCITY); - } - else - { - _ivug_slider_start_slide(sd, sd->slide[CENTER_SLIDE]->x , sd->slide[CENTER_SLIDE]->w + IMAGE_BETWEEN_MARGIN, ANIN_VELOCITY); - } - } -} - -bool ivug_slider_load(Evas_Object* obj) -{ - IV_ASSERT(obj != NULL); - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - - ivug_retv_if(!sd, EINA_FALSE); //check smart data. - - MSG_SLIDER_HIGH("Slider Load. 0x%08x", obj); - - if ( sd->item_load_idler ) - { - ecore_idler_del(sd->item_load_idler); - sd->item_load_idler = NULL; - } - - sd->item_load_idler = ecore_idler_add(_item_loader_idler, (void *)obj); - - return true; -} - - -bool ivug_slider_image_rotate(Evas_Object* obj, int angle) -{ - IV_ASSERT(obj != NULL); - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - - ivug_retv_if(!sd, FALSE); //check smart data. - - Slide_Item *si = sd->slide[CENTER_SLIDE]; - - return ivug_slider_item_image_rotate_set(si, angle); -} - -void -ivug_slider_set_menu_visibility(Evas_Object* obj, Eina_Bool bVisible) -{ - IV_ASSERT(obj != NULL); - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - - MSG_SLIDER_HIGH("Slider(0x%08x) Set menu visibility=%d.", obj, bVisible); - - Slide_Item *si = sd->slide[CENTER_SLIDE]; - - if ( bVisible == EINA_TRUE ) - { - ivug_slider_item_show_menu(si); - } - else - { - ivug_slider_item_hide_menu(si); - } -} - - - - -// For debugging. -void ivug_slider_dump_photocam(Evas_Object* obj) -{ - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - -// EFL::dump_obj(sd->slide[CENTER_SLIDE]->photocam, 0); -// EFL::dump_obj(obj, 0); - - Evas_Object *clipper; - - clipper = evas_object_clip_get(obj); - if (clipper) - { - Eina_List *clippees; - - Eina_List *l; - - clippees = (Eina_List *)evas_object_clipees_get(clipper); - MSG_SLIDER_HIGH("Clipper clips %i objects", eina_list_count(clippees)); - - void *data; - - EINA_LIST_FOREACH(clippees, l, data) - { - Evas_Object *obj_tmp = (Evas_Object *)data; - - int x, y, w, h; - evas_object_geometry_get(obj_tmp, &x, &y, &w, &h); - - MSG_SLIDER_HIGH("Obj=%s(%s) Geometry(%d,%d,%d,%d)", - evas_object_name_get(obj_tmp), evas_object_type_get(obj_tmp), - x, y, w, h); - // evas_object_show(obj_tmp); - } - } - - - Evas *e = evas_object_evas_get(sd->slide[CENTER_SLIDE]->photocam); - - int w, h; - - evas_output_size_get(e, &w, &h); - - int vx, vy, vw, vh; - - evas_output_viewport_get(e, &vx, &vy, &vw, &vh); - - EFL::dump_obj(sd->obj); - - MSG_SLIDER_HIGH("Evas Size(%d,%d) Viewport(%d,%d,%d,%d)", w, h, vx, vy, vw, vh); - -} - -unsigned int -ivug_slider_zoom_level_get(Evas_Object *obj) -{ - IV_ASSERT(obj != NULL); - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - - MSG_SLIDER_HIGH("Slider zoom level"); - - return sd->zoom_level; -} - -void -ivug_slider_zoom_in(Evas_Object *obj) -{ - IV_ASSERT(obj != NULL); - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - - MSG_SLIDER_HIGH("Slider zoom in"); - - if(sd->zoom_level > ZOOM_LEVEL_MAX) - { - MSG_MAIN_ERROR("zoom_level is %d", sd->zoom_level); - return; - } - - Slide_Item *si = sd->slide[CENTER_SLIDE]; - - double zoom = 0.0; - Evas_Coord ix = 0, iy = 0, iw = 0, ih = 0; - - evas_object_geometry_get(si->photocam, &ix, &iy, &iw, &ih); - - zoom = ivug_slider_item_zoom_get(si); - zoom *= ZOOM_LEVEL_STEP; - ivug_slider_item_zoom_set(si, zoom, iw/2, ih/2); - - ivug_slider_item_hold_set(si, EINA_FALSE); - - sd->zoom_level++; -} - -void -ivug_slider_zoom_out(Evas_Object *obj) -{ - IV_ASSERT(obj != NULL); - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - - MSG_SLIDER_HIGH("Slider zoom in"); - - if(sd->zoom_level == 0) - { - MSG_MAIN_ERROR("zoom_level is 0"); - return; - } - - Slide_Item *si = sd->slide[CENTER_SLIDE]; - - double zoom = 0.0; - Evas_Coord ix = 0, iy= 0, iw= 0, ih= 0; - - evas_object_geometry_get(si->photocam, &ix, &iy, &iw, &ih); - - zoom = ivug_slider_item_zoom_get(si); - zoom /= ZOOM_LEVEL_STEP; - ivug_slider_item_zoom_set(si, zoom, iw/2, ih/2); - - ivug_slider_item_hold_set(si, EINA_FALSE); - - sd->zoom_level--; -} - -void -ivug_slider_zoom_reset(Evas_Object *obj) -{ - IV_ASSERT(obj != NULL); - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - - MSG_SLIDER_HIGH("Slider zoom in"); - - sd->zoom_level = 0; - - Slide_Item *si = sd->slide[CENTER_SLIDE]; - - ivug_slider_item_zoom_reset(si, EINA_FALSE, 0, 0); -} - -bool ivug_slider_reload(Evas_Object* obj) -{ - IV_ASSERT(obj != NULL); - struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj); - - ivug_retv_if(!sd, EINA_FALSE); //check smart data. - - MSG_SLIDER_HIGH("Slider Reload. 0x%08x", obj); - - ivug_slider_item_reload(sd->slide[CENTER_SLIDE]); - - return true; -} - - diff --git a/main/src/thumblist/ivug-thumblist.cpp b/main/src/thumblist/ivug-thumblist.cpp new file mode 100755 index 0000000..3390fe8 --- /dev/null +++ b/main/src/thumblist/ivug-thumblist.cpp @@ -0,0 +1,1099 @@ +/* +* Copyright (c) 2000-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 "ivug-debug.h" +#include "ivug-util.h" + +#include "ivug-media.h" + +#include "ivug-thumblist.h" + +#undef LOG_LVL +#define LOG_LVL DBG_MSG_LVL_HIGH + +#undef LOG_CAT +#define LOG_CAT "IV-THUMB" + +#define IMAGE_PATH PREFIX"/res/images/"PACKAGE +#define DEFAULT_THUMBNAIL_PATH IMAGE_PATH"/T01_Nocontents_broken.png" + +#define EDJ_THUMBLIST PREFIX"/res/edje/"PACKAGE"/ivug-thumblist.edj" +#define EDJ_ICON PREFIX"/res/edje/"PACKAGE"/ivug-icons.edj" + + +//#undef TEST_EDIT_MODE +#define TEST_EDIT_MODE + +/* + Currently gengrid does not have feature to display focused item as highlighted. + So focely emit signal so as to dislay highlight +*/ +#define FEATURE_HIGHLIGHT + +typedef enum { + IV_THUMBLIST_MODE_LIST, + IV_THUMBLIST_MODE_BESTPIC, + IV_THUMBLIST_MODE_EDIT, +} ivug_thumblist_mode; + + +typedef struct _Thumbnail Thumbnail; + +typedef struct { + Evas_Object *gengrid; + + ivug_thumblist_mode eGridMode; + Thumbnail *eSelected; // Selected item in edit mode + + Elm_Gengrid_Item_Class *gic; +} ThumbList; + +struct _Thumbnail { +/* + Represent each item +*/ + ThumbList *thmlist; // Parent Object. + + Evas_Object *content; + + Elm_Object_Item *item; + + bool bRealized; + bool bChecked; // Edit Mode. + bool bHightlighted; + + Thumblist_Metaphore tMetaphor; // Metaphor + + bool bVideo; + + char *path; + void *data; +} ; + +#define INVALID_IMAGE (PREFIX"/res/images/"PACKAGE"/T01_Nocontents_broken.png") + +#define IV_THUMBLIST(obj) \ + static_cast(evas_object_data_get((obj), "CMyThumbList")) + +#define THUMB_SIZE (45) + +void _image_preloaded(void *data, Evas *e, Evas_Object *o, void *event_info) +{ + evas_object_show(o); +} + +static Evas_Object *create_contents(Evas_Object *parent, const char *path) +{ + Evas_Object *image = evas_object_image_add(evas_object_evas_get(parent)); + evas_object_event_callback_add(image, EVAS_CALLBACK_IMAGE_PRELOADED, _image_preloaded, NULL); + evas_object_image_alpha_set(image, EINA_FALSE); + + evas_object_image_scale_hint_set(image, EVAS_IMAGE_SCALE_HINT_STATIC); + evas_object_image_smooth_scale_set(image, EINA_TRUE); + +// evas_object_image_load_scale_down_set(image, 2); + if(path == NULL) + { + MSG_WARN("thumbnail is not loaded yet"); + return image; + } + + evas_object_image_file_set(image, path, NULL); + + MSG_LOW("Load image : %s", ivug_get_filename(path)); + Evas_Load_Error err = evas_object_image_load_error_get(image); + + if (EVAS_LOAD_ERROR_NONE != err ) + { + MSG_ERROR("Cannot load file : Err(%d) %s", err, path); + // Load default. + evas_object_image_file_set(image, INVALID_IMAGE, NULL); + + Evas_Load_Error err = evas_object_image_load_error_get(image); + + if (EVAS_LOAD_ERROR_NONE != err ) + { + MSG_FATAL("Cannot load default image"); + return NULL; + } + } + + // Preserve aspect ratio. + int imgW, imgH; + evas_object_image_size_get(image, &imgW, &imgH); + + MSG_LOW("Img Size : WH(%dx%d)", imgW, imgH); + + if (imgW != 0 && imgH != 0 ) + { + int fX, fY, fW, fH; + if (imgW < imgH ) + { + fW = THUMB_SIZE; + fH = fW * imgH / imgW; + + fX = 0; + fY = (THUMB_SIZE - fH) / 2; + } + else + { + fH = THUMB_SIZE; + fW = fH * imgW / imgH; + + fY = 0; + fX = (THUMB_SIZE - fW) / 2; + } + + MSG_LOW("Img Fill : XWWH(%d,%d,%d,%d)", fX, fY, fW, fH); +// Center align + evas_object_image_load_size_set(image, fW, fH); + evas_object_image_fill_set(image, fX, fY, fW, fH); + } + + evas_object_image_preload(image, EINA_FALSE /* Eina_Bool cancel */); // If cancel is true set, it will remove the image from the workqueue + + return image; + +} + + +static Evas_Object *create_edje_content(Evas_Object *parent, const char *path) +{ + Evas_Object *layout; + + layout = elm_layout_add(parent); + + if (elm_layout_file_set(layout, EDJ_THUMBLIST, "thumblist.item") == EINA_FALSE) + { + MSG_ERROR("Cannot load thumlist edj"); + return NULL; + } + + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + + evas_object_show(layout); + Evas_Object *image = create_contents(layout, path); + + if (image == NULL) + { + MSG_FATAL("Cannot create thumb item"); + } + + elm_object_part_content_set(layout, "item", image); + + return layout; +} + +static void _set_highlighted(Thumbnail *thm) +{ + if(thm->content) //before contents callback it will be null + { + edje_object_signal_emit(elm_layout_edje_get(thm->content), "elm,state,selected", "app"); + } + +} + +static void +_item_check_changed_cb(void *data, Evas_Object *obj, void *event_info) +{ + Thumbnail *thm = (Thumbnail *)data; + + thm->bChecked = !elm_check_state_get(obj); + + MSG_MED("Check box Changed! newState=%d", thm->bChecked); + elm_check_state_set(obj, thm->bChecked); + +// elm_gengrid_item_selected_set(thm->item, thm->bChecked); +} + +static Evas_Object * +grid_content_get(void *data, Evas_Object *obj, const char *part) +{ + Thumbnail *thm = (Thumbnail *)data; +// TODO : For bestshot, use edje. + MSG_LOW("Content get : %s", part); + + if (!strcmp(part, "elm.swallow.icon")) + { + Evas_Object *contents = create_edje_content(obj, (thm->path)); + + thm->content = contents; + + Evas_Object *icon = NULL; + + switch(thm->tMetaphor) + { + case THUMBLIST_NONE: + edje_object_signal_emit(elm_layout_edje_get(contents), "thumbnail,hide,metaphore","elm"); + break; + + case THUMBLIST_SOUNDPIC: + icon = elm_icon_add(contents); + elm_image_no_scale_set(icon, EINA_TRUE); + elm_image_aspect_fixed_set(icon, EINA_TRUE); + + if (elm_image_file_set(icon, EDJ_ICON, "icon.sound_scene") == EINA_FALSE) + { + MSG_ERROR("Cannot load EDJ_ICON"); + } + + elm_layout_content_set(contents, "thumblist.metaphore", icon); + + edje_object_signal_emit(elm_layout_edje_get(contents), "thumbnail,show,metaphore","elm"); + break; + + + case THUMBLIST_PANORAMA: + icon = elm_icon_add(contents); + elm_image_no_scale_set(icon, EINA_TRUE); + elm_image_aspect_fixed_set(icon, EINA_TRUE); + + if (elm_image_file_set(icon, EDJ_ICON, "icon.panorama") == EINA_FALSE) + { + MSG_ERROR("Cannot load EDJ_ICON"); + } + + elm_layout_content_set(contents, "thumblist.metaphore", icon); + + edje_object_signal_emit(elm_layout_edje_get(contents), "thumbnail,show,metaphore","elm"); + break; + + + case THUMBLIST_BURSTSHOT: + icon = elm_icon_add(contents); + elm_image_no_scale_set(icon, EINA_TRUE); + elm_image_aspect_fixed_set(icon, EINA_TRUE); + + if (elm_image_file_set(icon, EDJ_ICON, "icon.burst") == EINA_FALSE) + { + MSG_ERROR("Cannot load EDJ_ICON"); + } + + elm_layout_content_set(contents, "thumblist.metaphore", icon); + + edje_object_signal_emit(elm_layout_edje_get(contents), "thumbnail,show,metaphore","elm"); + break; + + default: + MSG_ERROR("Unknwon metaphore(%d)", thm->tMetaphor); + } + + if (thm->bVideo == true ) + { + icon = elm_icon_add(contents); + elm_image_no_scale_set(icon, EINA_TRUE); + elm_image_aspect_fixed_set(icon, EINA_TRUE); + + if (elm_image_file_set(icon, EDJ_ICON, "btn.video.play.80.80") == EINA_FALSE) + { + MSG_ERROR("Cannot load EDJ_ICON"); + } + + elm_layout_content_set(contents, "thumblist.vicon", icon); + + edje_object_signal_emit(elm_layout_edje_get(contents), "thumbnail,show,vicon","elm"); + } + else + { + edje_object_signal_emit(elm_layout_edje_get(contents), "thumbnail,hide,vicon","elm"); + } + + if (thm->thmlist->eGridMode == IV_THUMBLIST_MODE_EDIT ) + { + if (thm->thmlist->eSelected == thm) + { + _set_highlighted( thm->thmlist->eSelected ); + } + } + else + { +#ifdef FEATURE_HIGHLIGHT + if (elm_gengrid_item_selected_get(thm->item) == EINA_TRUE ) + { + + edje_object_signal_emit(elm_layout_edje_get(thm->content), "elm,state,selected", "app"); + } +#endif + } + + return contents; + } + else if (thm->thmlist->eGridMode == IV_THUMBLIST_MODE_EDIT && !strcmp(part, "elm.swallow.end") ) + { + MSG_MED("Checked ! %d", thm->bChecked); + + Evas_Object *ck = elm_check_add(obj); + elm_object_style_set(ck, "grid"); + + evas_object_propagate_events_set(ck, EINA_FALSE); + elm_check_state_set(ck, thm->bChecked); + + if (!elm_config_access_get()) { + evas_object_smart_callback_add(ck, "changed", _item_check_changed_cb, data); + } + else { + evas_object_repeat_events_set(ck, EINA_TRUE); + elm_access_object_unregister(ck); + } + + return ck; + } + + return NULL; +} + +static void grid_content_del(void *data, Evas_Object *obj) +{ + Thumbnail *thm = (Thumbnail *)data; + + if (thm->thmlist->eSelected == thm) + { + thm->thmlist->eSelected = NULL; + } + + free(thm->path); + free(thm); +} + + +static void +grid_longpress(void *data, Evas_Object *obj, void *event_info) +{ + Elm_Object_Item *item = (Elm_Object_Item *)event_info; + Thumbnail *thm = (Thumbnail *)elm_object_item_data_get(item); + + MSG_ERROR("Long pressed!. %s", (thm->path)); + + if (thm->thmlist->eGridMode == IV_THUMBLIST_MODE_LIST ) + { +#ifdef TEST_EDIT_MODE +// Change to Edit mode. + ivug_thumblist_set_edit_mode(obj, TRUE); // Set Edit Mode + +// Update gengrid + elm_gengrid_realized_items_update(thm->thmlist->gengrid); +#endif + //evas_object_smart_callback_call(thm->thmlist->gengrid, "changed,mode", (void *)"edit"); + return; + } + else if (thm->thmlist->eGridMode == IV_THUMBLIST_MODE_EDIT ) + { + MSG_ERROR("Long press in Edit Mode"); + + Evas_Object *check; + +// Toggle check box +// elm_gengrid_item_selected_set(thm->item, EINA_FALSE); + check = elm_object_item_part_content_get(thm->item, "elm.swallow.end"); + if (!check) return; + + thm->bChecked = !elm_check_state_get(check); + elm_check_state_set(check, thm->bChecked); + + return; + } + + if (thm->tMetaphor == THUMBLIST_BESTPIC ) + { + thm->tMetaphor = THUMBLIST_NONE; + elm_gengrid_item_update(item); + + evas_object_smart_callback_call(thm->thmlist->gengrid, "set,bestpic", item); + + // Change to selected item. + elm_gengrid_item_selected_set(thm->item, EINA_TRUE); + } + else + { + thm->tMetaphor = THUMBLIST_BESTPIC; + elm_gengrid_item_update(item); + + evas_object_smart_callback_call(thm->thmlist->gengrid, "unset,bestpic", item); + elm_gengrid_item_selected_set(thm->item, EINA_TRUE); + } + + +} + +static void _on_del(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + ThumbList *thmlist = (ThumbList *)data; + MSG_ASSERT(thmlist != NULL); + + MSG_MED("Thumblist removing"); + + elm_gengrid_item_class_free(thmlist->gic); + free(thmlist); + +} + +static void _on_resized(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Evas_Coord x,y,w,h; + evas_object_geometry_get(obj, &x, &y, &w, &h); + + if (w == 0 || h == 0 ) return; + + MSG_MED("Thumblist resized resized geomtery XYWH(%d,%d,%d,%d)", x, y, w, h); +/* + double scale = elm_config_scale_get(); + int w = (int)((8*scale)+(162*scale)+(8*scale)); // width L + W + R + int h = (int)((9*scale)+(162*scale)+(9*scale)); // height U + H + D +*/ +// elm_gengrid_item_size_set(thmlist->gengrid, h * elm_config_scale_get(), h * elm_config_scale_get()); + + Elm_Object_Item *item = elm_gengrid_selected_item_get(obj); + + if (item != NULL) + { + elm_gengrid_item_update(item); + Thumbnail *thm = (Thumbnail *)elm_object_item_data_get(item); + +#ifdef FEATURE_HIGHLIGHT + if (thm->content != NULL) + { + edje_object_signal_emit(elm_layout_edje_get(thm->content), "elm,state,selected", "app"); + } +#endif + elm_gengrid_item_show(item, ELM_GENGRID_ITEM_SCROLLTO_IN); + } + +} + + +void _on_item_selected(void *data, Evas_Object *obj, void *event_info) +{ + Thumbnail *thm = (Thumbnail *)data; + + MSG_SEC("Item selected. %s", ivug_get_filename((thm->path))); + + if (thm->thmlist->eGridMode == IV_THUMBLIST_MODE_EDIT ) + { + Evas_Object *check; + +// Toggle check box + check = elm_object_item_part_content_get(thm->item, "elm.swallow.end"); + if (!check) return; + + thm->bChecked = !elm_check_state_get(check); + elm_check_state_set(check, thm->bChecked); + + MSG_MED("Grid Mode is Edit. Check State=%d", thm->bChecked); + + evas_object_smart_callback_call(thm->thmlist->gengrid, "item,edit,selected", thm->item); + + return ; + } + +#ifdef FEATURE_HIGHLIGHT + if(thm->content) + { + edje_object_signal_emit(elm_layout_edje_get(thm->content), "elm,state,selected", "app"); + } + else + { + MSG_ERROR("Contents is NULL. in selected callback"); + } +#endif + +} + + +void _on_item_unselected(void *data, Evas_Object *obj, void *event_info) +{ + Elm_Object_Item *item = (Elm_Object_Item *)event_info; + + Thumbnail *thm = (Thumbnail *)elm_object_item_data_get(item); + + MSG_SEC("Item Unselected. %s thm->content 0x%08x", ivug_get_filename((thm->path)), thm->content); + + if (thm->thmlist->eGridMode == IV_THUMBLIST_MODE_EDIT ) + { +// Toggle check box + return; + } + +#ifdef FEATURE_HIGHLIGHT + if(thm->content) + { + edje_object_signal_emit(elm_layout_edje_get(thm->content), "elm,state,unselected", "app"); + } + else + { + MSG_ERROR("Contents is NULL. in unselected callback"); + } +#endif + +} + + +void _on_item_realized(void *data, Evas_Object *obj, void *event_info) +{ + Elm_Object_Item *item = (Elm_Object_Item *)event_info; + + Thumbnail *thm = (Thumbnail *)elm_object_item_data_get(item); + + MSG_LOW("Item Realized. %s", ivug_get_filename((thm->path))); + + thm->bRealized = true; +#ifdef FEATURE_HIGHLIGHT + if (elm_gengrid_item_selected_get(item) == EINA_TRUE ) + { + edje_object_signal_emit(elm_layout_edje_get(thm->content), "elm,state,selected", "app"); + } +#endif + elm_gengrid_item_update(item); + + evas_object_smart_callback_call(thm->thmlist->gengrid, "item,realized", thm->data); +} + +void _on_item_unrealized(void *data, Evas_Object *obj, void *event_info) +{ + Elm_Object_Item *item = (Elm_Object_Item *)event_info; + + Thumbnail *thm = (Thumbnail *)elm_object_item_data_get(item); + + MSG_LOW("Item Unrealized. %s", ivug_get_filename((thm->path))); + + thm->bRealized = false; + + thm->content = NULL; +} + + +void _on_item_changed(void *data, Evas_Object *obj, void *event_info) +{ + Elm_Object_Item *item = (Elm_Object_Item *)event_info; + + Thumbnail *thm = (Thumbnail *)elm_object_item_data_get(item); + + if (thm->thmlist->eGridMode != IV_THUMBLIST_MODE_EDIT ) + { + MSG_MED("Selected from gengrid. thm=0x%08x", thm); + evas_object_smart_callback_call(thm->thmlist->gengrid, "item,selected", item); + } +} + + +static Thumbnail *_alloc_thumb(ThumbList *thmlist) +{ + Thumbnail *thm; + + thm = (Thumbnail *)calloc(1, sizeof(Thumbnail)); + IV_ASSERT(thm != NULL); + + thm->thmlist = thmlist; + thm->bRealized = false; + thm->tMetaphor = THUMBLIST_BESTPIC; + + return thm; +} + +Evas_Object *ivug_thumblist_add(Evas_Object *parent) +{ + ThumbList *thmlist = (ThumbList *)calloc(1, sizeof(ThumbList)); + MSG_ASSERT(thmlist != NULL); + + Evas_Object *gengrid; + + gengrid = elm_gengrid_add(parent); + + elm_scroller_policy_set(gengrid, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); + + evas_object_size_hint_weight_set(gengrid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(gengrid, EVAS_HINT_FILL, EVAS_HINT_FILL); + + elm_gengrid_align_set(gengrid, 0.5, 0.0); + + int iw, ih; + iw = THUMB_SIZE * elm_config_scale_get(); + ih = THUMB_SIZE * elm_config_scale_get(); + + elm_gengrid_item_size_set(gengrid, iw, ih); + + elm_gengrid_horizontal_set(gengrid, EINA_TRUE); + elm_scroller_bounce_set(gengrid, EINA_FALSE, EINA_FALSE); + elm_gengrid_multi_select_set(gengrid, EINA_FALSE); + + evas_object_smart_callback_add(gengrid, "longpressed", grid_longpress, (void *)thmlist); + evas_object_smart_callback_add(gengrid, "unselected", _on_item_unselected, (void *)thmlist); + evas_object_smart_callback_add(gengrid, "realized", _on_item_realized, (void *)thmlist); + evas_object_smart_callback_add(gengrid, "unrealized", _on_item_unrealized, (void *)thmlist); + evas_object_smart_callback_add(gengrid, "selected", _on_item_changed, (void *)thmlist); + + evas_object_event_callback_add(gengrid, EVAS_CALLBACK_RESIZE, _on_resized, (void *)thmlist); + evas_object_event_callback_add(gengrid, EVAS_CALLBACK_DEL, _on_del, (void *)thmlist); + + thmlist->eGridMode = IV_THUMBLIST_MODE_LIST; + + thmlist->gic = elm_gengrid_item_class_new(); + + if (thmlist->gic != NULL) { + thmlist->gic->item_style = "thumbgrid"; + thmlist->gic->func.text_get = NULL; + thmlist->gic->func.content_get = grid_content_get; + thmlist->gic->func.state_get = NULL; + thmlist->gic->func.del = grid_content_del; + } + + thmlist->gengrid = gengrid; + TODO("Remove memory on delete callback") + + evas_object_data_set(gengrid, "CMyThumbList", thmlist); + + MSG_MED("Created GenGrid. Obj=0x%08x", gengrid); + return gengrid; + +} + +void +ivug_thumblist_set_bestpic_mode(Evas_Object *obj, Eina_Bool bBestPicMode) +{ + ThumbList *thmlist = IV_THUMBLIST(obj); + MSG_ASSERT(thmlist != NULL); + + if (bBestPicMode == EINA_TRUE ) + { + thmlist->eGridMode = IV_THUMBLIST_MODE_BESTPIC; + } + else + { + thmlist->eGridMode = IV_THUMBLIST_MODE_LIST; + } +} + + +void +ivug_thumblist_set_edit_mode(Evas_Object *obj, Eina_Bool bEditMode) +{ + ThumbList *thmlist = IV_THUMBLIST(obj); + MSG_ASSERT(thmlist != NULL); + + if (bEditMode == EINA_TRUE ) + { + Elm_Object_Item *iter; + Thumbnail *thm; + + iter = elm_gengrid_first_item_get(obj); + + while (iter != NULL) + { + thm = (Thumbnail *)elm_object_item_data_get(iter); + + thm->bChecked = false; + iter = elm_gengrid_item_next_get(iter); + } + + thmlist->eGridMode = IV_THUMBLIST_MODE_EDIT; + elm_gengrid_select_mode_set(thmlist->gengrid, ELM_OBJECT_SELECT_MODE_ALWAYS ); + + Elm_Object_Item *item = elm_gengrid_selected_item_get(obj); + + thm = (Thumbnail *)elm_object_item_data_get(item); + thmlist->eSelected = thm; // Store currented selected + + evas_object_smart_callback_call(thmlist->gengrid, "changed,mode", (void *)"edit"); + } + else + { + if (thmlist->eSelected ) // Highlighted item + { + elm_gengrid_item_selected_set(thmlist->eSelected->item, EINA_TRUE); + elm_gengrid_item_show(thmlist->eSelected->item, ELM_GENGRID_ITEM_SCROLLTO_IN); + } + + thmlist->eGridMode = IV_THUMBLIST_MODE_LIST; + elm_gengrid_select_mode_set(thmlist->gengrid, ELM_OBJECT_SELECT_MODE_DEFAULT ); + + // Update gengrid + elm_gengrid_realized_items_update(thmlist->gengrid); + + thmlist->eSelected = NULL; + + evas_object_smart_callback_call(thmlist->gengrid, "changed,mode", (void *)"list"); + + } +} + +Eina_Bool ivug_thumblist_get_edit_mode(Evas_Object *obj) +{ + ThumbList *thmlist = IV_THUMBLIST(obj); + MSG_ASSERT(thmlist != NULL); + + return thmlist->eGridMode ==IV_THUMBLIST_MODE_EDIT ? EINA_TRUE : EINA_FALSE; +} + + + +Image_Object *ivug_thumblist_append_item(Evas_Object *obj, const char *thumbnail_path, bool bVideo, void *item_data) +{ + ThumbList *thmlist = IV_THUMBLIST(obj); + MSG_ASSERT(thmlist != NULL); + + Thumbnail *thm = _alloc_thumb(thmlist); + + if(thumbnail_path == NULL) + { + thm->path = strdup(DEFAULT_THUMBNAIL_PATH); + } + else + { + thm->path = strdup(thumbnail_path); + } + thm->data = item_data; + thm->tMetaphor = THUMBLIST_NONE; + thm->bVideo = bVideo; + + thm->item = elm_gengrid_item_append(thmlist->gengrid, thmlist->gic, thm, _on_item_selected, thm); + + MSG_LOW("Append: %s Data=0x%08x", ivug_get_filename(thumbnail_path), item_data); + + return (Image_Object *)thm->item; +} + + +Image_Object *ivug_thumblist_prepend_item(Evas_Object *obj, const char *thumbnail_path, bool bVideo, void *item_data) +{ + ThumbList *thmlist = IV_THUMBLIST(obj); + MSG_ASSERT(thmlist != NULL); + + Thumbnail *thm = _alloc_thumb(thmlist); + + if(thumbnail_path == NULL) + { + thm->path = strdup(DEFAULT_THUMBNAIL_PATH); + } + else + { + thm->path = strdup(thumbnail_path); + } + thm->data = item_data; + thm->tMetaphor = THUMBLIST_NONE; + thm->bVideo = bVideo; + + thm->item = elm_gengrid_item_prepend(thmlist->gengrid, thmlist->gic, thm, _on_item_selected, thm); + + MSG_LOW("Prepend: %s Data=0x%08x", ivug_get_filename(thumbnail_path), item_data); + + return (Image_Object *)thm->item; +} + +unsigned int ivug_thumblist_items_count(Evas_Object *obj) +{ + ThumbList *thmlist = IV_THUMBLIST(obj); + MSG_ASSERT(thmlist != NULL); + + return elm_gengrid_items_count(thmlist->gengrid); +} + + + +Eina_Bool +ivug_thumblist_update_item(Evas_Object* obj, Image_Object *img, const char *thumbnail_path, bool bVideo, void *item_data) +{ + Elm_Object_Item *item = (Elm_Object_Item *)img; + + Thumbnail *thm = (Thumbnail *)elm_object_item_data_get(item); + + free(thm->path); + if(thumbnail_path == NULL) + { + thm->path = strdup(DEFAULT_THUMBNAIL_PATH); + } + else + { + thm->path = strdup(thumbnail_path); + } + thm->data = item_data; + thm->tMetaphor = THUMBLIST_NONE; + thm->bVideo = bVideo; + + elm_gengrid_item_update(thm->item); + return EINA_TRUE; +} + + +void ivug_thumblist_delete_item(Evas_Object *obj, Image_Object *img) +{ + + Elm_Object_Item *item = (Elm_Object_Item *)img; + + Thumbnail *thm = (Thumbnail *)elm_object_item_data_get(item); + + MSG_HIGH("Delete Item: %s", (thm->path)); + + elm_object_item_del(thm->item); + thm->item = NULL; + +// thm will be freed in grid_content_del() +} + +void ivug_thumblist_clear_items(Evas_Object *obj) +{ + ThumbList *thmlist = IV_THUMBLIST(obj); + MSG_ASSERT(thmlist != NULL); + +// Remove all items + elm_gengrid_clear(thmlist->gengrid); +} + +void +ivug_thumblist_select_item(Evas_Object *obj, Image_Object *img) +{ + Elm_Object_Item *item = (Elm_Object_Item *)img; + + Thumbnail *thm = (Thumbnail *)elm_object_item_data_get(item); + + if (thm->thmlist->eGridMode != IV_THUMBLIST_MODE_EDIT ) + { + if (ivug_thumblist_get_selected_item(obj) == img ) + { + MSG_WARN("Same center."); + return; + } + } + +// How can realize wanted item??????????. +// elm_gengrid_item_update(thm->item); + + bool bRealized = false; + + if (thm->bRealized == true ) + { + bRealized = true; + } + +#if 1 // BRING_IN is not working.. + if (bRealized == true ) // If distance is near(??). + { + // Animated scroll to item. + elm_gengrid_item_bring_in(thm->item, ELM_GENGRID_ITEM_SCROLLTO_IN); + } + else +#endif + { + // Jump and show item/. + elm_gengrid_item_show(thm->item, ELM_GENGRID_ITEM_SCROLLTO_IN); + } + + if (thm->thmlist->eGridMode == IV_THUMBLIST_MODE_EDIT ) + { + MSG_MED("Selected item in Edit mode"); + +// UnHighlight Old. +#if 1 + Thumbnail *old = thm->thmlist->eSelected; + + if (old != NULL) + { + elm_gengrid_item_selected_set(old->item, EINA_FALSE); // Item can be selected continously. so we set as unselected + + if(old->content) + { + edje_object_signal_emit(elm_layout_edje_get(old->content), "elm,state,unselected", "app"); + } + else + { + MSG_ERROR("Contents is NULL. in unselected callback"); + } + + } + +#endif +// elm_gengrid_item_selected_set(thm->item, EINA_TRUE); +// elm_gengrid_item_select_mode_set(thm->item, ELM_OBJECT_SELECT_MODE_ALWAYS); + +// User selected externally + _set_highlighted(thm); + + thm->thmlist->eSelected = thm; + return ; + } + + elm_gengrid_item_selected_set(thm->item, EINA_TRUE); + +#ifdef FEATURE_HIGHLIGHT + if(thm->content) //before contents callback it will be null + { + edje_object_signal_emit(elm_layout_edje_get(thm->content), "elm,state,selected", "app"); + } +#endif + + MSG_HIGH("Set Center: %s", (thm->path)); +} + +Image_Object *ivug_thumblist_get_selected_item(Evas_Object* obj) +{ + Elm_Object_Item *item = elm_gengrid_selected_item_get(obj); + + return (Image_Object *)item; + +} + +void *ivug_thumblist_get_item_data(Evas_Object* obj, Image_Object *img) +{ + Elm_Object_Item *item = (Elm_Object_Item *)img; + + Thumbnail *thm = (Thumbnail *)elm_object_item_data_get(item); + + MSG_MED("GetItemData() thm=0x%08x", thm); + + return thm->data; +} + +Thumblist_Metaphore +ivug_thumblist_get_item_mode(Evas_Object* obj, Image_Object *img) +{ + Elm_Object_Item *item = (Elm_Object_Item *)img; + + Thumbnail *thm = (Thumbnail *)elm_object_item_data_get(item); + + MSG_MED("GetItemBestpic() thm=0x%08x", thm); + + return thm->tMetaphor; +} + +void +ivug_thumblist_set_item_mode(Evas_Object* obj, Image_Object *img, Thumblist_Metaphore mode) +{ + Elm_Object_Item *item = (Elm_Object_Item *)img; + + Thumbnail *thm = (Thumbnail *)elm_object_item_data_get(item); + + MSG_MED("SetItemBestpic() thm=0x%08x Mode=%d", thm, mode); + + thm->tMetaphor = mode; + + elm_gengrid_item_update(thm->item); +} + + + +Image_Object * +ivug_thumblist_find_item_by_data(Evas_Object* obj, void *item_data) +{ +// TODO... Need time checking + + Elm_Object_Item *iter; + Thumbnail *thm; + + iter = elm_gengrid_first_item_get(obj); + + while (iter != NULL) + { + thm = (Thumbnail *)elm_object_item_data_get(iter); + + if (thm->data == item_data ) + { + MSG_SEC("Found Item: %s Data=0x%08x", ivug_get_filename((thm->path)), item_data); + return (Image_Object *)iter; + } + + iter = elm_gengrid_item_next_get(iter); + } + + MSG_WARN("No item founded. Data=0x%08x TotalCount=%d", item_data, elm_gengrid_items_count(obj)); + return NULL; +} + + +Eina_List/* Image_Object */ * +ivug_thumblist_get_items_bestpic(Evas_Object* obj) +{ + Eina_List *result = NULL; + + Elm_Object_Item *iter; + Thumbnail *thm; + + iter = elm_gengrid_first_item_get(obj); + + while (iter != NULL) + { + thm = (Thumbnail *)elm_object_item_data_get(iter); + + if (thm->tMetaphor == THUMBLIST_BESTPIC) + { + MSG_SEC("Found Best pic Item: %s", ivug_get_filename((thm->path))); + result = eina_list_append(result, iter); + } + + iter = elm_gengrid_item_next_get(iter); + } + + return result; + +} + + +Eina_List/* Image_Object */ * +ivug_thumblist_get_items_checked(Evas_Object* obj) +{ + Eina_List *result = NULL; + + Elm_Object_Item *iter; + Thumbnail *thm; + + iter = elm_gengrid_first_item_get(obj); + + while (iter != NULL) + { + thm = (Thumbnail *)elm_object_item_data_get(iter); + + if (thm->bChecked == true) + { + MSG_SEC("Found Checked Item: %s", ivug_get_filename((thm->path))); + result = eina_list_append(result, iter); + } + + iter = elm_gengrid_item_next_get(iter); + } + + return result; + +} + +Eina_Bool +ivug_thumblist_checked_item_is(Evas_Object* obj) +{ + Elm_Object_Item *iter; + Thumbnail *thm; + + iter = elm_gengrid_first_item_get(obj); + + while (iter != NULL) + { + thm = (Thumbnail *)elm_object_item_data_get(iter); + + if (thm->bChecked == true) + { + MSG_SEC("Found Checked Item: %s", ivug_get_filename((thm->path))); + return EINA_TRUE; + } + + iter = elm_gengrid_item_next_get(iter); + } + + return EINA_FALSE; +} + diff --git a/main/src/thumblist/ivug-thumblist.h b/main/src/thumblist/ivug-thumblist.h new file mode 100755 index 0000000..6e1c4d5 --- /dev/null +++ b/main/src/thumblist/ivug-thumblist.h @@ -0,0 +1,134 @@ +/* +* Copyright (c) 2000-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 __IVUG_THUMBLIST_H__ +#define __IVUG_THUMBLIST_H__ + +typedef void Image_Object; + +typedef struct { + int count; + void *item_data; +} Thumblist_Block_Index; + + +typedef enum { + THUMBLIST_NONE, + THUMBLIST_BESTPIC, + THUMBLIST_SOUNDPIC, + THUMBLIST_PANORAMA, + THUMBLIST_BURSTSHOT, +} Thumblist_Metaphore; + +#ifdef __cplusplus +extern "C" { +#endif + +Evas_Object * +ivug_thumblist_add(Evas_Object* parent); + +/* + If bestpic mode is enabled, you can change bestpic status by long press. + + "set,bestpic" + "unset,bestpic" + + Default is FALSE; +*/ +void +ivug_thumblist_set_bestpic_mode(Evas_Object *obj, Eina_Bool bEditMode); + +void +ivug_thumblist_set_edit_mode(Evas_Object *obj, Eina_Bool bEditMode); + +Eina_Bool ivug_thumblist_get_edit_mode(Evas_Object *obj); + +/* + Signals. + + "item,selected" + changed center image. + pointer event_info indicates Image_Object * + + "need,next" + "need,prev" + + "unloaded" + + "set,bestpic" + "unset,bestpic" + + "changed,mode,edit" // Thumblist mode changes to Edit +*/ + +// Item list +Image_Object * +ivug_thumblist_append_item(Evas_Object *obj, const char *thumbnail_path, bool bVideo, void *item_data); + +Image_Object * +ivug_thumblist_prepend_item(Evas_Object *obj, const char *thumbnail_path, bool bVideo, void *item_data); + +void +ivug_thumblist_delete_item(Evas_Object* obj, Image_Object *img); + +Eina_Bool +ivug_thumblist_update_item(Evas_Object* obj, Image_Object *img, const char *thumbnail_path, bool bVideo, void *item_data); + +void +ivug_thumblist_clear_items(Evas_Object* obj); + +void * +ivug_thumblist_get_item_data(Evas_Object* obj, Image_Object *img); + +Image_Object * +ivug_thumblist_find_item_by_data(Evas_Object* obj, void *item_data); + +unsigned int ivug_thumblist_items_count(Evas_Object *obj); + +// Center +void +ivug_thumblist_select_item(Evas_Object* obj, Image_Object *img); + + +Image_Object * +ivug_thumblist_get_selected_item(Evas_Object* obj); + +Eina_List/* Image_Object */ * +ivug_thumblist_get_items_bestpic(Evas_Object* obj); + +Eina_List/* Image_Object */ * +ivug_thumblist_get_items_checked(Evas_Object* obj); + +Eina_Bool +ivug_thumblist_checked_item_is(Evas_Object* obj); + +Thumblist_Metaphore +ivug_thumblist_get_item_mode(Evas_Object* obj, Image_Object *img); + +void +ivug_thumblist_set_item_mode(Evas_Object* obj, Image_Object *img, Thumblist_Metaphore mode); + + + +#ifdef __cplusplus +} +#endif + + + +#endif // __IVUG_THUMBLIST_H__ + diff --git a/main/src/ug-image-viewer.cpp b/main/src/ug-image-viewer.cpp deleted file mode 100755 index fd497a3..0000000 --- a/main/src/ug-image-viewer.cpp +++ /dev/null @@ -1,1058 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 /*EFL*/ - -#include "ivug-common.h" //common -#include "ivug-util.h" -#include "ivug-main-view.h" -#include "ivug-setas-view.h" -#include "ivug-crop-ug.h" -#include "ivug-details-view.h" -#include "ivug-popup.h" -#include "ivug-slideshow-view.h" - - -#include "EFLUtil.h" - - -#include "ivug-callback.h" -#include "ivug-context.h" - -#include "ivug-parameter.h" - -#define SHORTCUT_ICON_PATH "/usr/share/icons/default/small/org.tizen.image-viewer.png" - -typedef struct ug_data { - Evas_Object *base; // UG layout - -// View Data; - Ivug_MainView *main_view; - Ivug_SetAsView *setas_view; - IvugCropUG *crop_ug; - - Ivug_SlideShowView *ss_view; - - ivug_parameter* ivug_param; - - bool bError; - char *bErrMsg; - - Evas_Object *icon; - Ecore_Timer *exit_timer; - - Evas_Object *navi_bar; - Elm_Object_Item *navi_it; -} _AppData; - - -#undef TRACE_RENDER - -static void _on_base_resize(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - Evas_Coord x,y,w,h; - evas_object_geometry_get(obj, &x, &y, &w, &h); - - MSG_IMAGEVIEW_HIGH("Base layout resized geomtery XYWH(%d,%d,%d,%d) angle=%d", x, y, w, h, elm_win_rotation_get((Evas_Object *)ug_get_window())); -} - -static void _on_base_move(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - Evas_Coord x,y,w,h; - evas_object_geometry_get(obj, &x, &y, &w, &h); - - MSG_IMAGEVIEW_HIGH("Base layout moved geomtery XYWH(%d,%d,%d,%d) angle=%d", x, y, w, h, elm_win_rotation_get((Evas_Object *)ug_get_window())); -} - - -static void _on_base_show(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - MSG_IMAGEVIEW_HIGH("Base layout show"); -} - -static void _on_base_hide(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - MSG_IMAGEVIEW_HIGH("Base layout hide"); -} - -static void _on_receive_mouse_down (void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - MSG_MAIN_HIGH("Base layout clicked : %s Layer=%d",evas_object_name_get(obj), evas_object_layer_get(obj)); -} - -static void _print_render_method(Evas *e) -{ - IV_ASSERT(e != NULL ); - - Eina_List *engines, *l; - int cur_id; - int id; - - engines = evas_render_method_list (); - if (!engines) { - MSG_IMAGEVIEW_ERROR("No engine is specified"); - return; - } - - cur_id = evas_output_method_get (e); - - char *name; - void *data; - EINA_LIST_FOREACH (engines, l, data) { - name = (char *)data; - id = evas_render_method_lookup (name); - if (name && id == cur_id) - { - MSG_IMAGEVIEW_HIGH("Render method is %s", name); - break; - } - } - -} - - -#ifdef TRACE_RENDER -static void _on_render_post(void *data, Evas *e, void *event_info) -{ - MSG_IMAGEVIEW_HIGH("***************render_post***************"); - -#if 0 - struct ug_data *ugd = (struct ug_data *)data; - - if ( ugd->main_view && ugd->base ) - { - EFL::dump_obj(ugd->base,0); - } -#endif - -} - -static void _on_render_pre(void *data, Evas *e, void *event_info) -{ - MSG_IMAGEVIEW_HIGH("***************render_pre ***************"); - -#if 0 - struct ug_data *ugd = (struct ug_data *)data; - - if ( ugd->main_view && ugd->base ) - { - EFL::dump_obj(ugd->base,0); - } -#endif -} -#endif - - - -static void _on_setas_view_destroyed(void *data, Evas_Object *obj, void *event_info) -{ - IV_ASSERT(data != NULL); - struct ug_data *ugd = (struct ug_data *)data; - - if(ugd->setas_view) - { - ivug_setas_view_destroy(ugd->setas_view); - ugd->setas_view = NULL; - } - - ug_destroy_me(gGetUGHandle()); -} - - -static void -_on_timeout_response(void *data, Evas_Object *obj, void *event_info) -{ - IV_ASSERT(data != NULL); - - ui_gadget_h ug = (ui_gadget_h)data; - - MSG_IMAGEVIEW_ERROR("ERROR EXIT"); - - ug_destroy_me(ug); -} - -static Evas_Object* _set_win_icon(void) -{ -// set window icon - Evas_Object *o = evas_object_image_add(evas_object_evas_get((Evas_Object *)ug_get_window())); - evas_object_image_file_set(o, SHORTCUT_ICON_PATH, NULL); - elm_win_icon_object_set((Evas_Object *)ug_get_window(), o); - - return o; -} - -static void _win_profile_changed_cb(void *data, Evas_Object * obj, void *event_info) -{ - if (data == NULL) return; - - struct ug_data *ugd = (struct ug_data *)data; - - const char *profile = elm_config_profile_get(); - - if (!strcmp(profile, "desktop")) - { // desktop mode - gSetDesktopMode(true); - - // hide layout's indicator area - elm_win_indicator_mode_set((Evas_Object *)ug_get_window(), ELM_WIN_INDICATOR_HIDE); - - // set window icon - if (!ugd->icon) - { - ugd->icon = _set_win_icon(); - } - } - else - { // mobile - gSetDesktopMode(false); - - // show layout's indicator area - elm_win_indicator_mode_set((Evas_Object *)ug_get_window(), ELM_WIN_INDICATOR_SHOW); - } -} - -static Eina_Bool _on_exit_timer_expired(void *data) -{ - ivug_retv_if(!data, ECORE_CALLBACK_CANCEL); - - struct ug_data *ugd = (struct ug_data *)data; - - ugd->exit_timer = NULL; - - DESTROY_ME(); - - return ECORE_CALLBACK_CANCEL; -} - -static bool _is_mmc_inserted(void) -{ - int noti_message; - int ret = -1; - - ret = vconf_get_int(VCONFKEY_SYSMAN_MMC_STATUS, ¬i_message); - - if ( ret != 0 ) // falied - { - MSG_NOTI_ERROR("Get %s is failed", VCONFKEY_SYSMAN_MMC_STATUS); - return false; - } - - if(noti_message == VCONFKEY_SYSMAN_MMC_MOUNTED) - { - return true; - } - - return false; - -} - -static void _on_mmc_state_changed(keynode_t* node, void *data) -{ - struct ug_data *ugd = (struct ug_data *)data; - if (NULL == ugd) { - return; - } - - if(_is_mmc_inserted() == false) - { - MSG_IMAGEVIEW_WARN("MMC Removed!"); - if(strncmp(ugd->ivug_param->filepath, PATH_SDCARD, strlen(PATH_SDCARD)) != 0 - && ugd->ivug_param->view_by != IVUG_VIEW_BY_ALL) - { - return; - } - - MSG_IMAGEVIEW_WARN("Request destroy UG=0x%08x", gGetUGHandle()); - - if(ugd->main_view) - { - _ivug_main_on_mmc_state_changed(node, ugd->main_view); - } - else if(ugd->ss_view) - { - _ivug_slideshow_view_on_mmc_state_changed(node, ugd->ss_view); - } - else - { - //ivug_timeout_popup_show(ugd->base, _on_timeout_response, gGetUGHandle(), IDS_ERROR, IDS_SD_CARD_REMOVED); - if(ugd->exit_timer == NULL) - { - ugd->exit_timer = ecore_timer_add(0.2, _on_exit_timer_expired, ugd); - } - } - } -} - -static Evas_Object *create_fullview(Evas_Object *win, struct ug_data *ugd) -{ - Evas_Object *base; - - /* Create Full view */ - base = EFL::create_layout(win, EDJ_PATH"/ivug-base.edj", "ivug_base"); - if (base == NULL) - { - MSG_IMAGEVIEW_HIGH("Cannot set layout. EDJ=%s Group=%s", EDJ_PATH"/ivug-base.edj", "ivug_base"); - return NULL; - } - - evas_object_name_set(base, "Base layout"); - - evas_object_size_hint_expand_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - - return base; -} - -static Evas_Object *create_frameview(Evas_Object *parent, struct ug_data *ugd) -{ - Evas_Object *base; - - /* Create Frame view */ - base = elm_layout_add(parent); - evas_object_name_set(base, "Base layout frame"); - elm_layout_theme_set(base, "layout", "application", "default"); - - return base; -} - - -static void *on_create(ui_gadget_h ug, enum ug_mode mode, service_h service, void *priv) -{ - struct ug_data *ugd; - Evas_Object *conformant; - - PERF_CHECK_END(LVL0, "UG_MODULE_INIT -> On Create"); - - PERF_CHECK_BEGIN(LVL0, "On Create"); - - MSG_IMAGEVIEW_HIGH("Image Viewer : %s ug=0x%08x", __func__, ug); - - if (!ug || !priv) - { - MSG_IMAGEVIEW_ERROR("Error. ug=0x%08x priv=0x%08x", ug, priv); - return NULL; - } - - ugd = (struct ug_data *)priv; - - Evas_Object *win = (Evas_Object *)ug_get_window(); - - // it is for camera, camera can rotate even rotation is locked - if(ivug_config_get_can_rotate() == false) - { - elm_win_rotation_with_resize_set(win, 0); - } - - int wx, wy, ww, wh; - int ret = -1; - - evas_object_geometry_get(win, &wx, &wy, &ww, &wh); - - MSG_IMAGEVIEW_HIGH("Parent Info. Layout(0x%08x) Win(0x%08x) Size(%d,%d,%d,%d)", - ug_get_parent_layout(ug), win, wx, wy, ww, wh); - - PERF_CHECK_BEGIN(LVL1, "init context"); - //init - if (!ivug_context_init(ug)) - { - MSG_IMAGEVIEW_ERROR("ivug_main_init error"); - return NULL; - } - PERF_CHECK_END(LVL1, "init context"); - - PERF_CHECK_BEGIN(LVL1, "parse bundle"); - - ugd->ivug_param = ivug_param_create_from_bundle(service); - if ( ugd->ivug_param == NULL ) - { - MSG_IMAGEVIEW_ERROR("Cannot parse parameter"); - ugd->bError = true; - ugd->bErrMsg = strdup(IDS_UNABLE_TO_OPEN_FILE); - goto ON_CREATE_ERROR; - } - PERF_CHECK_END(LVL1, "parse bundle"); - - PERF_CHECK_BEGIN(LVL1, "creating base"); - - //create base - if (mode == UG_MODE_FULLVIEW) - { - MSG_IMAGEVIEW_HIGH("create base layout for FullView"); - ugd->base = create_fullview(win, ugd); - } else { - MSG_IMAGEVIEW_HIGH("create base layout for FrameView"); - ugd->base = create_frameview(win, ugd); - } - - PERF_CHECK_END(LVL1, "creating base"); - - if ( ugd->base == NULL ) - { - MSG_IMAGEVIEW_ERROR("Cannot create base view"); - ugd->bError = true; - ugd->bErrMsg = strdup(IDS_UNABLE_TO_OPEN_FILE); - goto ON_CREATE_ERROR; - } - -#ifdef TRACE_RENDER - evas_event_callback_add(evas_object_evas_get(ugd->base), EVAS_CALLBACK_RENDER_PRE, _on_render_pre, ugd); - evas_event_callback_add(evas_object_evas_get(ugd->base), EVAS_CALLBACK_RENDER_POST, _on_render_post, ugd); -#endif - - int ux1, uy1, uw1, uh1; - - evas_object_geometry_get(ugd->base, &ux1, &uy1, &uw1, &uh1); - - MSG_IMAGEVIEW_HIGH("UG base created : 0x%08x (%d,%d,%d,%d)", ugd->base, ux1, uy1, uw1, uh1); - - evas_object_event_callback_add(ugd->base, EVAS_CALLBACK_MOUSE_DOWN, _on_receive_mouse_down, NULL); - - evas_object_event_callback_add(ugd->base, EVAS_CALLBACK_RESIZE, _on_base_resize, ugd); - evas_object_event_callback_add(ugd->base, EVAS_CALLBACK_MOVE, _on_base_move, NULL); - - evas_object_event_callback_add(ugd->base, EVAS_CALLBACK_SHOW, _on_base_show, NULL); - evas_object_event_callback_add(ugd->base, EVAS_CALLBACK_HIDE, _on_base_hide, NULL); - - evas_object_smart_callback_add(win, "profile,changed", _win_profile_changed_cb, ugd); - - ret = vconf_notify_key_changed(VCONFKEY_SYSMAN_MMC_STATUS, _on_mmc_state_changed, ugd); - if ( ret == -1 ) - { - MSG_IMAGEVIEW_ERROR("Register %s is failed", VCONFKEY_SYSMAN_MMC_STATUS); - } - - if(ugd->ivug_param->mode == IVUG_MODE_SETAS) - { - MSG_IMAGEVIEW_HIGH("UG types=%d", ugd->ivug_param->setas_type); - - ivug_set_screen_type type = IVUG_CTRLBAR_SET_SCREEN_MAX; - - ivug_setas_mode setas_mode = IVUG_SETAS_UG; - if(ugd->ivug_param->bStandalone == true) - { - setas_mode = IVUG_SETAS_APPSVC; - } - - if(ugd->ivug_param->setas_type == IVUG_SET_AS_UG_TYPE_CALLER_ID) - { - type = IVUG_CTRLBAR_SET_SCREEN_CALLERID; - ugd->setas_view = ivug_setas_view_callerid_ug_create(ugd->base, ugd->ivug_param->filepath, - setas_mode, ugd->ivug_param->width, ugd->ivug_param->height); - } - else if(ugd->ivug_param->setas_type == IVUG_SET_AS_UG_TYPE_VIDEO_CALL_ID) - { - type = IVUG_CTRLBAR_SET_SCREEN_VIDEO_CALL_ID; - ugd->setas_view = ivug_setas_view_video_call_id_ug_create(ugd->base, ugd->ivug_param->filepath, - setas_mode, ugd->ivug_param->width, ugd->ivug_param->height); - } - else if(ugd->ivug_param->setas_type == IVUG_SET_AS_UG_TYPE_WALLPAPER) - { - type = IVUG_CTRLBAR_SET_SCREEN_HOME; - ugd->crop_ug = ivug_setas_crop_ug_create(ugd->base, ugd->ivug_param->filepath, - setas_mode, type); - } - else if(ugd->ivug_param->setas_type == IVUG_SET_AS_UG_TYPE_LOCKSCREEN) - { - type = IVUG_CTRLBAR_SET_SCREEN_LOCK; - ugd->crop_ug = ivug_setas_crop_ug_create(ugd->base, ugd->ivug_param->filepath, - setas_mode, type); - } - else if(ugd->ivug_param->setas_type == IVUG_SET_AS_UG_TYPE_WALLPAPER_N_LOCKSCREEN) - { - type = IVUG_CTRLBAR_SET_SCREEN_BOTH; - ugd->crop_ug = ivug_setas_crop_ug_create(ugd->base, ugd->ivug_param->filepath, - setas_mode, type); - } - else if(ugd->ivug_param->setas_type == IVUG_SET_AS_UG_TYPE_WALLPAPER_CROP) - { - type = IVUG_CTRLBAR_SET_SCREEN_HOME; - setas_mode = IVUG_SETAS_CROP; - ugd->crop_ug = ivug_setas_crop_ug_create(ugd->base, ugd->ivug_param->filepath, - setas_mode, type); - } - else if(ugd->ivug_param->setas_type == IVUG_SET_AS_UG_TYPE_CROP) - { - // Crop UG - ugd->crop_ug = ivug_crop_ug_create(ugd->base, - ugd->ivug_param->width, ugd->ivug_param->height, - ugd->ivug_param->bRatioFix, ugd->ivug_param->filepath); - } - else - { - MSG_IMAGEVIEW_ERROR("Invalid SetAS UG Type:%d", ugd->ivug_param->setas_type); - return NULL; - } - - if(ugd->setas_view == NULL && ugd->crop_ug == NULL) - { - MSG_IMAGEVIEW_ERROR("SetAS UG creation failed Type:%d", ugd->ivug_param->setas_type); - ugd->bError = true; - ugd->bErrMsg = strdup("Layout Loading Fail"); - goto ON_CREATE_ERROR; - } - - Evas_Object *layout = NULL; - - if(ugd->setas_view) - { - Evas_Object *setasOjbect = ivug_setas_view_object_get(ugd->setas_view); - evas_object_smart_callback_add(setasOjbect, "destroy", _on_setas_view_destroyed, ugd); - - ugd->navi_bar = ivug_naviframe_add(ugd->base, NULL); - - evas_object_name_set(ugd->navi_bar, "UG naviframe"); - // Layout life cycle is controlled by application explictily. - elm_naviframe_content_preserve_on_pop_set(ugd->navi_bar, EINA_TRUE); - - Evas_Object *back_btn = ivug_button_add(ugd->navi_bar, "naviframe/end_btn/default", - IDS_BACK, NULL, _on_setas_view_destroyed, ugd); - - ugd->navi_it = elm_naviframe_item_push(ugd->navi_bar, - NULL, back_btn, NULL, setasOjbect, NULL); - elm_naviframe_item_title_visible_set(ugd->navi_it, EINA_FALSE); - - //conformant = (Evas_Object *)ug_get_conformant(); - //elm_object_signal_emit(conformant, "elm,state,indicator,nooverlap", ""); - - ivug_setas_view_create_menu(ugd->setas_view, ugd->navi_bar, type); - - ivug_setas_view_load_file(ugd->setas_view, ugd->ivug_param->filepath, type); - - //layout = ivug_setas_view_object_get(ugd->setas_view); - layout = ugd->navi_bar; - } - else if(ugd->crop_ug) - { - layout = ivug_crop_ug_get_layout(ugd->crop_ug); - } - - elm_object_part_content_set(ugd->base, "elm.swallow.content", layout); //swallow - } - else if (ugd->ivug_param->mode == IVUG_MODE_SLIDESHOW || ugd->ivug_param->footsteps) - { - PERF_CHECK_BEGIN(LVL1, "slideshow_view_create"); - - ugd->ss_view = ivug_slideshow_view_create(ugd->base, ugd->ivug_param->mode, ugd->ivug_param->view_by); - - PERF_CHECK_END(LVL1, "slideshow_view_create"); - - if (ugd->ss_view == NULL) //set main view. - { - MSG_IMAGEVIEW_ERROR("Best View Layout Lading Fail"); - ugd->bError = true; - ugd->bErrMsg = strdup("Layout Loading Fail"); - goto ON_CREATE_ERROR; - } - -// Load list. - PERF_CHECK_BEGIN(LVL1, "slideshow_view_load_list"); - - if ( ivug_slideshow_view_set_list(ugd->ss_view, ugd->ivug_param) == false) - { - MSG_IMAGEVIEW_ERROR("Cannot load media list for bestview."); - ugd->bError = true; - ugd->bErrMsg = strdup(IDS_UNABLE_TO_OPEN_FILE); - goto ON_CREATE_ERROR; - } - - Evas_Object *layout = ivug_slideshow_view_object_get(ugd->ss_view); - - elm_object_part_content_set(ugd->base, "elm.swallow.content", layout); //swallow - - PERF_CHECK_END(LVL1, "slideshow_view_load_list"); - - } - else - { - PERF_CHECK_BEGIN(LVL1, "main_view_create"); - - ugd->main_view = ivug_main_view_create(ugd->base, ugd->ivug_param->mode, ugd->ivug_param->view_by); - - PERF_CHECK_END(LVL1, "main_view_create"); - - if (ugd->main_view == NULL) //set main view. - { - MSG_IMAGEVIEW_ERROR("Main View Layout Loading Fail"); - ugd->bError = true; - ugd->bErrMsg = strdup("Layout Loading Fail"); - goto ON_CREATE_ERROR; - } - -// Load list. - PERF_CHECK_BEGIN(LVL1, "main_view_set_list"); - - if ( ivug_main_view_set_list(ugd->main_view, ugd->ivug_param) == false) - { - MSG_IMAGEVIEW_ERROR("Cannot load media list."); - // Need popup? - ugd->bError = true; - ugd->bErrMsg = strdup(IDS_UNABLE_TO_OPEN_FILE); - goto ON_CREATE_ERROR; - } - - Evas_Object *layout = ivug_main_view_object_get(ugd->main_view); - elm_object_part_content_set(ugd->base, "elm.swallow.content", layout); //swallow - - PERF_CHECK_END(LVL1, "main_view_set_list"); - } - - PERF_CHECK_END(LVL0, "On Create"); - - PERF_CHECK_BEGIN(LVL0, "On Create -> On Start"); - -// evas_object_size_hint_weight_set(ugd->base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - int ux, uy, uw, uh; - - evas_object_geometry_get(ugd->base, &ux, &uy, &uw, &uh); - - MSG_IMAGEVIEW_HIGH("Image Viewer : %s Base(0x%08x) Geometry(%d,%d,%d,%d)", __func__, ugd->base, ux, uy, uw, uh); - - return ugd->base; - -ON_CREATE_ERROR: - if(ugd->main_view) - { - ivug_main_view_destroy(ugd->main_view); - ugd->main_view = NULL; - } - - if (ugd->base == NULL) - { - ugd->base = elm_layout_add((Evas_Object *)ug_get_window()); - elm_layout_theme_set(ugd->base, "layout", "application", "default"); - } - - return ugd->base; -} - -static void on_start(ui_gadget_h ug, service_h service, void *priv) -{ - PERF_CHECK_END(LVL0, "On Create -> On Start"); - - PERF_CHECK_BEGIN(LVL0, "On Start"); - - if (!ug || !priv) - { - MSG_IMAGEVIEW_ERROR("Invalid UG. UG=0x%08x Priv=0x%08x", ug, priv); - return ; - } - - struct ug_data *ugd = (struct ug_data *)priv; - - int ux, uy, uw, uh; - - evas_object_geometry_get(ugd->base, &ux, &uy, &uw, &uh); - - MSG_IMAGEVIEW_HIGH("Image Viewer : %s BaseGeometry(%d,%d,%d,%d)", __func__, ux, uy, uw, uh); - - if(ugd->bError == true) - { - PERF_CHECK_END(LVL0, "On Start"); - MSG_IMAGEVIEW_ERROR("UG create has ERROR"); - ivug_timeout_popup_show(ugd->base, _on_timeout_response, ug, IDS_ERROR, ugd->bErrMsg); - return; - } - if ( ugd->ivug_param->mode == IVUG_MODE_SLIDESHOW || ugd->ivug_param->footsteps) - { - PERF_CHECK_BEGIN(LVL1, "slideshow_view_start"); - ivug_slideshow_view_start(ugd->ss_view); - PERF_CHECK_END(LVL1, "slideshow_view_start"); - } - else if ( ugd->main_view ) - { - PERF_CHECK_BEGIN(LVL1, "main_view_start"); - ivug_main_view_start(ugd->main_view); - PERF_CHECK_END(LVL1, "main_view_start"); - } - else if ( ugd->crop_ug ) - { - ivug_crop_ug_start(ugd->crop_ug); - } - - - PERF_CHECK_END(LVL0, "On Start"); -} - -static void on_pause(ui_gadget_h ug, service_h service, void *priv) -{ - MSG_IMAGEVIEW_HIGH("Image Viewer : %s", __func__); - - if (!ug || !priv) - { - MSG_IMAGEVIEW_ERROR("Invalid UG. UG=0x%08x Priv=0x%08x", ug, priv); - return ; - } - - struct ug_data *ugd = (struct ug_data *)priv; - - if(ugd->ivug_param == NULL) - { - MSG_IMAGEVIEW_ERROR("UG is destroying"); - return; - } - - if ( ugd->ivug_param->mode == IVUG_MODE_SLIDESHOW || ugd->ivug_param->footsteps) - { - ivug_slideshow_view_pause(ugd->ss_view); - } - else if ( ugd->main_view ) - { - ivug_main_view_pause(ugd->main_view); - } - -} - -static void on_resume(ui_gadget_h ug, service_h service, void *priv) -{ - MSG_IMAGEVIEW_HIGH("Image Viewer : %s", __func__); - - if (!ug || !priv) - { - IVUG_DEBUG_MSG("Invalid UG. UG=0x%08x Priv=0x%08x", ug, priv); - return ; - } - - struct ug_data *ugd = (struct ug_data *)priv; - - if ( ugd->ivug_param->mode == IVUG_MODE_SLIDESHOW || ugd->ivug_param->footsteps) - { - ivug_slideshow_view_resume(ugd->ss_view); - } - else if ( ugd->main_view ) - { - ivug_main_view_resume(ugd->main_view); - } - -} - -static void on_destroy(ui_gadget_h ug, service_h service, void *priv) -{ - MSG_IMAGEVIEW_HIGH("Image Viewer : %s(0x%08x) UG=0x%08x", __func__, on_destroy, ug); - - PERF_CHECK_BEGIN(LVL0, "On Destroy"); - - if (!ug || !priv) - { - MSG_IMAGEVIEW_ERROR("Invalid UG. UG=0x%08x Priv=0x%08x", ug, priv); - return ; - } - - struct ug_data *ugd = (struct ug_data *)priv; - -#ifdef TRACE_RENDER - evas_event_callback_del_full(evas_object_evas_get(ugd->base), EVAS_CALLBACK_RENDER_PRE, _on_render_pre, ugd); - evas_event_callback_del_full(evas_object_evas_get(ugd->base), EVAS_CALLBACK_RENDER_POST, _on_render_post, ugd); -#endif - - MSG_IMAGEVIEW_HIGH("On Destroy : ug=0x%08x", ug); - - int ret = vconf_ignore_key_changed(VCONFKEY_SYSMAN_MMC_STATUS, _on_mmc_state_changed); - if ( ret == -1 ) - { - MSG_MAIN_ERROR("Unegister %s is failed", VCONFKEY_SYSMAN_MMC_STATUS); - } - - if(ugd->bErrMsg) - { - free(ugd->bErrMsg); - ugd->bErrMsg = NULL; - } - - if(ugd->setas_view) - { - PERF_CHECK_BEGIN(LVL1, "SetAsView"); - ivug_setas_view_destroy(ugd->setas_view); - ugd->setas_view = NULL; - PERF_CHECK_END(LVL1, "SetAsView"); - } - - if(ugd->crop_ug) - { - ivug_crop_ug_destroy(ugd->crop_ug); - ugd->crop_ug = NULL; - } - //destroy main view. - if ( ugd->main_view ) - { - PERF_CHECK_BEGIN(LVL1, "MainView"); - ivug_main_view_destroy(ugd->main_view); - ugd->main_view = NULL; - PERF_CHECK_END(LVL1, "MainView"); - } - - if ( ugd->ss_view ) - { - PERF_CHECK_BEGIN(LVL1, "SlideShowView"); - ivug_slideshow_view_destroy(ugd->ss_view); - ugd->ss_view = NULL; - PERF_CHECK_END(LVL1, "SlideShowView"); - } - //delete param. - if(ugd->ivug_param) - { - ivug_param_delete(ugd->ivug_param); - ugd->ivug_param = NULL; - } - - //finalize data - PERF_CHECK_BEGIN(LVL1, "Context"); - if ( !ivug_context_deinit(ug)) - { - MSG_IMAGEVIEW_ERROR("ivug_main_deinit failed"); - } - PERF_CHECK_END(LVL1, "Context"); - - if (ugd->base) - { - PERF_CHECK_BEGIN(LVL1, "Base layout"); - evas_object_del(ugd->base); - ugd->base = NULL; - PERF_CHECK_END(LVL1, "Base layout"); - } - - MSG_IMAGEVIEW_HIGH("Destroyed ug"); - - PERF_CHECK_END(LVL0, "On Destroy"); -} - -static bool _data_print(service_h service, const char *key, void *user_data) -{ - char *value; - - service_get_extra_data(service, key, &value); - - MSG_IVUG_HIGH(" %s : %s", key, value); - - free(value); - - return true; -} - -static void on_message(ui_gadget_h ug, service_h msg, service_h service, void *priv) -{ - MSG_IMAGEVIEW_HIGH("Image Viewer : %s UG=0x%08x", __func__, ug); //on message - - if (!ug || !priv) - { - MSG_IMAGEVIEW_ERROR("Invalid UG. UG=0x%08x Priv=0x%08x", ug, priv); - return; - } - - int ret = service_foreach_extra_data(msg, _data_print, NULL); - - if(SERVICE_ERROR_NONE != ret) - { - MSG_IVUG_ERROR("service_foreach_extra_data ERROR"); - } - - struct ug_data *ugd = (struct ug_data *)priv; - - //ivug_msg_type msg_type = IVUG_MSG_NONE; - - if(ugd->main_view == NULL) - { - MSG_IMAGEVIEW_ERROR("main view is NULL"); - return; - } - - ivug_callback_call(gGetCallbackHandle(), msg, NULL, NULL); - - return; -} - -static void on_event(ui_gadget_h ug, enum ug_event event, service_h service, void *priv) -{ - if (!ug || !priv) - { - MSG_IMAGEVIEW_ERROR("Invalid UG. UG=0x%08x Priv=0x%08x", ug, priv); - return; - } - MSG_IMAGEVIEW_HIGH("Image Viewer : %s UG=0x%08x event=%d", __func__, ug, event); //on message - - switch (event) { - case UG_EVENT_LOW_MEMORY: - MSG_IMAGEVIEW_HIGH("Get Event : Low Memory"); - break; - case UG_EVENT_LOW_BATTERY: - MSG_IMAGEVIEW_HIGH("Get Event : Low battery"); - break; - case UG_EVENT_LANG_CHANGE: - MSG_IMAGEVIEW_HIGH("Get Event : Language changed"); - break; - - case UG_EVENT_ROTATE_PORTRAIT: - case UG_EVENT_ROTATE_LANDSCAPE: - case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN: - case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN: - // Rotate event is not used now.. plz, use only resized callback. - break; - - default: - MSG_IMAGEVIEW_ERROR("Unknown event type : %d", event); - break; - } -} - -#if 0 -#include -#include - -#include - -static int __load(int argc, char **argv) -{ - - void *handle = NULL; - - struct timeval start_point, end_point; - - double operating_time; - - gettimeofday(&start_point, NULL); - - handle = dlopen(argv[1], RTLD_LAZY ); - - gettimeofday(&end_point, NULL); - - operating_time = (double)(end_point.tv_sec)+(double)(end_point.tv_usec)/1000000.0-(double)(start_point.tv_sec)-(double)(start_point.tv_usec)/1000000.0; - - printf("Dlopen(%s) %f usec\n",argv[1], operating_time); - - if (handle == NULL) - { - printf("Cannot open : %s", argv[1]); - return -1; - } - -// dlclose(handle); - - return 0; -} -#endif - -extern "C" UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops) -{ - struct ug_data *ugd; - - MSG_IMAGEVIEW_HIGH("UG_MODULE_INIT. Ver=12.0"); - - if (!ops) - { - MSG_IMAGEVIEW_ERROR("OPS Pointer is NULL"); - return -1; - } - - ugd = (struct ug_data *)calloc(1, sizeof(struct ug_data)); //alloc ug_data memory - if (!ugd) - { - MSG_IMAGEVIEW_ERROR("Cannot allocate memory."); - return -1; - } - - IV_PERF_INIT(); - - ops->create = on_create; - ops->start = on_start; - ops->pause = on_pause; - ops->resume = on_resume; - ops->destroy = on_destroy; - ops->message = on_message; - ops->event = on_event; - ops->priv = ugd; - ops->opt = (ug_option)(UG_OPT_INDICATOR_ENABLE | UG_OPT_OVERLAP_ENABLE); - - PERF_CHECK_BEGIN(LVL0, "UG_MODULE_INIT -> On Create"); - -#if 0 - char *name[] = { - "abc1", - "/usr/ug/lib/libug-image-viewer-efl.so", - }; - - __load(2, name); - -#endif - - return 0; -} - -extern "C" UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops) -{ - struct ug_data *ugd; - if (!ops) - { - MSG_IMAGEVIEW_ERROR("OPS Pointer is NULL"); - return; - } - - ugd = (struct ug_data *)ops->priv; - - if (ugd) - { - free(ugd); - } - - MSG_IMAGEVIEW_HIGH("UG_MODULE_EXIT"); - -#ifdef TA_SAVETO_FILE - FILE *fp = NULL; - - fp = fopen(DATADIR"/"PACKAGE"/TimeAnal", "a"); - - if ( fp != NULL ) - { - PERF_SHOW_RESULT(fp); - - fclose(fp); - } - else - { - MSG_IMAGEVIEW_HIGH("Cannot open file : %s", DATADIR"/"PACKAGE"/TimeAnal"); - } -#else - PERF_SHOW_RESULT(stderr); -#endif - - IV_PERF_DEINIT(); - -} - - -#define _CONSTRUCTOR __attribute__ ((constructor)) -#define _DESTRUCTOR __attribute__ ((destructor)) - -_CONSTRUCTOR void _DLLInit(void) -{ - printf("Image Viewer - Called constructor\n"); - MSG_IMAGEVIEW_HIGH("Image Viewer - Called constructor"); -} - -_DESTRUCTOR void _DLLExit(void) -{ - printf("Image Viewer - Called destructor\n"); - MSG_IMAGEVIEW_HIGH("Image Viewer - Called destructor"); -} - - -int main() -{ -/* For detecting undefined symbol */ - return -1; -} - diff --git a/main/src/view/ivug-buddy-view.c b/main/src/view/ivug-buddy-view.c new file mode 100755 index 0000000..f9e5562 --- /dev/null +++ b/main/src/view/ivug-buddy-view.c @@ -0,0 +1,307 @@ +/* +* Copyright (c) 2000-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 // ug_send_result + +#include "ivug-image.h" +#include "ivug-string.h" +#include "ivug-debug.h" +#include "ivug-popup.h" + +#include "ivug-buddy-view.h" + +#include "ivug-language-mgr.h" + +#define LOG_LVL DBG_MSG_LVL_HIGH +#define LOG_CAT "IV-BUDDY" + +#define EDJ_PATH PREFIX"/res/edje/"PACKAGE +#define BUDDY_VIEW_EDJ_FILE EDJ_PATH"/ivug-buddy-view.edj" + +#define IVUG_RESULT_BUNDLE_KEY_ERROR "Error" +#define IVUG_RESULT_BUNDLE_VALUE_NOT_SUPPORTED "not_supported_file_type" + +typedef enum { + BUDDY_ERROR_TYPE_NONE, + BUDDY_ERROR_TYPE_UNKNOWN_FORMAT, + BUDDY_ERROR_TYPE_PERMISSION_DENIED, + BUDDY_ERROR_TYPE_INVALID_FILE, + BUDDY_ERROR_TYPE_GENERAL, +} Buddy_Error; + + +static void +_on_photocam_loaded(void *data, Evas_Object *obj, void *event_info) +{ + IV_ASSERT(data != NULL); + + Ivug_BuddyView *pBuddyView = (Ivug_BuddyView *)data; + MSG_HIGH("Photocam preloaded"); + + Evas_Load_Error error = (int)event_info; + + if (error != EVAS_LOAD_ERROR_NONE) + { + MSG_ERROR("Error occured during decoding. Error=%d", error); + + if (error == EVAS_LOAD_ERROR_UNKNOWN_FORMAT) + { + evas_object_smart_callback_call(pBuddyView->layout, "load,failed", (void *)BUDDY_ERROR_TYPE_UNKNOWN_FORMAT); + } + else if (error == EVAS_LOAD_ERROR_PERMISSION_DENIED) + { + evas_object_smart_callback_call(pBuddyView->layout, "load,failed", (void *)BUDDY_ERROR_TYPE_PERMISSION_DENIED); + } + else + { + evas_object_smart_callback_call(pBuddyView->layout, "load,failed", (void *)BUDDY_ERROR_TYPE_INVALID_FILE); + } + + return; + } + + MSG_HIGH("Photocam loaded."); + //elm_object_disabled_set(pBuddyView->btn_ok, EINA_FALSE); + + //evas_object_smart_callback_call(pBuddyView->layout, "loaded", NULL); + int w, h; + + ivug_image_image_size_get(pBuddyView->photocam, &w, &h); + + /*bool bSendEnable = _ivug_buddy_can_be_sent(data); + if (bSendEnable) + { + MSG_HIGH("Enable Send btn"); + elm_object_item_disabled_set(pBuddyView->btn_send, EINA_FALSE); + }*/ +} + +static Evas_Event_Flags _n_finger_tap_end(void *data , void *event_info) +{ + Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) event_info; + + MSG_HIGH("Finger tab end. evt=%d", p->timestamp); + + if (p->n != 1) return EVAS_EVENT_FLAG_NONE; + + Ivug_BuddyView *pBuddyView = (Ivug_BuddyView *)data; + + if (pBuddyView->photocam == NULL) + { + MSG_WARN("photocam is not exist"); + return EVAS_EVENT_FLAG_NONE; + } + + if (pBuddyView->bShowMenu) + { + evas_object_smart_callback_call(pBuddyView->layout, "clicked", (void *)false); + pBuddyView->bShowMenu = false; + } + else + { + evas_object_smart_callback_call(pBuddyView->layout, "clicked", (void *)true); + pBuddyView->bShowMenu = true; + } + + return EVAS_EVENT_FLAG_NONE; +} + + +static void _on_layout_resized(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + IV_ASSERT(data != NULL); + + Ivug_BuddyView *pBuddyView = (Ivug_BuddyView *)data; + + int x, y, w, h; + + evas_object_geometry_get(obj, &x, &y, &w, &h); + + MSG_HIGH("Layout Geometry : %d,%d,%d,%d", x, y, w, h); + + evas_object_move(pBuddyView->event_obj, x, y); + evas_object_resize(pBuddyView->event_obj, w, h); +} + +static bool _ivug_buddy_view_create_layout(Ivug_BuddyView *pBuddyView, Evas_Object *parent) +{ + IV_ASSERT(pBuddyView != NULL); +/* + pBuddyView->layout = ivug_layout_add2(parent, BUDDY_VIEW_EDJ_FILE, "buddy_view"); + if (pBuddyView->layout == NULL) + { + MSG_ERROR("Cannot create layout."); + free(pBuddyView); + return false; + } +*/ + pBuddyView->layout = ivug_layout_add2(parent, BUDDY_VIEW_EDJ_FILE, "navi_content"); + if (pBuddyView->layout == NULL) + { + MSG_ERROR("layout swallow failed"); + ivug_buddy_view_destroy(pBuddyView); + return false; + } + + evas_object_name_set(pBuddyView->layout, "Empty layout"); + + //photocam + Evas_Object *photocam = NULL; + photocam = ivug_image_create(pBuddyView->layout); + ivug_image_animated_set(photocam, EINA_FALSE); // Show first frame only when AGIF + evas_object_name_set(photocam, "buddy_photocam"); + + evas_object_smart_callback_add(photocam, "loaded", _on_photocam_loaded, (void *)pBuddyView); + elm_object_part_content_set(pBuddyView->layout, "photocam", photocam); + evas_object_show(photocam); + + pBuddyView->photocam = photocam; + + evas_object_event_callback_add(pBuddyView->layout, EVAS_CALLBACK_RESIZE, _on_layout_resized, pBuddyView); + + evas_object_show(pBuddyView->layout); + + return true; +} + +Ivug_BuddyView * ivug_buddy_view_create(Evas_Object *parent) +{ + Ivug_BuddyView *pBuddyView = (Ivug_BuddyView *)calloc(1, sizeof(Ivug_BuddyView)); + + if (pBuddyView == NULL) + { + MSG_ERROR("Cannot allocate memory"); + return NULL; + } + + if (_ivug_buddy_view_create_layout(pBuddyView, parent) == false) + { + MSG_ERROR("Cannot create layout"); + return NULL; + } + + pBuddyView->gesture = elm_gesture_layer_add(pBuddyView->layout); + elm_gesture_layer_hold_events_set(pBuddyView->gesture, EINA_FALSE); + + elm_gesture_layer_cb_set(pBuddyView->gesture, ELM_GESTURE_N_TAPS, ELM_GESTURE_STATE_END, + _n_finger_tap_end, pBuddyView); + + if (elm_gesture_layer_attach(pBuddyView->gesture, pBuddyView->layout) == EINA_FALSE) + { + MSG_ERROR("Cannot attach event rect"); + } + + pBuddyView->bShowMenu = true; + + return pBuddyView; +} + + +bool ivug_buddy_view_destroy(Ivug_BuddyView *pBuddyView) +{ + if (pBuddyView == NULL) + { + MSG_ERROR("already destroyed"); + return false; + } + + MSG_HIGH("ivug_buddy_view_destroy"); + + if (pBuddyView->event_obj) + { + evas_object_del(pBuddyView->event_obj); + pBuddyView->event_obj = NULL; + } + + if (pBuddyView->filepath) + { + free(pBuddyView->filepath); + pBuddyView->filepath = NULL; + } + + if (pBuddyView->mediaID) + { + free(pBuddyView->mediaID); + pBuddyView->mediaID = NULL; + } + + if (pBuddyView->photocam) + { + evas_object_del(pBuddyView->photocam); + pBuddyView->photocam = NULL; + } + + if (pBuddyView->navi_bar) + { + evas_object_del(pBuddyView->navi_bar); + pBuddyView->navi_bar = NULL; + } + + if (pBuddyView->layout) + { + evas_object_del(pBuddyView->layout); + pBuddyView->layout = NULL; + } + + free(pBuddyView); + + return true; +} + + + +bool ivug_buddy_view_load_file(Ivug_BuddyView *pBuddyView, const char *filepath, const char *mediaID) +{ + IV_ASSERT(pBuddyView != NULL); + + pBuddyView->filepath = strdup(filepath); + pBuddyView->mediaID = strdup(mediaID); + + MSG_SEC("Load image file : %s", filepath); + + Evas_Load_Error error = EVAS_LOAD_ERROR_NONE; + + error = ivug_image_file_set(pBuddyView->photocam, filepath, "noAnim"); + + if (error != EVAS_LOAD_ERROR_NONE) + { + TODO("What is good for error handing??????") + MSG_ERROR("FileSet Error=%d", error); + + if (error == EVAS_LOAD_ERROR_UNKNOWN_FORMAT) + { + evas_object_smart_callback_call(pBuddyView->layout, "load,failed", (void *)BUDDY_ERROR_TYPE_UNKNOWN_FORMAT); + return false; + } + else if (error == EVAS_LOAD_ERROR_PERMISSION_DENIED) + { + evas_object_smart_callback_call(pBuddyView->layout, "load,failed", (void *)BUDDY_ERROR_TYPE_PERMISSION_DENIED); + return false; + } + else + { + evas_object_smart_callback_call(pBuddyView->layout, "load,failed", (void *)BUDDY_ERROR_TYPE_INVALID_FILE); + return false; + } + + return false; + } + + return true; +} + diff --git a/main/src/view/ivug-crop-view.cpp b/main/src/view/ivug-crop-view.cpp deleted file mode 100755 index 91e9e61..0000000 --- a/main/src/view/ivug-crop-view.cpp +++ /dev/null @@ -1,676 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ivug-crop-view.h" -#include "EFLUtil.h" -#include "ivug-debug.h" -#include "ivug-image.h" -#include "ivug-scissorbox.h" -#include "ivug-context.h" -#include "ivug-util.h" -#include "ivug-selectioninfo.h" -#include "ivug-db.h" - -#undef LOG_LVL -#define LOG_LVL DBG_MSG_LVL_MED - -#undef LOG_CAT -#define LOG_CAT "IV-CROP" - -#define EDJ_PATH PREFIX"/res/edje/"PACKAGE - -#define CROP_EDJ_FILE EDJ_PATH"/ivug-crop-view.edj" - -static void _on_layout_resized(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - IvugCropView *pCropView = static_cast(data); - /////////////////////////////////////////////////////////////////// - - int rotate = gGetRotationDegree(); - MSG_HIGH("rotate=%d", rotate); - if(pCropView->PrevRotate == rotate) - { - MSG_ERROR("smame rotate!, return"); - return; - } - pCropView->PrevRotate = rotate; - - int org_x, org_y, org_w, org_h; - - ivug_image_region_get(pCropView->photocam, &org_x, &org_y, &org_w, &org_h); - - pCropView->prev_x = org_x; - pCropView->prev_y = org_y; - pCropView->prev_w = org_w; - pCropView->prev_h = org_h; - - MSG_MED("prev_x=%d, prev_y=%d, prev_w=%d, prev_h=%d", pCropView->prev_x, pCropView->prev_y, pCropView->prev_w, pCropView->prev_h); - - if(org_w == 0 || org_h == 0) - return; - - int org_sx, org_sy, org_sw, org_sh; - ivug_scissorbox_region_get(pCropView->cropbox, &org_sx, &org_sy, &org_sw, &org_sh); - - MSG_MED("org_sx=%d, org_sy=%d, org_sw=%d, org_sh=%d", org_sx, org_sy, org_sw, org_sh); - - int dx = org_sx-org_x; - int dy = org_sy-org_y; - - int lcd_x, lcd_y, lcd_w, lcd_h; - - evas_object_geometry_get(pCropView->contents_area, &lcd_x, &lcd_y, &lcd_w, &lcd_h); - MSG_MED("lcd_x=%d, lcd_y=%d, lcd_w=%d, lcd_h=%d", lcd_x, lcd_y, lcd_w, lcd_h); - - int ph, pw; - - int img_w, img_h; - int ext_w, ext_h; - - img_w = org_w; - img_h = org_h; - ext_w = lcd_w; - ext_h = lcd_h; - - ph = (img_h * ext_w) / img_w; - - if (ph > ext_h) - { - pw = (img_w * ext_h) / img_h; - ph = ext_h; - } - else - { - pw = ext_w; - } - - double zoom = 0.0; - - if ( img_w > img_h) - { - zoom = (double)pw / img_w; - } - else - { - zoom = (double)ph / img_h; - } - - int sx, sy, sw, sh; - - sw = org_sw*zoom; - sh = org_sh*zoom; - dx *= zoom; - dy *= zoom; - - sx = lcd_x + (ext_w-img_w*zoom)/2 + dx; - sy = lcd_y + (ext_h-img_h*zoom)/2 + dy; - - ivug_scissorbox_boundary_set(pCropView->cropbox, lcd_x+(ext_w-img_w*zoom)/2, lcd_y+(ext_h-img_h*zoom)/2, img_w*zoom, img_h*zoom); - - /////////////////////////////////////////////////////////////////// - - MSG_MED("sx=%d, sy=%d, sw=%d, sh=%d", sx, sy, sw, sh); - - ivug_scissorbox_region_set(pCropView->cropbox, sx, sy, sw, sh); -} - -void _on_test(void *data, Evas_Object *obj, void *event_info) -{ - MSG_HIGH("Test signal received"); -} - -static Eina_Bool _on_box_timer_expired(void *data) -{ - ivug_retv_if(!data, ECORE_CALLBACK_CANCEL); - - IvugCropView *pCropView = static_cast(data); - - pCropView->box_timer = NULL; - - int x, y, w, h; - ivug_image_region_get(pCropView->photocam, &x, &y, &w, &h); - - pCropView->prev_x = x; - pCropView->prev_y = y; - pCropView->prev_w = w; - pCropView->prev_h = h; - - // Check error!. - - MSG_HIGH("Photcam image Geometry : %d,%d,%d,%d", x, y, w, h); - - // Get Internal image and set that as scissorbox client - Evas_Object *subObj = ivug_image_internal_image_get(pCropView->photocam); - - // Move crop box - ivug_scissorbox_attach(pCropView->cropbox, subObj); - - int nW = 0; - int nH = 0; - double ratio = 0.0; - - if(pCropView->w > 0 && pCropView->h > 0) - { - nW = pCropView->w; - nH = pCropView->h; - ratio = (double)nH/nW; - MSG_HIGH("hW : %d, nH : %d, ratio : %f", nW, nH, ratio); - if(ratio > 1.0) //height is more longer - { - if(nH > h) - { - nH = h; - nW = h/ratio; - MSG_HIGH("Calculated1 : %d,%d", nW, nH); - } - if(nW > w) - { - nW = w; - nH = w*ratio; - MSG_HIGH("Calculated2 : %d,%d", nW, nH); - } - } - else //width is more longer - { - if(nH > h) - { - nH = h; - nW = h/ratio; - MSG_HIGH("Calculated3 : %d,%d", nW, nH); - } - if(nW > w) - { - nW = w; - nH = w*ratio; - MSG_HIGH("Calculated4 : %d,%d", nW, nH); - } - } - } - else - { - nW = w / 2; - nH = h / 2; - } - - MSG_HIGH("Calculated : %d,%d", nW, nH); - - ivug_scissorbox_region_set(pCropView->cropbox, x + (w - nW) / 2, y + (h - nH) / 2, nW, nH); - - elm_object_disabled_set(pCropView->btn_ok, EINA_FALSE); - - return ECORE_CALLBACK_CANCEL; -} - -void _on_preloaded(void *data, Evas_Object *obj, void *event_info) -{ - IV_ASSERT(data != NULL); - - IvugCropView *pCropView = static_cast(data); - - MSG_HIGH("Image preloaded"); - - if(pCropView->box_timer) - ecore_timer_del(pCropView->box_timer); - pCropView->box_timer = ecore_timer_add(0.5, _on_box_timer_expired, data); - - pCropView->notify_area = const_cast(edje_object_part_object_get(_EDJ(pCropView->layout), - "crop.contents.swallow.notify")); - - pCropView->notify = ivug_notify_static_create(pCropView->notify_area, IDS_CROP_NOTIFY, NOTIFY_ALIGN_BOTTOM); - - evas_object_show(pCropView->photocam); - - pCropView->PrevRotate = gGetRotationDegree(); -} - -static void -_ivug_crop_view_response_cb( void *data, Evas_Object *obj, void *event_info ) -{ - IV_ASSERT(obj != NULL); - IV_ASSERT(data != NULL); - - MSG_HIGH( "response callback=%d",(int)event_info); - IvugCropView *pCropView = static_cast(data); - - evas_object_hide(obj); // popup - evas_object_del(obj); - - evas_object_smart_callback_call(pCropView->layout, "ok,clicked", pCropView->result_path); - - // Remove view. - evas_object_smart_callback_call(pCropView->layout, "destroyed", NULL); - - //ivug_crop_view_destroy(pCropView); -} - - -static Evas_Object* -_show_exit_popup( Evas_Object *parent, const char *title, const char *desc, void *data) -{ - MSG_HIGH( "title: %s, desc %s", title, desc); - - Evas_Object* style1_popup = elm_popup_add(parent); - evas_object_size_hint_weight_set(style1_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_popup_timeout_set(style1_popup, (double)2.0); - elm_object_text_set(style1_popup, desc); - elm_object_part_text_set(style1_popup, "title,text", title); - - evas_object_smart_callback_add(style1_popup, "timeout", _ivug_crop_view_response_cb, data); - - evas_object_show(style1_popup); - evas_object_layer_set(style1_popup, EVAS_LAYER_MAX); - - return style1_popup; -} - -static char * _ivug_crop_create_name(IvugCropView *pCropView) -{ - char tempname[IVUG_MAX_FILE_PATH_LEN+1] = {0,}; - char *save_file = NULL; - - //evas encoder support jpg, png only - if(pCropView->dest_name) - { - char *dir = NULL; - if(pCropView->dest_dir) - { - dir = strdup(pCropView->dest_dir); - } - else - { - dir = ecore_file_dir_get(pCropView->file_path); - } - snprintf(tempname, sizeof(tempname), "%s/%s.jpg", dir, pCropView->dest_name); - free(dir); - save_file = strdup(tempname); - } - else - { - save_file = ivug_generate_file_name(pCropView->file_path, "jpg", pCropView->dest_dir); - } - - return save_file; -} - -static void _on_btn_save(void *data, Evas_Object *obj, void *event_info) -{ - IV_ASSERT(data != NULL); - - IvugCropView *pCropView = static_cast(data); - - int rx, ry, rw, rh; - Evas_Object *ret_image = NULL; - - char* save_file = _ivug_crop_create_name(pCropView); - - if(save_file == NULL) - { - MSG_ERROR("Cannot generate file name"); - goto SAVE_FAILED; - } - - MSG_HIGH("Save clicked. %s", save_file); - -// Get region - ivug_scissorbox_region_get(pCropView->cropbox, &rx, &ry, &rw, &rh); // Get LCD - MSG_HIGH("SCissorbox Rect:(%d,%d,%d,%d)", rx, ry, rw, rh); - - ret_image = ivug_image_region_image_get(pCropView->photocam, rx, ry, rw, rh); - - if(ret_image == NULL) - { - MSG_ERROR("Region get faied."); - goto SAVE_FAILED; - } - - if (evas_object_image_save(ret_image, save_file, NULL, "quality=100 compress=9") == EINA_FALSE) - { - MSG_ERROR("evas_object_image_save error. %s", save_file); - goto SAVE_FAILED; - } - -// Check again! - { - int fd = open(save_file, O_RDONLY); - if(fd < 0) - { - MSG_ERROR("%s open error[%d]", save_file, fd); - goto SAVE_FAILED; - } - - int ret = close(fd); - if(ret < 0) - { - MSG_ERROR("%s open error[%d]", save_file, ret); - } - } - - pCropView->result_path = strdup(save_file); - - _show_exit_popup(pCropView->layout, IDS_CROP, IDS_SUCCESS, (void *)pCropView); - - evas_object_del(ret_image); - free(save_file); - - return; - -SAVE_FAILED: - _show_exit_popup(pCropView->layout, IDS_CROP, IDS_FAILED, (void *)pCropView); - - if(ret_image) - evas_object_del(ret_image); - if(save_file) - free(save_file); - - return; -} - -static void _on_btn_cancel(void *data, Evas_Object *obj, void *event_info) -{ - IV_ASSERT(data != NULL); - - IvugCropView *pCropView = static_cast(data); - - MSG_HIGH("Cancel clicked"); - - evas_object_smart_callback_call(pCropView->layout, "cancel,clicked", NULL); - - evas_object_smart_callback_call(pCropView->layout, "destroyed", NULL); - - ivug_crop_view_destroy(pCropView); -} - -static Evas_Event_Flags _finger_tap_end(void *data , void *event_info) -{ - Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) event_info; - - MSG_HIGH("Finger tab end. evt=%d", p->timestamp); - - if ( p->n != 1 ) return EVAS_EVENT_FLAG_NONE; - - IvugCropView *pCropView = static_cast(data); - IV_ASSERT(pCropView != NULL); - - if(pCropView->bShowMenu) - { - MSG_HIGH("Hide"); - elm_win_indicator_mode_set((Evas_Object*)ug_get_window(), ELM_WIN_INDICATOR_HIDE); - evas_object_hide(pCropView->notify); - } - else - { - MSG_HIGH("Show"); - if(gIsDesktopMode() == false) - { - elm_win_indicator_mode_set((Evas_Object *)ug_get_window(), ELM_WIN_INDICATOR_SHOW); - } - evas_object_show(pCropView->notify); - } - - pCropView->bShowMenu = !pCropView->bShowMenu; - - evas_object_smart_callback_call(pCropView->layout, "clicked", (void *)pCropView->bShowMenu); - - return EVAS_EVENT_FLAG_NONE; -} - -void _add_gesture_layer(Evas_Object *parent, IvugCropView *pCropView) -{ - IV_ASSERT(pCropView != NULL); - - Evas_Object *gesture = pCropView->gesture; - - gesture = elm_gesture_layer_add(parent); - elm_gesture_layer_hold_events_set(gesture, EINA_FALSE); - - elm_gesture_layer_cb_set(gesture, ELM_GESTURE_N_TAPS, ELM_GESTURE_STATE_END, _finger_tap_end, (void *)pCropView); - - if ( elm_gesture_layer_attach(gesture, pCropView->photocam) == EINA_FALSE) - { - MSG_ERROR("Cannot attach event rect"); - } - - evas_object_name_set(gesture, "Crop:Getsture"); -} - -void _ivug_crop_view_box_delete(IvugCropView *pCropView) -{ - IV_ASSERT(pCropView != NULL); - - if ( pCropView->cropbox) - { - evas_object_del(pCropView->cropbox); - pCropView->cropbox = NULL; - } - - return; -} - -IvugCropView *ivug_crop_view_create(Evas_Object *parent) -{ - IvugCropView *pCropView = (IvugCropView *)calloc(1, sizeof(IvugCropView)); - - Evas_Object *layout; - - layout = EFL::create_layout(parent, CROP_EDJ_FILE, "crop_view"); - - if ( layout == NULL ) - { - MSG_ERROR("Cannot create crop view"); - free(pCropView); - return NULL; - } - - pCropView->layout = layout; - evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND ); - - pCropView->photocam = ivug_image_create(layout); - ivug_image_animated_set(pCropView->photocam, EINA_FALSE); - ivug_image_hold_set(pCropView->photocam , EINA_TRUE); // Disable mouse events - evas_object_smart_callback_add(pCropView->photocam, "loaded", _on_preloaded, pCropView); - - elm_object_part_content_set(layout, "photocam", pCropView->photocam ); - - pCropView->bShowMenu = true; - //_add_gesture_layer(layout, pCropView); - - pCropView->contents_area = ivug_default_layout_add(parent); - evas_object_name_set(pCropView->contents_area, "contets_area"); - if ( pCropView->contents_area == NULL ) - { - MSG_SETAS_ERROR("Cannot create contets_area."); - } - - elm_object_part_content_set(pCropView->layout, "crop.contents.swallow", pCropView->contents_area); - - pCropView->cropbox = ivug_scissorbox_add(pCropView->contents_area); - ivug_scissorbox_type_set(pCropView->cropbox, SCISSOR_BOX_TYPE_2); - - elm_object_part_content_set(layout, "scissorbox", pCropView->cropbox); - - evas_object_event_callback_add(layout, EVAS_CALLBACK_RESIZE, _on_layout_resized, pCropView ); - - MSG_HIGH("Create CropView"); - - evas_object_smart_callback_add(layout, "test", _on_test, NULL); - - evas_object_show(layout); - - pCropView->w = 0; - pCropView->h = 0; - - return pCropView; -} - -bool ivug_crop_view_box_size_set(IvugCropView *pCropView, int w, int h) -{ - IV_ASSERT(pCropView != NULL); - - pCropView->w = w; - pCropView->h = h; - - return true; -} - -bool ivug_crop_view_box_ratio_fix(IvugCropView *pCropView, bool bFix) -{ - IV_ASSERT(pCropView != NULL); - - ivug_scissorbox_ratio_fix(pCropView->cropbox, bFix); - - return true; -} - -bool ivug_crop_view_file_set(IvugCropView *pCropView, const char *file) -{ - IV_ASSERT(pCropView != NULL); - - Evas_Load_Error err; - - if ( pCropView->file_path ) - { - free(pCropView->file_path); - } - - pCropView->file_path = strdup(file); - - err = ivug_image_file_set(pCropView->photocam, file, "noanim"); - evas_object_smart_callback_call(pCropView->layout, "test", NULL); - - return true; -} - -bool ivug_crop_view_destination_set(IvugCropView *pCropView, const char *dir, const char *name) -{ - MSG_HIGH("ivug_crop_view_destination_set, to %s", dir); - - if(dir) - { - pCropView->dest_dir = strdup(dir); - } - if(name) - { - pCropView->dest_name = strdup(name); - } - - return true; -} - -void ivug_crop_view_destroy(IvugCropView *pCropView) -{ - IV_ASSERT(pCropView != NULL); - - MSG_HIGH("Destroy CropView"); - - if(pCropView->box_timer) - { - ecore_timer_del(pCropView->box_timer); - pCropView->box_timer = NULL; - } - - if ( pCropView->file_path ) - { - free(pCropView->file_path); - pCropView->file_path = NULL; - } - - if ( pCropView->result_path) - { - free(pCropView->result_path); - pCropView->result_path = NULL; - } - - if ( pCropView->dest_dir) - { - free(pCropView->dest_dir); - pCropView->dest_dir = NULL; - } - - if ( pCropView->dest_name) - { - free(pCropView->dest_name); - pCropView->dest_name = NULL; - } - - if ( pCropView->cropbox) - { - evas_object_del(pCropView->cropbox); - pCropView->cropbox = NULL; - } - - if ( pCropView->gesture) - { - evas_object_del(pCropView->gesture); - pCropView->gesture = NULL; - } - - if ( pCropView->photocam ) - { - evas_object_del(pCropView->photocam); - pCropView->photocam = NULL; - } - - if ( pCropView->contents_area) - { - evas_object_del(pCropView->contents_area); - pCropView->contents_area = NULL; - } - - if(pCropView->btn_back) - { - evas_object_del(pCropView->btn_back); - pCropView->btn_back = NULL; - } - - if ( pCropView->notify) - { - evas_object_del(pCropView->notify); - pCropView->notify = NULL; - } - - if ( pCropView->layout ) - { - evas_object_del(pCropView->layout); - pCropView->layout = NULL; - } - - free(pCropView); - - pCropView = NULL; -} - -Evas_Object *ivug_crop_view_get_object(IvugCropView *pCropView) -{ - IV_ASSERT(pCropView != NULL); - - return pCropView->layout; -} - -void ivug_crop_view_create_menu(IvugCropView *pCropView, Evas_Object *navi_bar) -{ - pCropView->btn_ok = ivug_button_add(navi_bar, "naviframe/toolbar/default", - IDS_SAVE, NULL, _on_btn_save, (void *)pCropView); - - Elm_Object_Item *navi_it = elm_naviframe_top_item_get(navi_bar); - elm_object_item_part_content_set(navi_it, "toolbar_button1", pCropView->btn_ok); - - elm_object_disabled_set(pCropView->btn_ok, EINA_TRUE); -} - - diff --git a/main/src/view/ivug-details-view.c b/main/src/view/ivug-details-view.c deleted file mode 100755 index 0d1aee1..0000000 --- a/main/src/view/ivug-details-view.c +++ /dev/null @@ -1,485 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ivug-common.h" -#include "ivug-main-view.h" -#include "ivug-string.h" -#include "ivug-file-info.h" - -#include "ivug-details-view.h" -#include "ivug-detail-info.h" - -#include "ivug-drm-common.h" - -#define DETAILS_EDJ_FILE EDJ_PATH"/ivug-details.edj" - -/* - this structure represent one item in genlist. -*/ -typedef struct -{ - char *m_ItemName; - char *m_ItemContents; - exif_info_type_e type; - Ivug_DetailsView *pDetailsView; -} ivug_file_list_item; - - -static char * -_ivug_details_gl_label_get(void *data, Evas_Object *obj, const char *part ) -{ - ivug_file_list_item *params = (ivug_file_list_item *)data; - - ivug_retvm_if(params == NULL, NULL, "params is NULL"); - - Ivug_DetailsView *pDetailsView = (Ivug_DetailsView *)params->pDetailsView; - ivug_retvm_if(pDetailsView == NULL, NULL, "pDetailsView is NULL"); - - //MSG_DETAIL_WARN("m_ItemName is %s", params->m_ItemName); - - if(strcmp(part, "elm.text.1") == 0) - { - if(params->m_ItemName) - { - return strdup(params->m_ItemName); - - } - else - { - return strdup(IDS_UNKNOWN); - } - } - else if(strcmp(part, "elm.text.2")==0) - { - if (params->m_ItemContents) { - return elm_entry_utf8_to_markup(params->m_ItemContents); - } else { - return elm_entry_utf8_to_markup(IDS_UNKNOWN); - } - } - - else - { - return NULL; - } - -} - -static void -_ivug_details_gl_del(void *data, Evas_Object *obj ) -{ - ivug_ret_if(NULL == data); - - ivug_file_list_item *params = (ivug_file_list_item *)data; - - ivug_retm_if(params == NULL, "params is NULL"); - if(params) - { - if(params->m_ItemName) - { - free(params->m_ItemName); - params->m_ItemName = NULL; - } - if(params->m_ItemContents) - { - free(params->m_ItemContents); - params->m_ItemContents = NULL; - } - free(params); - params = NULL; - } - - return; -} - -static char* -_ivug_details_gl_label_get_title(void *data, Evas_Object *obj,const char *part ) -{ - ivug_retv_if(NULL == data, NULL); - - if (!strcmp(part, "elm.text")) - { - return strdup(data); - } - - return NULL; -} - -static void _rename_button_clicked_cb(void *data, Evas_Object * obj, void *event_info) -{ - Ivug_DetailsView *pDetailsView = (Ivug_DetailsView *)data; - - MSG_DETAIL_HIGH("clicked event on Button"); - - evas_object_smart_callback_call(pDetailsView->layout, "rename,clicked", (void *)pDetailsView); - - return; -} - -static Evas_Object *_ivug_details_gl_icon_get_title(void *data, Evas_Object *obj, const char *part) -{ - ivug_file_list_item *params = (ivug_file_list_item *)data; - - ivug_retvm_if(params == NULL, NULL, "params is NULL"); - - Ivug_DetailsView *pDetailsView = (Ivug_DetailsView *)params->pDetailsView; - ivug_retvm_if(pDetailsView == NULL, NULL, "pDetailsView is NULL"); - - Evas_Object *btn = NULL; - - if (!strcmp(part, "elm.icon") || !strcmp(part, "elm.icon.1")) { - btn = elm_button_add(pDetailsView->layout); - elm_object_style_set(btn, "rename"); - evas_object_smart_callback_add(btn, "clicked", _rename_button_clicked_cb, (void *)pDetailsView); - } - - return btn; -} - -static Eina_Bool -_ivug_details_gl_state_get(void *data, Evas_Object *obj, const char *part ) -{ - return EINA_FALSE; -} - -static Evas_Object * -_ivug_details_view_genlist_create(Ivug_DetailsView *pDetailsView, Evas_Object *parent) -{ - IV_ASSERT(pDetailsView != NULL); - - Evas_Object *genlist = NULL; - genlist = elm_genlist_add(parent); - - ivug_retvm_if(NULL == genlist, NULL, "Create Details genlist failed.."); - - elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS); - - elm_object_theme_set(genlist, gGetSystemTheme()); - - memset(&pDetailsView->itc, 0, sizeof(Elm_Genlist_Item_Class) ); - - pDetailsView->itc.version = ELM_GENLIST_ITEM_CLASS_VERSION; - pDetailsView->itc.item_style = "ivug/2text.2"; - pDetailsView->itc.func.text_get = _ivug_details_gl_label_get; - pDetailsView->itc.func.content_get = NULL; - pDetailsView->itc.func.state_get = _ivug_details_gl_state_get; - pDetailsView->itc.func.del = _ivug_details_gl_del; - - memset(&pDetailsView->title_itc, 0, sizeof(Elm_Genlist_Item_Class) ); - - // Set item class for dialogue group title - pDetailsView->title_itc.version = ELM_GENLIST_ITEM_CLASS_VERSION; - pDetailsView->title_itc.item_style = "grouptitle"; - pDetailsView->title_itc.func.text_get = _ivug_details_gl_label_get_title; - pDetailsView->title_itc.func.content_get = NULL; - pDetailsView->title_itc.func.state_get = NULL; - pDetailsView->title_itc.func.del = NULL; - - memset(&pDetailsView->multiline_icon_itc, 0, sizeof(Elm_Genlist_Item_Class) ); - - // Set item class for dialogue group title with icon - pDetailsView->multiline_icon_itc.version = ELM_GENLIST_ITEM_CLASS_VERSION; - pDetailsView->multiline_icon_itc.item_style = "ivug/multiline/2text.5icon"; - pDetailsView->multiline_icon_itc.func.text_get = _ivug_details_gl_label_get; - pDetailsView->multiline_icon_itc.func.content_get = _ivug_details_gl_icon_get_title; - pDetailsView->multiline_icon_itc.func.state_get = NULL; - pDetailsView->multiline_icon_itc.func.del = NULL; - - memset(&pDetailsView->multiline_itc, 0, sizeof(Elm_Genlist_Item_Class) ); - - pDetailsView->multiline_itc.version = ELM_GENLIST_ITEM_CLASS_VERSION; - pDetailsView->multiline_itc.item_style = "ivug/multiline/2text"; - pDetailsView->multiline_itc.func.text_get = _ivug_details_gl_label_get; - pDetailsView->multiline_itc.func.content_get = NULL; - pDetailsView->multiline_itc.func.state_get = NULL; - pDetailsView->multiline_itc.func.del = _ivug_details_gl_del; - - return genlist; -} - -static void -_ivug_detail_genlist_view_exif_info_create(Ivug_DetailsView *pDetailsView, const char *path, Media_Type stype) -{ - IV_ASSERT(pDetailsView != NULL); - - Evas_Object *genlist = NULL; - int index = 0; - bool ret = false; - - Elm_Object_Item *it = NULL; - - ivug_file_list_item *m_TempItem = NULL; - - genlist = pDetailsView->genlist; - - char *name = NULL; - char *contents = NULL; - - for (index = 0; index < EXIF_INFO_MAX; index++) - { - ret = ivug_datail_get_exif_info(&name, &contents, path, stype, index); - if(ret == false) - { - continue; - } - - m_TempItem = (ivug_file_list_item *)calloc(1, sizeof(ivug_file_list_item)); - ivug_retm_if(NULL == m_TempItem, "m_TempItem calloc failed"); - - m_TempItem->m_ItemName = name; - m_TempItem->m_ItemContents = contents; - m_TempItem->pDetailsView = pDetailsView; - - it = elm_genlist_item_append(genlist, &pDetailsView->multiline_itc, m_TempItem, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); - elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); - } - -} - -static void -_ivug_detail_genlist_view_file_view_create(Ivug_DetailsView *pDetailsView, const char *path, Media_Type stype) -{ - IV_ASSERT(pDetailsView != NULL); - - Evas_Object *genlist = NULL; - int index = 0; - - Elm_Object_Item *git = NULL; - Elm_Object_Item *it = NULL; - - ivug_file_list_item *m_TempItem = NULL; - - genlist = pDetailsView->genlist; - - char *name = NULL; - char *contents = NULL; - bool ret = false; - - git = elm_genlist_item_append(genlist, &pDetailsView->title_itc, strdup(IDS_DETAILS), NULL, ELM_GENLIST_ITEM_GROUP, NULL, NULL); - elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); - - for (index = 0; index < FILE_INFO_MAX; index++) - { - ret = ivug_datail_get_file_info(&name, &contents, path, stype, index); - if(ret == false) - { - continue; - } - - m_TempItem = (ivug_file_list_item *)calloc(1, sizeof(ivug_file_list_item)); - if(m_TempItem == NULL) - { - continue; - } - - m_TempItem->m_ItemName = name; - if(index == FILE_INFO_NAME) - { - pDetailsView->filename = &(m_TempItem->m_ItemContents); // for rename - } - else if(index == FILE_INFO_FILE_LOCATION) - { - pDetailsView->path = &(m_TempItem->m_ItemContents); // for rename - } - m_TempItem->m_ItemContents = contents; - m_TempItem->pDetailsView = pDetailsView; - - if(index == 0) // for rename icon - { - it = elm_genlist_item_append(genlist, &pDetailsView->multiline_icon_itc, m_TempItem, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); - } - else - { - it = elm_genlist_item_append(genlist, &pDetailsView->multiline_itc, m_TempItem, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); - } - elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); - } -} - -static void -_ivug_detail_genlist_view_drm_create(Ivug_DetailsView *pDetailsView, const char *path, Media_Type stype) -{ - IV_ASSERT(pDetailsView != NULL); - - Evas_Object *genlist = NULL; - int index = 0; - - Elm_Object_Item *it = NULL; - - ivug_file_list_item *m_TempItem = NULL; - - genlist = pDetailsView->genlist; - - char *name = NULL; - char *contents = NULL; - bool ret = false; - - for (index = 0; index < DRM_INFO_MAX; index++) - { - name = NULL; - contents = NULL; - ret = ivug_datail_get_drm_info(&name, &contents, path, stype, index); - if(ret == false) - { - continue; - } - - m_TempItem = (ivug_file_list_item *)calloc(1, sizeof(ivug_file_list_item)); - if(m_TempItem == NULL) - { - continue; - } - - m_TempItem->m_ItemName = name; - m_TempItem->m_ItemContents = contents; - m_TempItem->pDetailsView = pDetailsView; - - it = elm_genlist_item_append(genlist, &pDetailsView->multiline_itc, m_TempItem, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); - elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); - } - -} - -Ivug_DetailsView * -ivug_details_view_screen_create(Evas_Object *parent, Media_Item *mitem, ivug_view_by view_by) -{ - ivug_retv_if(!parent, NULL); - ivug_retv_if(!mitem, NULL); - - Media_Data *mdata = ivug_medialist_get_data(mitem); - ivug_retv_if(!mdata, NULL); - ivug_retv_if(!mdata->filepath, NULL); - - char *filepath = mdata->filepath; - Media_Type stype = mdata->slide_type; - - Ivug_DetailsView *pDetailsView = (Ivug_DetailsView *)calloc(1, sizeof(Ivug_DetailsView)); - if ( pDetailsView == NULL ) - { - MSG_DETAIL_FATAL("Cannot allocate memory"); - return NULL; - } - - pDetailsView->mitem = mitem; - -// Creating GUI - pDetailsView->evas = evas_object_evas_get(parent); - -//layout - - pDetailsView->layout = ivug_layout_add2(parent, DETAILS_EDJ_FILE, "details_view"); - if(pDetailsView->layout == NULL) - { - free(pDetailsView); - return NULL; - } - -#define IVUG_DETAILS_BG_ALPHA 200 - - pDetailsView->bg = evas_object_rectangle_add(evas_object_evas_get(pDetailsView->layout)); - if (pDetailsView->bg) - { - evas_object_size_hint_expand_set(pDetailsView->bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_fill_set(pDetailsView->bg, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_color_set(pDetailsView->bg, IVUG_DEFAULT_BG_COLOR, - IVUG_DEFAULT_BG_COLOR, IVUG_DEFAULT_BG_COLOR, IVUG_DETAILS_BG_ALPHA); - elm_object_part_content_set(pDetailsView->layout, "details_view.swallow.bg", - pDetailsView->bg); - } - - //create genlist - Evas_Object *genlist = NULL; - - genlist = _ivug_details_view_genlist_create(pDetailsView, pDetailsView->layout); - pDetailsView->genlist = genlist; - - _ivug_detail_genlist_view_file_view_create(pDetailsView, filepath, stype); - - if(mdata->bIsDRMContent == EINA_TRUE) - { - _ivug_detail_genlist_view_drm_create(pDetailsView, filepath, stype); - } - else - { - _ivug_detail_genlist_view_exif_info_create(pDetailsView, filepath, stype); - } - - elm_object_part_content_set(pDetailsView->layout, "details_view.genlist" , pDetailsView->genlist ); - - MSG_DETAIL_HIGH("Detail view(0x%08x) created for %s", pDetailsView, filepath); - - return pDetailsView; -} - - -Evas_Object * -ivug_details_view_object_get(Ivug_DetailsView *pDetailsView) -{ - IV_ASSERT(pDetailsView != NULL); - - return pDetailsView->layout; -} - -void -ivug_details_view_destroy(Ivug_DetailsView *pDetailsView) -{ - IV_ASSERT(pDetailsView != NULL); - MSG_DETAIL_HIGH("Removing Details VIew"); - -// Layout removed automatically when popping from navi item. - if (pDetailsView->genlist) { - elm_genlist_clear(pDetailsView->genlist); - pDetailsView->genlist = NULL; - } - if(pDetailsView->bg) - { - evas_object_del(pDetailsView->bg); - pDetailsView->bg = NULL; - } - - if(pDetailsView->layout) - { - evas_object_del(pDetailsView->layout); - pDetailsView->layout = NULL; - } - - free(pDetailsView); - - pDetailsView = NULL; -} - -void ivug_details_view_update(Ivug_DetailsView *pDetailsView, const char *new_path) -{ - MSG_IVUG_HIGH("ivug_details_view_update"); - - free(*(pDetailsView->filename)); - *(pDetailsView->filename) = ecore_file_strip_ext(ecore_file_file_get(new_path)); - - free(*(pDetailsView->path)); - *(pDetailsView->path) = strdup(new_path); - //elm_genlist_realized_items_update(pDetailsView->genlist); - Elm_Object_Item *item = NULL; - if (pDetailsView->genlist) { - item = elm_genlist_first_item_get(pDetailsView->genlist); - while (item) { - elm_genlist_item_update(item); - item = elm_genlist_item_next_get(item); - } - } -} - diff --git a/main/src/view/ivug-main-view-menu.cpp b/main/src/view/ivug-main-view-menu.cpp index 048d62a..0f9d0ce 100755 --- a/main/src/view/ivug-main-view-menu.cpp +++ b/main/src/view/ivug-main-view-menu.cpp @@ -1,147 +1,148 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ - +* Copyright (c) 2000-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 "ivug-common.h" #include "ivug-main-view.h" #include "ivug-main-view-toolbar.h" #include "ivug-main-view-menu.h" #include "ivug-main-view-priv.h" -#include "ivug-slider.h" -#include "ivug-slider-item.h" - #include "ivug-listpopup.h" #include "ivug-ext-ug.h" #include "ivug-popup.h" -#include "ivug-selectioninfo.h" #include "ivug-media.h" #include "ivug-slideshow.h" #include "ivug-file-info.h" +#include "ivug-thumblist.h" + #include "ivug-exif.h" -#include // ug_destroy_me, ug_send_result +#include +#include #include -#include //app_manager_get_app_name +#include +#include +#include +#include +#include "ivug-db.h" +#include "ivug-image.h" #include "ivug-crop-view.h" +#include "ivug-util.h" +#include "ivug-comment.h" +#include "ivug-config.h" +#include "ivug-language-mgr.h" +#include "ivug-transcoder.h" +#define GALLERY_PKG_NAME "com.samsung.gallery" +#define SHORTCUT_PREFIX "gallery:imageviewer:" +#define SHORTCUT_PREFIX_LEN strlen(SHORTCUT_PREFIX) +#define SHORTCUT_ICON_PATH "/usr/share/icons/default/small/com.samsung.image-viewer.png" -#include // media_file_register -#define IVUG_DEFINE_EXIF_ROTATE -#define GALLERY_PKG_NAME "org.tizen.gallery" -#define SHORTCUT_PREFIX "gallery:imageviewer:" -#define SHORTCUT_PREFIX_LEN strlen(SHORTCUT_PREFIX) -#define SHORTCUT_ICON_PATH "/usr/share/icons/default/small/org.tizen.image-viewer.png" +#define ICON_EDJ_PATH EDJ_PATH"/ivug-icons.edj" +#define ICON_NEAR_BY_PHONE "icon.nearby.phone" +#define ICON_NEAR_BY_UNKNOWN "icon.nearby.unknown" + + +static void +ivug_notification_popup_create(Evas_Object * pParent, const char* text) +{ + MSG_IMAGEVIEW_HIGH("ivug_notification_popup_create. Text=%s", GET_STR(text)); + + Evas_Object *pPopup = elm_popup_add(pParent); + elm_object_style_set(pPopup, "default"); + elm_object_part_text_set(pPopup, "default", text); + elm_popup_timeout_set(pPopup, 3.0); + elm_popup_orient_set(pPopup, ELM_POPUP_ORIENT_BOTTOM); + evas_object_show(pPopup); +} static void _on_ext_ug_destroy_cb(ui_gadget_h ug, void *priv) { - if (!ug ) return; + IV_ASSERT(ug != NULL); Ivug_MainView *pMainView = (Ivug_MainView *)priv; - MSG_IMAGEVIEW_HIGH("UG destroyed"); + MSG_IMAGEVIEW_HIGH("Extern UG destroyed. ug=0x%08x", ug); pMainView->ext_ug = NULL; ivug_main_view_set_hide_timer(pMainView); } -static void _on_selectioninfo_deleted(void * data, Evas * e, Evas_Object * obj, void * event_info) +static Eina_Bool _on_back_timer_expired(void *data) { + ivug_retv_if(!data, ECORE_CALLBACK_CANCEL); + Ivug_MainView *pMainView = (Ivug_MainView *)data; - IV_ASSERT(pMainView != NULL); - MSG_MAIN_HIGH("selection info deleted"); + pMainView->back_timer = NULL; + + pMainView->bPreventBackKey = false; - pMainView->selectioninfo = NULL; + return ECORE_CALLBACK_CANCEL; } -void _ivug_selectioninfo_create(Ivug_MainView *pMainView, const char *string) +static void _launch_share_app(Ivug_MainView *pMainView, const char* filepath) { - IV_ASSERT(pMainView != NULL); - - if(pMainView->selectioninfo) - { - evas_object_del(pMainView->selectioninfo); - pMainView->selectioninfo = NULL; + if (pMainView->back_timer) { + ecore_timer_del(pMainView->back_timer); } + pMainView->back_timer = ecore_timer_add(0.5, _on_back_timer_expired, pMainView); + pMainView->bPreventBackKey = true; - pMainView->selectioninfo = ivug_selectioninfo_create(pMainView->layout, string); - IV_ASSERT(pMainView->selectioninfo != NULL); - - evas_object_event_callback_add(pMainView->selectioninfo, EVAS_CALLBACK_DEL, _on_selectioninfo_deleted, pMainView); +#ifdef IV_EXTENDED_FEATURES + ivug_ext_launch_default(filepath, "http://tizen.org/appcontrol/operation/share", NULL, NULL, NULL); +#endif } - -void _delete_details_view(Ivug_MainView *pMainView ) +bool ivug_is_agif (const char *filepath) { - Evas_Object *detail_view_layout = elm_object_item_part_content_unset(pMainView->navi_it, "elm.swallow.detail"); - - MSG_MAIN_HIGH("Delete detail view. old layout=0x%08x", detail_view_layout); - - ivug_details_view_destroy(pMainView->pDetailsView); // Delete detail view. - pMainView->pDetailsView = NULL; + Evas_Object *obj = evas_object_image_add(evas_object_evas_get((Evas_Object *)ug_get_window())); + evas_object_image_file_set(obj, filepath, NULL); + return evas_object_image_animated_get(obj); } - static void _on_add_tag_view_destroy(void *data, Evas_Object *obj, void *event_info) { MSG_MAIN_HIGH("transition finished"); Ivug_MainView *pMainView = (Ivug_MainView *)data; ivug_name_view_destroy(pMainView->pNameView); - pMainView->pNameView = NULL; // Will removed in add tag view. + pMainView->pNameView = NULL; evas_object_smart_callback_del(pMainView->navi_bar, "transition,finished", _on_add_tag_view_destroy); } -static void _on_add_tag_view_response(ivug_name_response resp, const char *str, void *pClientData) +static void _on_add_tag_view_response(Ivug_NameView *pView, ivug_name_response resp, const char *str, void *pClientData) { Ivug_MainView *pMainView = (Ivug_MainView *)pClientData; - bool ret = false; - Media_Item *mitem = NULL; - Media_Data *mdata = NULL; - - Evas_Object *conformant = NULL; - switch(resp) - { + switch (resp) { case NAME_VIEW_RESPONSE_OK: - mitem = ivug_slider_get_item(pMainView->slider); - mdata = ivug_medialist_get_data(mitem); - ret = ivug_mediadata_set_tag(mdata, str); - if(ret == false) - { - MSG_MAIN_ERROR("ivug_mediadata_set_tag failed: ret = %d", ret); - _ivug_selectioninfo_create(pMainView, IDS_FAILED); - } - else - { - MSG_MAIN_HIGH("New tags is added"); - _ivug_selectioninfo_create(pMainView, IDS_ADDED); - } evas_object_smart_callback_add(pMainView->navi_bar, "transition,finished", _on_add_tag_view_destroy, pMainView); @@ -149,8 +150,6 @@ static void _on_add_tag_view_response(ivug_name_response resp, const char *str, pMainView->navi_it = elm_naviframe_top_item_get(pMainView->navi_bar); - conformant = (Evas_Object *)ug_get_conformant(); - elm_object_signal_emit(conformant, "elm,state,indicator,overlap", ""); break; case NAME_VIEW_RESPONSE_CANCEL: MSG_MAIN_HIGH("Add tag is canceled"); @@ -161,228 +160,69 @@ static void _on_add_tag_view_response(ivug_name_response resp, const char *str, pMainView->navi_it = elm_naviframe_top_item_get(pMainView->navi_bar); - conformant = (Evas_Object *)ug_get_conformant(); - elm_object_signal_emit(conformant, "elm,state,indicator,overlap", ""); break; default: MSG_MAIN_ERROR("Unhandled mode : %d", resp); break; } - elm_naviframe_item_title_visible_set(pMainView->navi_it, EINA_TRUE); - elm_object_item_signal_emit(pMainView->navi_it, "elm,state,toolbar,open", ""); - ivug_main_view_set_hide_timer(pMainView); } -static void -_on_setasview_deleted(void *data, Evas *e , Evas_Object *obj , void *event_info ) +static void _on_edit_weather_view_destroy(void *data, Evas_Object *obj, void *event_info) { - ivug_retm_if(!data, "data is NULL"); - Ivug_MainView *pMainView = (Ivug_MainView *)data; - MSG_MAIN_HIGH("SetAS View is destroyed"); - - pMainView->pSetAsView = NULL; - - ivug_main_view_set_hide_timer(pMainView); -} + MSG_MAIN_HIGH("transition finished"); -static void _on_setas_view_destroyed(void *data, Evas_Object *obj, void *event_info) -{ - IV_ASSERT(data != NULL); Ivug_MainView *pMainView = (Ivug_MainView *)data; - elm_naviframe_item_pop(pMainView->navi_bar); - - pMainView->navi_it = elm_naviframe_top_item_get(pMainView->navi_bar); - - //Evas_Object *conformant = (Evas_Object *)ug_get_conformant(); - //elm_object_signal_emit(conformant, "elm,state,indicator,overlap", ""); - - if(pMainView->pSetAsView) - { - ivug_setas_view_destroy(pMainView->pSetAsView); - pMainView->pSetAsView = NULL; - } -} - -static void -_on_timeout_response(void *data, Evas_Object *obj, void *event_info) -{ - IV_ASSERT(data != NULL); - Ivug_MainView *pMainView = (Ivug_MainView *)data; - ivug_main_view_set_hide_timer(pMainView); + evas_object_smart_callback_del(pMainView->navi_bar, "transition,finished", + _on_edit_weather_view_destroy); } -void _on_share_selected(void *data, Evas_Object *obj, void *event_info) +static void _ivug_crop_view_ok_clicked_cb(void *data, Evas_Object *obj, void *event_info) { - IV_ASSERT(data != NULL); - + char *path = (char *)event_info; Ivug_MainView *pMainView = (Ivug_MainView *)data; - IV_ASSERT(pMainView->ext_ug == NULL); - - Ivug_ListPopup_Item *item = (Ivug_ListPopup_Item *)event_info; - - const char *label = (const char *)ivug_listpopup_item_get_data(item); - - if(label == NULL) - { - MSG_MAIN_ERROR("label is NULL"); - evas_object_del(obj); - ivug_main_view_set_hide_timer(pMainView); - return; - } - MSG_MAIN_HIGH("text(%s) is clicked", label); - - Media_Item *mitem = ivug_slider_get_item(pMainView->slider); - Media_Data *mdata = ivug_medialist_get_data(mitem); - - if(mdata == NULL) - { - MSG_MAIN_ERROR("sd is NULL"); - evas_object_del(obj); - return; - } - char *path = NULL; - path = mdata->filepath; + MSG_MAIN_HIGH("_ivug_crop_view_ok_clicked_cb path=%s", path); - bool ret = false; - ret = ivug_ext_launch_to_send(path, label, _on_ext_ug_destroy_cb, data, pMainView->ext_ug); + evas_object_smart_callback_del(obj, "ok,clicked", _ivug_crop_view_ok_clicked_cb); - /* appsvc failed or ug_create failed */ - if(ret == false) - { - ivug_timeout_popup_show(pMainView->layout, _on_timeout_response, pMainView, NULL, IDS_APPLICATION_NOT_INSTALLED); + if (path == NULL) { + MSG_MAIN_ERROR("Crop failed! pMainView(0x%08x)", pMainView); + return ; } - evas_object_del(obj); -} - -static void _ivug_crop_view_transit_finished_cb(void *data, Evas_Object *obj, void *event_info) -{ - Ivug_MainView *pMainView = (Ivug_MainView *)data; - - ivug_crop_view_destroy(pMainView->pCropView); - - pMainView->pCropView = NULL; - - evas_object_smart_callback_del(pMainView->navi_bar, "transition,finished", - _ivug_crop_view_transit_finished_cb); -} - -static void _ivug_crop_view_destroyed_cb(void *data, Evas_Object *obj, void *event_info) -{ - Ivug_MainView *pMainView = (Ivug_MainView *)data; - - ivug_main_view_set_hide_timer(pMainView); - - evas_object_smart_callback_add(pMainView->navi_bar, "transition,finished", - _ivug_crop_view_transit_finished_cb, pMainView); - - _ivug_crop_view_box_delete(pMainView->pCropView); - - elm_naviframe_item_pop(pMainView->navi_bar); - pMainView->navi_it = elm_naviframe_top_item_get(pMainView->navi_bar); - - elm_naviframe_item_title_visible_set(pMainView->navi_it, EINA_TRUE); - - _update_title(pMainView); // after crop index changed - - //Evas_Object *conformant = (Evas_Object *)ug_get_conformant(); - //elm_object_signal_emit(conformant, "elm,state,indicator,overlap", ""); -} - -#if 0 -static void _create_setas_view(Ivug_MainView *pMainView, const char *filepath, ivug_set_screen_type type) -{ - pMainView->pSetAsView = ivug_setas_view_screen_create(pMainView->layout, filepath, - IVUG_SETAS_NORMAL, type); - Evas_Object *setasOjbect = ivug_setas_view_object_get(pMainView->pSetAsView); - //evas_object_event_callback_add(setasOjbect, EVAS_CALLBACK_DEL, _on_setasview_deleted, pMainView); - evas_object_smart_callback_add(setasOjbect, "destroy", _on_setas_view_destroyed, pMainView); - - Evas_Object *back_btn = ivug_button_add(pMainView->navi_bar, "naviframe/end_btn/default", - IDS_BACK, NULL, _on_setas_view_destroyed, pMainView); - - pMainView->navi_it = elm_naviframe_item_push(pMainView->navi_bar, - NULL, back_btn, NULL, setasOjbect, NULL); - - ivug_setas_view_create_menu(pMainView->pSetAsView, pMainView->navi_bar, type); -} -#else - -static void _ivug_crop_view_ok_clicked_cb(void *data, Evas_Object *obj, void *event_info) -{ - char *path = (char *)event_info; media_handle m_handle = NULL; - MSG_MAIN_HIGH("_ivug_crop_view_ok_clicked_cb path = %d", path); - - evas_object_smart_callback_del(obj, "ok,clicked", _ivug_crop_view_ok_clicked_cb); - m_handle = ivug_db_insert_file_to_DB(path); - if(m_handle == NULL) - { + if (m_handle == NULL) { MSG_MAIN_ERROR("ivug_db_insert_file_to_DB failed %s", path); - } - else - { + } else { ivug_db_destroy_file_handle(m_handle); -} + } - Ivug_MainView *pMainView = (Ivug_MainView *)data; Media_Item *mitem = ivug_medialist_prepend_item(pMainView->mList, path); - Media_Item *c_mitem = ivug_slider_get_item(pMainView->slider); - Media_Data *c_mdata = ivug_medialist_get_data(c_mitem); - if(c_mdata->index == 1) //left slide item added - { - MSG_MAIN_ERROR("add left slide item"); - ivug_slider_set_item_to_slide(pMainView->slider, PREV_SLIDE, mitem); +#ifdef USE_THUMBLIST + Media_Data *mdata = ivug_medialist_get_data(mitem); + if (pMainView->thumbs) { + bool bVideo =( mdata->slide_type == SLIDE_TYPE_VIDEO); + Image_Object *img = ivug_thumblist_prepend_item(pMainView->thumbs, mdata->thumbnail_path, bVideo, mitem); + ivug_thumblist_select_item(pMainView->thumbs, img); // set focus to cropped image } -} - -static void _ivug_setas_view_ok_clicked_cb(void *data, Evas_Object *obj, void *event_info) -{ - char *path = (char *)event_info; - - MSG_MAIN_HIGH("_ivug_setas_view_ok_clicked_cb path = %d", path); - - evas_object_smart_callback_del(obj, "ok,clicked", _ivug_crop_view_ok_clicked_cb); - - // do not insert to db - - int setas_data = (int)evas_object_data_get(obj, "setas_type"); - ivug_set_screen_type type = (ivug_set_screen_type)setas_data; - - const char* homescreen_path = IVUG_HOME_SCREEN_PATH; - const char* lockscreen_path = IVUG_LOCK_SCREEN_PATH; +#endif - if(type == IVUG_CTRLBAR_SET_SCREEN_HOME) - { - ivug_copy_file(path, homescreen_path); - ivug_config_set_homescreen_image(homescreen_path); - } - else if(type == IVUG_CTRLBAR_SET_SCREEN_LOCK) - { - ivug_copy_file(path, lockscreen_path); - ivug_config_set_lockscreen_image(lockscreen_path); - } - else if(type == IVUG_CTRLBAR_SET_SCREEN_BOTH) - { - ivug_copy_file(path, homescreen_path); - ivug_config_set_homescreen_image(homescreen_path); - ivug_copy_file(path, lockscreen_path); - ivug_config_set_lockscreen_image(lockscreen_path); - } + ivug_medialist_set_current_item(pMainView->mList, mitem); + ivug_slider_new_update_list(pMainView->pSliderNew, pMainView->mList); } -static void _create_setas_view(Ivug_MainView *pMainView, const char *filepath, ivug_set_screen_type type) +static void _setas_trans_finished(void *data, Evas_Object *obj, void *event_info) { - IvugCropView *pCropView = ivug_crop_view_create(pMainView->layout); + MSG_MAIN_HIGH("Setas transition is finished"); + evas_object_smart_callback_del(obj, "transition,finished", _setas_trans_finished); int lcd_x = 0; int lcd_y = 0; @@ -390,45 +230,21 @@ static void _create_setas_view(Ivug_MainView *pMainView, const char *filepath, i int lcd_h = 0; int rot = 0; - Evas_Object *layout = ivug_crop_view_get_object(pCropView); - - evas_object_smart_callback_add(layout, "ok,clicked", _ivug_setas_view_ok_clicked_cb, pMainView); - evas_object_smart_callback_add(layout, "destroyed", _ivug_crop_view_destroyed_cb, pMainView); - - evas_object_data_set(layout, "setas_type", (void *)type); - - Evas_Object *btn_back = ivug_button_add(layout, "naviframe/end_btn/default", - IDS_BACK, NULL, _ivug_crop_view_destroyed_cb, pMainView); - - pMainView->navi_it = elm_naviframe_item_push(pMainView->navi_bar, NULL, btn_back, NULL, pCropView->layout, NULL); - - //Evas_Object *conformant = (Evas_Object *)ug_get_conformant(); - //elm_object_signal_emit(conformant, "elm,state,indicator,nooverlap", ""); - - ivug_crop_view_create_menu(pCropView, pMainView->navi_bar); - - ivug_crop_view_file_set(pCropView, filepath); - - ivug_crop_view_destination_set(pCropView, DATA_PATH, ".iv_setas.jpg"); - evas_object_geometry_get((Evas_Object *)ug_get_window(), &lcd_x, &lcd_y, &lcd_w, &lcd_h); rot = gGetRotationDegree(); - if(rot == 90 || rot == 270) - { + if (rot == 90 || rot == 270) { int temp = lcd_w; lcd_w = lcd_h; lcd_h = temp; } +} - ivug_crop_view_box_size_set(pCropView, lcd_w, lcd_h); - - ivug_crop_view_box_ratio_fix(pCropView, true); - - pMainView->pCropView = pCropView; - - elm_naviframe_item_title_visible_set(pMainView->navi_it, EINA_FALSE); +static int +_on_addhome_result_cb(int ret, void *data) +{ + return 0; } -#endif + void _on_setas_selected(void *data, Evas_Object *obj, void *event_info) { @@ -438,10 +254,9 @@ void _on_setas_selected(void *data, Evas_Object *obj, void *event_info) Ivug_ListPopup_Item *item = (Ivug_ListPopup_Item *)event_info; - const char *label = (const char *)ivug_listpopup_item_get_data(item); + const char *label = ivug_listpopup_item_get_text(item); - if(label == NULL) - { + if (label == NULL) { MSG_MAIN_ERROR("label is NULL"); evas_object_del(pMainView->ctx_popup2); pMainView->ctx_popup2 = NULL; @@ -450,10 +265,9 @@ void _on_setas_selected(void *data, Evas_Object *obj, void *event_info) } MSG_MAIN_HIGH("text(%s) is clicked", label); - Media_Item *mitem = ivug_slider_get_item(pMainView->slider); + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); Media_Data *mdata = ivug_medialist_get_data(mitem); - if(mdata == NULL) - { + if (mdata == NULL) { MSG_MAIN_ERROR("sd is NULL"); evas_object_del(pMainView->ctx_popup2); pMainView->ctx_popup2 = NULL; @@ -461,21 +275,19 @@ void _on_setas_selected(void *data, Evas_Object *obj, void *event_info) return; } - if(strncmp(label, IDS_HOME_SCREEN, strlen(label)) == 0) - { - _create_setas_view(pMainView, mdata->filepath, IVUG_CTRLBAR_SET_SCREEN_HOME); - } - else if(strncmp(label, IDS_LOCK_SCREEN, strlen(label)) == 0) - { - _create_setas_view(pMainView, mdata->filepath, IVUG_CTRLBAR_SET_SCREEN_LOCK); - } - else if(strncmp(label, IDS_HOME_AND_LOCK_SCREENS, strlen(label)) == 0) - { - _create_setas_view(pMainView, mdata->filepath, IVUG_CTRLBAR_SET_SCREEN_BOTH); - } - else if(strncmp(label, IDS_CALLER_IMAGE, strlen(label)) == 0) - { + if (strncmp(label, IDS_CALLER_IMAGE, strlen(label)) == 0) { pMainView->ext_ug = ivug_ext_launch_contact(mdata->filepath, _on_ext_ug_destroy_cb, data); + } else if (strncmp(label, IDS_DYNAMIC_BOX, strlen(label)) == 0) { + char str[IVUG_MAX_FILE_PATH_LEN+SHORTCUT_PREFIX_LEN] = {0,}; + snprintf(str, IVUG_MAX_FILE_PATH_LEN+SHORTCUT_PREFIX_LEN, + SHORTCUT_PREFIX"%s", mdata->fileurl); + + shortcut_add_to_home(mdata->fileurl, + LAUNCH_BY_APP, + str, + mdata->thumbnail_path, + 1, //allow duplicate + _on_addhome_result_cb, NULL); } evas_object_del(pMainView->ctx_popup2); @@ -483,6 +295,35 @@ void _on_setas_selected(void *data, Evas_Object *obj, void *event_info) } +void _on_addtag_btn_selected(void *data, Evas_Object *obj, void *event_info) +{ + Ivug_MainView *pMainView = (Ivug_MainView *)data; + IV_ASSERT(pMainView != NULL); + int nIndex = (int)event_info; + + if (nIndex == 1) { + pMainView->pNameView = ivug_name_view_create(pMainView->layout, NAME_VIEW_MODE_SINGLE_LINE); + IV_ASSERT(pMainView->pNameView != NULL); + + ivug_name_view_set_title(pMainView->pNameView, IDS_CREATE_TAG); + ivug_name_view_set_max_length(pMainView->pNameView, MAX_BYTE_LEN); + ivug_name_view_set_guide_text(pMainView->pNameView, IDS_ENTER_TAG_NAME); + + ivug_name_view_set_response_callback(pMainView->pNameView, _on_add_tag_view_response, (void*)pMainView); + + Evas_Object *layout = ivug_name_view_object_get(pMainView->pNameView); + + pMainView->navi_it = elm_naviframe_item_push(pMainView->navi_bar, NULL, NULL, NULL, layout, NULL); + + elm_naviframe_item_title_enabled_set(pMainView->navi_it, EINA_FALSE, EINA_FALSE); + elm_object_item_signal_emit(pMainView->navi_it, "elm,state,toolbar,close", ""); + + ivug_name_view_set_focus(pMainView->pNameView); + } + + evas_object_del(obj); +} + void _on_addtag_selected(void *data, Evas_Object *obj, void *event_info) { IV_ASSERT(data != NULL); @@ -491,10 +332,9 @@ void _on_addtag_selected(void *data, Evas_Object *obj, void *event_info) Ivug_ListPopup_Item *item = (Ivug_ListPopup_Item *)event_info; - const char *label = (const char *)ivug_listpopup_item_get_data(item); + const char *label = ivug_listpopup_item_get_text(item); - if(label == NULL) - { + if (label == NULL) { MSG_MAIN_ERROR("label is NULL"); evas_object_del(pMainView->ctx_popup2); pMainView->ctx_popup2 = NULL; @@ -503,10 +343,10 @@ void _on_addtag_selected(void *data, Evas_Object *obj, void *event_info) } MSG_MAIN_HIGH("text(%s) is clicked", label); - Media_Item *mitem = ivug_slider_get_item(pMainView->slider); + + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); Media_Data *mdata = ivug_medialist_get_data(mitem); - if(mdata == NULL) - { + if (mdata == NULL) { MSG_MAIN_ERROR("sd is NULL"); evas_object_del(pMainView->ctx_popup2); pMainView->ctx_popup2 = NULL; @@ -514,11 +354,13 @@ void _on_addtag_selected(void *data, Evas_Object *obj, void *event_info) return; } - if(strncmp(label, IDS_CREATE_TAG, strlen(label)) == 0) - { - pMainView->pNameView = ivug_name_view_create(pMainView->layout, IDS_CREATE_TAG); + if (strncmp(label, IDS_CREATE_TAG, strlen(label)) == 0) { + pMainView->pNameView = ivug_name_view_create(pMainView->layout, NAME_VIEW_MODE_SINGLE_LINE); + IV_ASSERT(pMainView->pNameView != NULL); + ivug_name_view_set_title(pMainView->pNameView, IDS_CREATE_TAG); ivug_name_view_set_max_length(pMainView->pNameView, MAX_BYTE_LEN); + ivug_name_view_set_guide_text(pMainView->pNameView, IDS_TAG); ivug_name_view_set_response_callback(pMainView->pNameView, _on_add_tag_view_response, (void*)pMainView); @@ -526,34 +368,21 @@ void _on_addtag_selected(void *data, Evas_Object *obj, void *event_info) pMainView->navi_it = elm_naviframe_item_push(pMainView->navi_bar, NULL, NULL, NULL, layout, NULL); - Evas_Object *conformant = (Evas_Object *)ug_get_conformant(); - elm_object_signal_emit(conformant, "elm,state,indicator,nooverlap", ""); - - elm_naviframe_item_title_visible_set(pMainView->navi_it, EINA_FALSE); + elm_naviframe_item_title_enabled_set(pMainView->navi_it, EINA_FALSE, EINA_FALSE); elm_object_item_signal_emit(pMainView->navi_it, "elm,state,toolbar,close", ""); ivug_name_view_set_focus(pMainView->pNameView); - } - else if(strncmp(label, IDS_FAVOURITES, strlen(label)) == 0) - { - if ( ivug_mediadata_set_favorite(mdata, true) == false ) + } else if (strncmp(label, IDS_FAVOURITE, strlen(label)) == 0) { + if (ivug_mediadata_set_favorite(mdata, true) == false) { MSG_MAIN_ERROR("Error!. Set favorite for ID=%s", uuid_getchar(mdata->mediaID)); goto ADD_FAIL; } - _ivug_selectioninfo_create(pMainView, IDS_ADDED); ivug_main_view_set_hide_timer(pMainView); - } - else - { + } else { bool ret = ivug_mediadata_set_tag(mdata, (char *)label); - if(ret == true) - { - _ivug_selectioninfo_create(pMainView, IDS_ADDED); - } - else - { + if (ret == false) { goto ADD_FAIL; } ivug_main_view_set_hide_timer(pMainView); @@ -564,7 +393,6 @@ void _on_addtag_selected(void *data, Evas_Object *obj, void *event_info) return; ADD_FAIL: - _ivug_selectioninfo_create(pMainView, IDS_FAILED); evas_object_del(pMainView->ctx_popup2); pMainView->ctx_popup2 = NULL; @@ -574,1327 +402,1287 @@ ADD_FAIL: } - -#ifndef USE_DEFAULT_DOWNLOADS_FOLDER - -void _on_save_selected(void *data, Evas_Object *obj, void *event_info) +static bool _save_to_folder(Ivug_MainView *pMainView, const char *path, const char *folder) { - IV_ASSERT(data != NULL); - - Ivug_MainView *pMainView = (Ivug_MainView *)data; - ivug_listpopup_item *item = (ivug_listpopup_item *)event_info; + char dest_file[IVUG_MAX_FILE_PATH_LEN + 1] = {0,}; + const char *new_filename = ivug_file_get(path); + char *temp_filename = NULL; + char error_msg[256] = {0,}; + //int err = 0; - if ( item == NULL ) // No item is selected - { - evas_object_del(pMainView->popup); - pMainView->popup = NULL; - ivug_main_view_set_hide_timer(pMainView); - return; + if (new_filename == NULL) { + MSG_MAIN_ERROR("File does not exist filepath=%s", path); + ivug_notification_popup_create(pMainView->layout, "File download failed"); + return false; } - MSG_MAIN_HIGH("Selected folder name = %s", item->caption); - char *dir_path = (char *)item->data; // Should be freed - char dst_file[IVUG_MAX_FILE_PATH_LEN + 1] = {0,}; - const char *filename = NULL; - int ret = -1; - - Media_Item *mitem = ivug_slider_get_item(pMainView->slider); - Media_Data *mdata = ivug_medialist_get_data(mitem); - if ( mdata == NULL ) - { - MSG_MAIN_ERROR("Cannot get slide data."); - goto SAVE_FAIL; + if (ivug_is_dir_empty(folder) == -1) { + MSG_MAIN_WARN("Destination path doesn't exist. %s", folder); + if (mkdir(folder, DIR_MASK_DEFAULT) != 0) { + if (errno != EEXIST) + { + //err = strerror_r(errno, error_msg, sizeof(error_msg)); + MSG_MAIN_ERROR("Cannot make dir=%s error=%s", DIR_MASK_DEFAULT, strerror_r(errno, error_msg, sizeof(error_msg))); + // return false; // TODO: Need to test. + } + } } - filename = ecore_file_file_get(mdata->filepath); - if (filename == NULL) - { - MSG_MAIN_ERROR("File does not existfilepath=%s", mdata->filepath); - goto SAVE_FAIL; + snprintf(dest_file, IVUG_MAX_FILE_PATH_LEN, "%s/%s", folder, new_filename); + if (ivug_file_exists(dest_file)) { + ivug_notification_popup_create(pMainView->layout, "File already exists"); + temp_filename = ivug_generate_file_name(dest_file, NULL, NULL, false); + snprintf(dest_file, IVUG_MAX_FILE_PATH_LEN, "%s/%s", folder, ivug_file_get(temp_filename)); + free(temp_filename); + return false; + } else { + if (ivug_copy_file(path, dest_file) == false) { + ivug_notification_popup_create(pMainView->layout, "File download failed"); + return false; + } } - snprintf(dst_file, IVUG_MAX_FILE_PATH_LEN, "%s/%s", dir_path, filename); - - if(!ecore_file_cp(mdata->filepath, dst_file)) - { - MSG_MAIN_ERROR("ecore_file_cp failed. From %s To %s", mdata->filepath, dst_file); - goto SAVE_FAIL; + /* Add to album */ + media_handle m_handle = ivug_db_insert_file_to_DB(dest_file); + if (m_handle == NULL) { + ivug_notification_popup_create(pMainView->layout, "File download failed"); + MSG_MAIN_ERROR("Cannot insert to db %s", dest_file); + return false; } + ivug_db_destroy_file_handle(m_handle); + ivug_notification_popup_create(pMainView->layout, "File downloaded"); + return true; +} - free(dir_path); +static void _on_save_view_destroy(void *data, Evas_Object *obj, void *event_info) +{ + MSG_MAIN_HIGH("transition finished"); + Ivug_MainView *pMainView = (Ivug_MainView *)data; - ret = media_file_register(dst_file); - if(ret < 0) - { - MSG_MAIN_ERROR("Cannot add to album file %s. ret=%d", dst_file, ret); - _ivug_selectioninfo_create(pMainView, IDS_FAILED); - } - else - { - _ivug_selectioninfo_create(pMainView, IDS_SAVED); - } + ivug_name_view_destroy(pMainView->pNameView); + pMainView->pNameView = NULL; - evas_object_del(pMainView->popup); - pMainView->popup = NULL; + evas_object_smart_callback_del(pMainView->navi_bar, "transition,finished", + _on_save_view_destroy); +} - ivug_main_view_set_hide_timer(pMainView); +static void _on_save_view_response(Ivug_NameView *pView, ivug_name_response resp, const char *str, void *pClientData) +{ + Ivug_MainView *pMainView = (Ivug_MainView *)pClientData; + Media_Item *mitem = NULL; + Media_Data *mdata = NULL; - return; + char buf[IVUG_MAX_FILE_PATH_LEN]; -SAVE_FAIL: - if(dir_path) - free(dir_path); + switch(resp) + { + case NAME_VIEW_RESPONSE_OK: + mitem = ivug_medialist_get_current_item(pMainView->mList); + mdata = ivug_medialist_get_data(mitem); - _ivug_selectioninfo_create(pMainView, IDS_FAILED); + TODO("create new album") + snprintf(buf, (size_t)sizeof(buf), "%s/%s", DEFAULT_IMAGE_FOLDER, str); + _save_to_folder(pMainView, mdata->filepath, buf); - evas_object_del(pMainView->popup); - pMainView->popup = NULL; + evas_object_smart_callback_add(pMainView->navi_bar, "transition,finished", + _on_save_view_destroy, pMainView); - ivug_main_view_set_hide_timer(pMainView); + elm_naviframe_item_pop(pMainView->navi_bar); - return; -} + pMainView->navi_it = elm_naviframe_top_item_get(pMainView->navi_bar); -#endif + break; + case NAME_VIEW_RESPONSE_CANCEL: + MSG_MAIN_HIGH("Create album is canceled"); + evas_object_smart_callback_add(pMainView->navi_bar, "transition,finished", + _on_save_view_destroy, pMainView); -static void -_on_delete_selected(void *data, Evas_Object *obj, void *event_info) + elm_naviframe_item_pop(pMainView->navi_bar); + + pMainView->navi_it = elm_naviframe_top_item_get(pMainView->navi_bar); + + break; + default: + MSG_MAIN_ERROR("Unhandled mode : %d", resp); + break; + } + + ivug_main_view_set_hide_timer(pMainView); +} + +void _on_save_btn_selected(void *data, Evas_Object *obj, void *event_info) { Ivug_MainView *pMainView = (Ivug_MainView *)data; IV_ASSERT(pMainView != NULL); + int nIndex = (int)event_info; - int response_id = (int)event_info; - if(response_id == POPUP_RESPONSE_CANCEL) - { - MSG_MAIN_HIGH("cancel selected"); - ivug_main_view_set_hide_timer(pMainView); - return; - } + if (nIndex == 1) { + pMainView->pNameView = ivug_name_view_create(pMainView->layout, NAME_VIEW_MODE_SINGLE_LINE); + IV_ASSERT(pMainView->pNameView != NULL); - if(pMainView->pDetailsView) - { - MSG_MAIN_HIGH("Delete details view."); - //_change_close_to_details(pMainView); - _delete_details_view(pMainView); - } + ivug_name_view_set_title(pMainView->pNameView, IDS_CREATE_ALBUM); + ivug_name_view_set_max_length(pMainView->pNameView, MAX_BYTE_LEN); + ivug_name_view_set_guide_text(pMainView->pNameView, IDS_ENTER_NAME); + ivug_name_view_set_filter_text(pMainView->pNameView, INVALID_FILENAME_CHAR); - MSG_MAIN_HIGH("Removing current slide."); + ivug_name_view_set_response_callback(pMainView->pNameView, _on_save_view_response, (void*)pMainView); - ivug_main_view_set_hide_timer(pMainView); + Evas_Object *layout = ivug_name_view_object_get(pMainView->pNameView); + + pMainView->navi_it = elm_naviframe_item_push(pMainView->navi_bar, NULL, NULL, NULL, layout, NULL); + + elm_naviframe_item_title_enabled_set(pMainView->navi_it, EINA_FALSE, EINA_FALSE); + elm_object_item_signal_emit(pMainView->navi_it, "elm,state,toolbar,close", ""); - _ivug_selectioninfo_create(pMainView, IDS_DELETED); + ivug_name_view_set_focus(pMainView->pNameView); + } - ivug_slider_delete_item(pMainView->slider); // this routine fire "item.changed" + evas_object_del(obj); } -static void -_on_rename_selected(void *data, Evas_Object *obj, void *event_info) +void _on_save_selected(void *data, Evas_Object *obj, void *event_info) { - int response_id = (int)event_info; IV_ASSERT(data != NULL); Ivug_MainView *pMainView = (Ivug_MainView *)data; + Ivug_ListPopup_Item *item = (Ivug_ListPopup_Item *)event_info; - MSG_MAIN_HIGH("DRM popup selected : %d", response_id); + const char *label = ivug_listpopup_item_get_text(item); - if(response_id == POPUP_RESPONSE_CANCEL) - { - MSG_MAIN_HIGH("cancel selected"); + if (label == NULL) { + MSG_MAIN_ERROR("label is NULL"); + evas_object_del(pMainView->popup); + pMainView->popup = NULL; + ivug_main_view_set_hide_timer(pMainView); + return; } - else - { - MSG_MAIN_HIGH("unlock process"); - Media_Item *mitem = ivug_slider_get_item(pMainView->slider); - Media_Data *mdata = ivug_medialist_get_data(mitem); + MSG_MAIN_HIGH("Selected folder name = %s", label); - IV_ASSERT(mdata != NULL); + char dst_file[IVUG_MAX_FILE_PATH_LEN + 1] = {0,}; + char *dst_path = (char *)ivug_listpopup_item_get_data(item); + const char *filename = NULL; + media_handle m_handle = NULL; - const char *old_fullpath = mdata->filepath; - char *old_dir = ecore_file_dir_get(old_fullpath); - char *ext = ivug_fileinfo_get_file_extension(old_fullpath); + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); + Media_Data *mdata = ivug_medialist_get_data(mitem); + if (mdata == NULL) { + MSG_MAIN_ERROR("Cannot get slide data."); + goto SAVE_FAIL; + } - Evas_Object *popup = obj; - Evas_Object *layout = elm_object_content_get(popup); - Evas_Object *entry = elm_object_part_content_get(layout, "elm.swallow.content"); + if (strncmp(label, IDS_CREATE_ALBUM, strlen(label)) == 0) { + pMainView->pNameView = ivug_name_view_create(pMainView->layout, NAME_VIEW_MODE_SINGLE_LINE); + IV_ASSERT(pMainView->pNameView != NULL); - const char *new_name = elm_entry_entry_get(entry); - char new_fullpath[IVUG_MAX_FILE_PATH_LEN] = {0,}; - snprintf(new_fullpath, sizeof(new_fullpath),"%s/%s.%s", old_dir, new_name, ext); + ivug_name_view_set_title(pMainView->pNameView, IDS_CREATE_ALBUM); + ivug_name_view_set_max_length(pMainView->pNameView, MAX_BYTE_LEN); + ivug_name_view_set_guide_text(pMainView->pNameView, IDS_ENTER_NAME); + ivug_name_view_set_filter_text(pMainView->pNameView, INVALID_FILENAME_CHAR); - if(ivug_rename_file(old_fullpath, new_fullpath) == false) - { - MSG_MAIN_ERROR("ivug_rename_file failed"); - } - else - { - MSG_MAIN_HIGH("Rename %s -> %s", old_fullpath, new_fullpath); - free(mdata->filepath); - mdata->filepath = strdup(new_fullpath); - } - } - ivug_main_view_set_hide_timer(pMainView); -} + ivug_name_view_set_response_callback(pMainView->pNameView, _on_save_view_response, (void*)pMainView); + Evas_Object *layout = ivug_name_view_object_get(pMainView->pNameView); + pMainView->navi_it = elm_naviframe_item_push(pMainView->navi_bar, NULL, NULL, NULL, layout, NULL); + elm_naviframe_item_title_enabled_set(pMainView->navi_it, EINA_FALSE, EINA_FALSE); + elm_object_item_signal_emit(pMainView->navi_it, "elm,state,toolbar,close", ""); -//////////////////////////////////////////////////////////////////////////////////////////////////////////// -// -// Button handlers -// + ivug_name_view_set_focus(pMainView->pNameView); + return; + } -static void _dismissed_cb(void *data, Evas_Object *obj, void *event_info) -{ - Ivug_MainView *pMainView = (Ivug_MainView *)data; - //evas_object_del(obj); - ivug_main_view_set_hide_timer(pMainView); + filename = ivug_file_get(mdata->filepath); + if (filename == NULL) { + MSG_MAIN_ERROR("File does not existfilepath=%s", mdata->filepath); + goto SAVE_FAIL; + } - if(pMainView->popup) //for tag popup - { - MSG_MAIN_HIGH("Removing popup 1"); - evas_object_del(pMainView->popup); - pMainView->popup = NULL; + snprintf(dst_file, IVUG_MAX_FILE_PATH_LEN, "%s/%s", dst_path, filename); + + if (!ivug_file_cp(mdata->filepath, dst_file)) { + MSG_MAIN_ERROR("ivug_file_cp failed. From %s To %s", mdata->filepath, dst_file); + goto SAVE_FAIL; } - else - { - MSG_MAIN_HIGH("Removing popup 2"); - evas_object_del(obj); + + m_handle = ivug_db_insert_file_to_DB(dst_file); + if (m_handle == NULL) { + MSG_MAIN_ERROR("ivug_db_insert_file_to_DB failed %s", dst_file); + } else { + ivug_db_destroy_file_handle(m_handle); } + if (dst_path) + free(dst_path); - MSG_MAIN_HIGH("Popup dismissed"); -} + evas_object_del(pMainView->popup); + pMainView->popup = NULL; -#ifndef USE_DEFAULT_DOWNLOADS_FOLDER -static bool -_iter_album_list(media_handle media, void *user_data) -{ - ivug_listpopup_itemlist items = (ivug_listpopup_itemlist)user_data; + ivug_main_view_set_hide_timer(pMainView); - char *name = ivug_db_get_folder_name(media); - char *path = ivug_db_get_folder_path(media); + return; - if(strlen(name) == 0) - { - ivug_listpopup_itemlist_add(items, 0, NULL, IDS_NO_NAME, (void *)strdup(path), false); - } - else - { - ivug_listpopup_itemlist_add(items, 0, NULL, name, (void *)strdup(path), false); - } +SAVE_FAIL: + if (dst_path) + free(dst_path); - if(name) - free(name); - if(path) - free(path); + evas_object_del(pMainView->popup); + pMainView->popup = NULL; - return 0; -} -#endif + ivug_main_view_set_hide_timer(pMainView); + return; +} -static bool -_iter_tag_list(media_handle media, void *user_data) +static bool _idler_delete_end(void *data) { - Ivug_MainView *pMainView = (Ivug_MainView *)user_data; - - char *name = ivug_db_get_tag_name((tag_handle)media); + Ivug_MainView *pMainView = (Ivug_MainView *)data; - if(pMainView->ctx_popup2) - { - ivug_listpopup_item_append(pMainView->ctx_popup2, NULL, name, name); - } - else if(pMainView->popup) - { - ivug_listpopup_item_append(pMainView->popup, NULL, name, name); + bool ug_end = false; + ivug_medialist_set_current_item(pMainView->mList, pMainView->cur_mitem); + if (pMainView->cur_mitem) { + Image_Object *img = ivug_thumblist_find_item_by_data(pMainView->thumbs, pMainView->cur_mitem); + if (img) { + ivug_thumblist_set_edit_mode(pMainView->thumbs, EINA_FALSE); + ivug_thumblist_select_item(pMainView->thumbs, img); + } else { + TODO("select current") + } + } else { + ug_end = true; } - MSG_IVUG_HIGH("tag name =%s", name); + ivug_slider_new_update_list(pMainView->pSliderNew, pMainView->mList); + ivug_slider_call_changed_callback(pMainView->pSliderNew, pMainView->cur_mitem); + pMainView->cur_mitem = NULL; - return 0; + return ug_end; } - -void on_btn_back_clicked(void *data, Evas_Object *obj, void *event_info) +static void +_progress_delete_end_cb(void *data, Evas_Object *obj, void *event_info) { -// Back from main view + MSG_MAIN_HIGH("_progress_delete_end_cb"); + Ivug_MainView *pMainView = (Ivug_MainView *)data; - IV_ASSERT(pMainView != NULL); - MSG_MAIN_WARN("Back key from main view pressed"); + evas_object_del(pMainView->progress_popup); - if ( pMainView->pDetailsView ) - { - MSG_MAIN_HIGH("Details View Destroy"); + pMainView->progress_popup = NULL; - ivug_details_view_destroy(pMainView->pDetailsView); - pMainView->pDetailsView = NULL; - return; + if (pMainView->delete_idler) { + ecore_idler_del(pMainView->delete_idler); + pMainView->delete_idler = NULL; + _idler_delete_end(data); } +} -// otherwise, from gallery, ug will be terminated - evas_object_smart_callback_del(obj, "clicked", on_btn_back_clicked); +static bool _delete_mitem(Ivug_MainView *pMainView, Media_Item *mitem) +{ + Media_Data *mdata = ivug_medialist_get_data(mitem); -#ifndef FIX_LAST_BLINK - ivug_main_view_del_hide_timer(pMainView); + IV_ASSERT(mdata != NULL); -// Slider should be removed before mList is freed. - if ( pMainView->slider ) - { - evas_object_del(pMainView->slider); - pMainView->slider = NULL; - } + MSG_MAIN_HIGH("Delete button is selected. Removing mdata=0x%08x", mdata); - if ( pMainView->pNameView ) - { - MSG_MAIN_HIGH("Name View Destroy"); - ivug_name_view_destroy(pMainView->pNameView); - pMainView->pNameView = NULL; - } + ivug_medialist_delete_item(pMainView->mList, mitem, true); //delete data. - if ( pMainView->pSetAsView ) - { - MSG_MAIN_HIGH("SetAS View Destroy"); - ivug_setas_view_destroy(pMainView->pSetAsView); - pMainView->pSetAsView = NULL; - } + return true; +} - if ( pMainView->pDetailsView ) - { - MSG_MAIN_HIGH("Details View Destroy"); +static Eina_Bool +_idler_delete(void *data) +{ + Ivug_MainView *pMainView = (Ivug_MainView *)data; + if (pMainView->delete_list == NULL) { + /* delete end */ + bool ug_end = _idler_delete_end(data); + + evas_object_del(pMainView->progress_popup); + pMainView->progress_popup = NULL; + pMainView->delete_idler = NULL; + + if (ug_end == true) { + MSG_MAIN_ERROR("No item is remained. exit UG"); + + int ret = 0; + app_control_h service = NULL; + ret = app_control_create(&service); + if (ret != APP_CONTROL_ERROR_NONE) { + MSG_MAIN_HIGH("app_control_create failed"); + } - ivug_details_view_destroy(pMainView->pDetailsView); - pMainView->pDetailsView = NULL; - } + ret = app_control_add_extra_data(service, "delete file", "true"); + if (ret != APP_CONTROL_ERROR_NONE) { + MSG_MAIN_HIGH("app_control_add_extra_data failed"); + } + ug_send_result(gGetUGHandle(), service); + app_control_destroy(service); -#if 1 - if(pMainView->layout) // Remove topmost parent in main view. - { - evas_object_del(pMainView->layout); - pMainView->layout = NULL; + _on_remove_main_view_ui(pMainView); + + DESTROY_ME(); + } + return ECORE_CALLBACK_DONE; } - if(pMainView->empty_layout) - { - evas_object_del(pMainView->empty_layout); - pMainView->empty_layout = NULL; + Image_Object *img = eina_list_data_get(pMainView->delete_list); + Media_Item *mitem = (Media_Item *)ivug_thumblist_get_item_data(pMainView->thumbs, img); + if (pMainView->cur_mitem == mitem) { + pMainView->cur_mitem = ivug_medialist_get_next(pMainView->mList, mitem); + if (pMainView->cur_mitem == NULL) { + pMainView->cur_mitem = ivug_medialist_get_prev(pMainView->mList, mitem); + } } -#else + ivug_thumblist_delete_item(pMainView->thumbs, img); + _delete_mitem(pMainView, mitem); -#endif + pMainView->delete_list = eina_list_remove_list(pMainView->delete_list, pMainView->delete_list); - if ( pMainView->mList ) - { - MSG_MAIN_HIGH("Remove media list"); - ivug_medialist_del(pMainView->mList); // ivug_medialist_del() is not working on destroy cb. - pMainView->mList = NULL; - } + Evas_Object *progressbar = (Evas_Object *)evas_object_data_get(pMainView->progress_popup, "pbar"); + int delete_cnt = pMainView->delete_total - eina_list_count(pMainView->delete_list); + double progressbar_value = (double)(delete_cnt) / pMainView->delete_total; + elm_progressbar_value_set(progressbar, progressbar_value); -#endif + int ratio = (int)(progressbar_value * 100); + char buf[256] = {0,}; + snprintf(buf, 256, " %d %%", ratio); + elm_object_text_set(progressbar, buf); -#if 0 - /* comment below, because t show main view and this back btn, - *firstly slide show view is mouse up, then ivug_ss_delete() will be invoked in taht mouse up cb - */ - /* free slideshow */ - if ( pMainView->ssHandle ) - { - ivug_ss_delete(pMainView->ssHandle); - } -#endif - DESTROY_ME(); + usleep(50000); + + return ECORE_CALLBACK_RENEW; } -void on_btn_setas_clicked(void *data, Evas_Object *obj, void *event_info) +static void +_on_delete_selected(void *data, Evas_Object *obj, void *event_info) { Ivug_MainView *pMainView = (Ivug_MainView *)data; IV_ASSERT(pMainView != NULL); - Media_Item *mitem = ivug_slider_get_item(pMainView->slider); - Media_Data *mdata = ivug_medialist_get_data(mitem); + bool ret = false; - IV_ASSERT(mdata != NULL); + evas_object_del(pMainView->popup); + pMainView->popup = NULL; - if ( mdata->filepath == NULL) - { - MSG_MAIN_ERROR("File path is NULL"); + int response_id = (int)event_info; + if (response_id == POPUP_RESPONSE_CANCEL) { + MSG_MAIN_HIGH("cancel selected"); + ivug_main_view_set_hide_timer(pMainView); return; } - //ivug_main_view_del_hide_timer(pMainView); + ivug_main_view_set_hide_timer(pMainView); - Evas_Object* popup = NULL; - popup = ivug_listpopup_add(pMainView->area_obj); + MSG_MAIN_HIGH("Delete button is selected"); - pMainView->ctx_popup2 = popup; + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); - evas_object_smart_callback_add(popup, "popup,dismissed", _dismissed_cb, pMainView); - evas_object_smart_callback_add(popup, "popup,selected", _on_setas_selected, pMainView); + /* First, remove thumbnail and delete item */ - if (mdata->bIsDRMContent) +#ifdef USE_THUMBLIST + if (pMainView->thumbs) { - Ivug_ListPopup_Item *it = NULL; - - bool bDisableWallpaper = !ivug_drm_is_possible_to_setas(mdata->filepath, IVUG_DRM_SETAS_WALLPAPER); - bool bDisableCallerImage = !ivug_drm_is_possible_to_setas(mdata->filepath, IVUG_DRM_SETAS_CALLERID); - - it = ivug_listpopup_item_append(popup, NULL, IDS_HOME_SCREEN, IDS_HOME_SCREEN); - - if(bDisableWallpaper == true) - { - ivug_listpopup_item_disabled_set(it); - } - - it = ivug_listpopup_item_append(popup, NULL, IDS_LOCK_SCREEN, IDS_LOCK_SCREEN); - - if(bDisableWallpaper == true) - { - ivug_listpopup_item_disabled_set(it); - } - - it = ivug_listpopup_item_append(popup, NULL, IDS_HOME_AND_LOCK_SCREENS, IDS_HOME_AND_LOCK_SCREENS); - if(bDisableWallpaper == true) + Image_Object *deleted = ivug_thumblist_get_selected_item(pMainView->thumbs); + pMainView->delete_list = ivug_thumblist_get_items_checked(pMainView->thumbs); + if (pMainView->delete_list) /* remove selected list item */ { - ivug_listpopup_item_disabled_set(it); + pMainView->cur_mitem = ivug_medialist_get_current_item(pMainView->mList); + pMainView->delete_total = eina_list_count(pMainView->delete_list); + pMainView->progress_popup = ivug_progress_popup_show(pMainView->layout, (char *)IDS_DELETE, _progress_delete_end_cb, pMainView); + pMainView->delete_idler = ecore_idler_add(_idler_delete, pMainView); + return; } - - it = ivug_listpopup_item_append(popup, NULL, IDS_CALLER_IMAGE, IDS_CALLER_IMAGE); - if(bDisableCallerImage == true) + else if (deleted) /* remove current thumbnail item */ { - ivug_listpopup_item_disabled_set(it); + ivug_thumblist_delete_item(pMainView->thumbs, deleted); } } - else - { - ivug_listpopup_item_append(popup, NULL, IDS_HOME_SCREEN, IDS_HOME_SCREEN); - ivug_listpopup_item_append(popup, NULL, IDS_LOCK_SCREEN, IDS_LOCK_SCREEN); - ivug_listpopup_item_append(popup, NULL, IDS_HOME_AND_LOCK_SCREENS, IDS_HOME_AND_LOCK_SCREENS); - ivug_listpopup_item_append(popup, NULL, IDS_CALLER_IMAGE, IDS_CALLER_IMAGE); +#endif + /* remove current item only */ + ret = _delete_mitem(pMainView, mitem); + if (ret == false) + { + return; } - Evas_Coord x, y; - Evas_Coord w, h; + /* Current Item */ + mitem = ivug_medialist_get_current_item(pMainView->mList); - Ivug_ListPopup_Item *item = (Ivug_ListPopup_Item *)event_info; - Elm_Object_Item *eoi = ivug_listpopup_item_get_item(item); - Evas_Object *button = elm_object_item_widget_get(eoi); - evas_object_geometry_get(button, &x, &y, &w, &h); + if (mitem == NULL) { + MSG_MAIN_HIGH("Current item is NULL"); + ivug_main_view_destroy(pMainView); + elm_exit(); + return; + } - MSG_MAIN_MED("x = %d, y = %d, w = %d, h = %d", x, y, w, h); + /* ivug_slider_new_delete_cur_image(pMainView->pSliderNew); */ + ivug_main_view_start(pMainView, NULL); +} - ivug_listpopup_context_show(popup, pMainView->area_obj, x+w/2, y+h/2); - IVUG_FUNC_LEAVE(); - return; -} +//////////////////////////////////////////////////////////////////////////////////////////////////////////// +// +// Button handlers +// -static void _on_name_view_destroy(void *data, Evas_Object *obj, void *event_info) +static void _dismissed_cb(void *data, Evas_Object *obj, void *event_info) { - MSG_MAIN_HIGH("transition finished"); Ivug_MainView *pMainView = (Ivug_MainView *)data; + //evas_object_del(obj); + ivug_main_view_set_hide_timer(pMainView); - ivug_name_view_destroy(pMainView->pNameView); - pMainView->pNameView = NULL; // Will removed in add tag view. + edje_object_signal_emit(_EDJ(pMainView->lyContent), "elm,state,enable,toolbtn", "user"); + + if (pMainView->ctx_popup) + { + MSG_MAIN_HIGH("Removing CtxPopup(0x%08x)", pMainView->ctx_popup); + evas_object_del(pMainView->ctx_popup); + pMainView->ctx_popup = NULL; + } else if (pMainView->ctx_popup2) { + MSG_MAIN_HIGH("Removing CtxPopup2(0x%08x)", pMainView->ctx_popup2); + evas_object_del(pMainView->ctx_popup2); + pMainView->ctx_popup2 = NULL; + } else if (pMainView->popup) { + MSG_MAIN_HIGH("Removing Popup(0x%08x)", pMainView->popup); + evas_object_del(pMainView->popup); + pMainView->popup = NULL; + } else { + MSG_MAIN_HIGH("Removing Popup Object(0x%08x)", obj); + evas_object_del(obj); + } - evas_object_smart_callback_del(pMainView->navi_bar, "transition,finished", - _on_name_view_destroy); } -static bool _rename(Media_Data *mdata, const char *str) +void _on_remove_main_view_ui(Ivug_MainView *pMainView) { - IV_ASSERT(mdata!=NULL); + IV_ASSERT(pMainView != NULL); - if(mdata->filepath == NULL || mdata->thumbnail_path == NULL) - { - MSG_MAIN_ERROR("filepath is NULL"); - return false; + ivug_main_view_del_hide_timer(pMainView); + + if (pMainView->tagbuddy_idler) { + ecore_timer_del(pMainView->tagbuddy_idler); + pMainView->tagbuddy_idler = NULL; } - const char *old_fullpath = mdata->filepath; - char *old_dir = ecore_file_dir_get(old_fullpath); - char *ext = ivug_fileinfo_get_file_extension(old_fullpath); - - char new_fullpath[IVUG_MAX_FILE_PATH_LEN] = {0,}; - if(ext) - { - snprintf(new_fullpath, sizeof(new_fullpath),"%s/%s.%s", old_dir, str, ext); - } - else - { - snprintf(new_fullpath, sizeof(new_fullpath),"%s/%s", old_dir, str); + if (pMainView->transcoding_thread) { + ecore_thread_cancel(pMainView->transcoding_thread); + pMainView->transcoding_thread = NULL; } - bool ret = ivug_rename_file(old_fullpath, new_fullpath); - if(ret == false) - { - MSG_MAIN_ERROR("ivug_rename_file to %s failed", new_fullpath); - return false; +#ifdef USE_THUMBLIST + if (pMainView->thumbs) { + evas_object_del(pMainView->thumbs); + pMainView->thumbs = NULL; } +#endif - if(ivug_db_rename(mdata->m_handle, new_fullpath) == false) - { - MSG_MAIN_ERROR("ivug_db_rename to %s failed", new_fullpath); - return false; + if (pMainView->pNameView) { + MSG_MAIN_HIGH("Name View Destroy"); + ivug_name_view_destroy(pMainView->pNameView); + pMainView->pNameView = NULL; } - ivug_db_destroy_file_handle(mdata->m_handle); - mdata->m_handle = ivug_db_get_file_handle_from_media_id(mdata->mediaID); + if (pMainView->pSliderNew) { + MSG_MAIN_HIGH("slider new View Destroy"); - MSG_DETAIL_HIGH("Rename %s -> %s", old_fullpath, new_fullpath); - free(mdata->filepath); - mdata->filepath = strdup(new_fullpath); + ivug_slider_new_destroy(pMainView->pSliderNew); + pMainView->pSliderNew = NULL; + } - free(mdata->thumbnail_path); - mdata->thumbnail_path = ivug_db_get_thumbnail_path(mdata->m_handle); + if (pMainView->lyContent) { + evas_object_del(pMainView->lyContent); + pMainView->lyContent = NULL; + } - return true; + if (pMainView->mList) { + MSG_MAIN_HIGH("Remove media list. mList=0x%08x", pMainView->mList); + ivug_medialist_del(pMainView->mList); + // ivug_medialist_del() is not working on destroy cb. + pMainView->mList = NULL; + } } -static void _on_rename_view_response(ivug_name_response resp, const char *str, void *pClientData) +void on_btn_copy_clicked(void *data, Evas_Object *obj, void *event_info) { - Ivug_MainView *pMainView = (Ivug_MainView *)pClientData; - - if(resp != NAME_VIEW_RESPONSE_OK) - { - MSG_MAIN_ERROR("rename is canceled"); - - evas_object_smart_callback_add(pMainView->navi_bar, "transition,finished", - _on_name_view_destroy, pMainView); + Ivug_MainView *pMainView = (Ivug_MainView *)data; + IV_ASSERT(pMainView != NULL); - elm_naviframe_item_pop(pMainView->navi_bar); + // Destroy copy popup + pMainView->longpress_popup = NULL; + // object is removed automatically - pMainView->navi_it = elm_naviframe_top_item_get(pMainView->navi_bar); + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); + Media_Data *mdata = ivug_medialist_get_data(mitem); - Evas_Object *conformant = (Evas_Object *)ug_get_conformant(); - elm_object_signal_emit(conformant, "elm,state,indicator,overlap", ""); + if (mdata == NULL) { + MSG_MAIN_ERROR("slider data is NULL"); return; } - Ivug_DetailsView *pDetailsView = pMainView->pDetailsView; + int len = 0; + // This Will add to the article + char buf[IVUG_MAX_FILE_PATH_LEN] = {0,}; + len = strlen(mdata->filepath)+strlen("file://")+1; + snprintf(buf, IVUG_MAX_FILE_PATH_LEN, "file://%s", mdata->filepath); - Media_Item *mitem = ivug_slider_get_item(pMainView->slider); - Media_Data *mData = ivug_medialist_get_data(mitem); - if(_rename(mData, str) == false) - { - MSG_MAIN_ERROR("_rename to %s failed", str); - //ivug_notify_timeout_create(pMainView->layout, IDS_FAILED, 0.0, NULL, NULL); //it does not work - ivug_selectioninfo_create(pMainView->layout, IDS_FAILED); - } - else - { - if(*(pDetailsView->filename) == NULL - || *(pDetailsView->path) == NULL) - { - MSG_MAIN_ERROR("Detail view data is NULL"); - return; - } - - ivug_details_view_update(pDetailsView, mData->filepath); + if (len < IVUG_MAX_FILE_PATH_LEN) { + Eina_Bool bRet; - //update main view - if(pMainView->view_by == IVUG_VIEW_BY_FILE) - { - const char *title = ecore_file_file_get(mData->filepath); - elm_object_item_part_text_set(pMainView->navi_it, "elm.text.title", title); + if (ivug_is_web_uri(buf) == false) { + MSG_MAIN_HIGH("CNP As Image : Buf=\"%s\" len=%d", buf, strlen(buf)); + bRet = elm_cnp_selection_set(pMainView->layout, ELM_SEL_TYPE_CLIPBOARD, ELM_SEL_FORMAT_IMAGE, buf, strlen(buf)); + } else { + MSG_MAIN_HIGH("CNP As Text : Buf=\"%s\" len=%d", buf, strlen(buf)); + bRet = elm_cnp_selection_set(pMainView->layout, ELM_SEL_TYPE_CLIPBOARD, ELM_SEL_FORMAT_TEXT, buf, strlen(buf)); } - ivug_slider_set_item(pMainView->slider, mitem, SLIDE_INSTANTLY); + if (bRet == EINA_FALSE) { + MSG_MAIN_ERROR("CNP Selection is failed"); + } else { + MSG_MAIN_HIGH("CNP Selection is Success"); + } + } else { + MSG_MAIN_ERROR("slider file path is too long. len=%d", len); + // No need failed???? } - - evas_object_smart_callback_add(pMainView->navi_bar, "transition,finished", - _on_name_view_destroy, pMainView); - - elm_naviframe_item_pop(pMainView->navi_bar); - - pMainView->navi_it = elm_naviframe_top_item_get(pMainView->navi_bar); - - Evas_Object *conformant = (Evas_Object *)ug_get_conformant(); - elm_object_signal_emit(conformant, "elm,state,indicator,overlap", ""); } - -static void -_ivug_detail_view_rename_clicked_cb(void *data, Evas_Object *obj, void *event_info) +static void _on_name_view_destroy(void *data, Evas_Object *obj, void *event_info) { - MSG_MAIN_HIGH("ENTER : Btn rename clicked. obj=0x%08x data=0x%08x", obj, data); - ivug_ret_if(!obj||!data); - + MSG_MAIN_HIGH("transition finished"); Ivug_MainView *pMainView = (Ivug_MainView *)data; - Media_Item *mitem = ivug_slider_get_item(pMainView->slider); - Media_Data *mdata = ivug_medialist_get_data(mitem); - - pMainView->pNameView = ivug_name_view_create(pMainView->layout, IDS_CHANGE_NAME); - - char *name = ecore_file_strip_ext(ecore_file_file_get(mdata->filepath)); - - ivug_name_view_set_entry(pMainView->pNameView, name); + ivug_name_view_destroy(pMainView->pNameView); + pMainView->pNameView = NULL;// Will removed in add tag view. - // file name have to be smaller then MAX_BYTE_LEN include extension + '.' - int limit_len = MAX_BYTE_LEN; + evas_object_smart_callback_del(pMainView->navi_bar, "transition,finished", + _on_name_view_destroy); +} +static bool _is_exist(Media_Data *mdata, const char *file) +{ + IV_ASSERT(mdata!=NULL); + char *old_dir = ivug_get_directory(mdata->filepath); char *ext = ivug_fileinfo_get_file_extension(mdata->filepath); - if(ext) - { - limit_len -= (strlen(ext) + 1); // 1 is '.' - } - - ivug_name_view_set_max_length(pMainView->pNameView, limit_len); - - ivug_name_view_set_response_callback(pMainView->pNameView, _on_rename_view_response, (void*)pMainView); - - if(ext) - { + char new_fullpath[IVUG_MAX_FILE_PATH_LEN] = {0,}; + struct stat info = {0,}; + if (ext) { + snprintf(new_fullpath, sizeof(new_fullpath),"%s/%s.%s", old_dir, file, ext); free(ext); + } else { + snprintf(new_fullpath, sizeof(new_fullpath),"%s/%s", old_dir, file); } - free(name); - - Evas_Object *layout = ivug_name_view_object_get(pMainView->pNameView); - - pMainView->navi_it = elm_naviframe_item_push(pMainView->navi_bar, NULL, NULL, NULL, layout, NULL); - - Evas_Object *conformant = (Evas_Object *)ug_get_conformant(); - elm_object_signal_emit(conformant, "elm,state,indicator,nooverlap", ""); - - elm_naviframe_item_title_visible_set(pMainView->navi_it, EINA_FALSE); - elm_object_item_signal_emit(pMainView->navi_it, "elm,state,toolbar,close", ""); + //Check if File Exists + if (stat(new_fullpath, &info) == 0) { + MSG_UTIL_WARN("Destination file is exist : %s", new_fullpath); + if (old_dir) { + free(old_dir); + old_dir = NULL; + } + return true; + } - ivug_name_view_set_focus(pMainView->pNameView); + return false; } - -void on_btn_details_clicked(void *data, Evas_Object *obj, void *event_info) +static bool _rename(Media_Data *mdata, const char *str) { - MSG_MAIN_HIGH("ENTER : Btn detail view clicked. obj=0x%08x data=0x%08x", obj, data); - ivug_ret_if(!obj||!data); - - Ivug_MainView *pMainView = (Ivug_MainView *)data; + IV_ASSERT(mdata!=NULL); - if(pMainView->pDetailsView) - { - MSG_MAIN_ERROR("details view already created"); - return; - } - if(pMainView->bShowMenu == false) - { - MSG_MAIN_ERROR("details view is hiding now"); - return; + if (mdata->filepath == NULL || mdata->thumbnail_path == NULL) { + MSG_MAIN_ERROR("filepath is NULL"); + return false; } - ivug_main_view_del_hide_timer(pMainView); - - Media_Item *mitem = ivug_slider_get_item(pMainView->slider); - Media_Data *mdata = ivug_medialist_get_data(mitem); - IV_ASSERT(mdata != NULL); + const char *old_fullpath = mdata->filepath; + char *old_dir = ivug_get_directory(old_fullpath); + char *ext = ivug_fileinfo_get_file_extension(old_fullpath); - pMainView->pDetailsView = ivug_details_view_screen_create(pMainView->navi_bar, mitem, pMainView->view_by); + char new_fullpath[IVUG_MAX_FILE_PATH_LEN] = {0,}; + if (ext) { + snprintf(new_fullpath, sizeof(new_fullpath),"%s/%s.%s", old_dir, str, ext); + free(ext); + } else { + snprintf(new_fullpath, sizeof(new_fullpath),"%s/%s", old_dir, str); + } + if (old_dir) { + free(old_dir); + } + if (old_fullpath) { + if (!strcmp(old_fullpath,new_fullpath)) { + MSG_MAIN_HIGH("duplicate name, no need to rename!"); + return true; + } + } + if (ivug_rename_file(old_fullpath, new_fullpath) == false) { + MSG_MAIN_ERROR("ivug_rename_file to %s failed", new_fullpath); + return false; + } - if(!pMainView->pDetailsView) - { - MSG_MAIN_ERROR("create details view failed"); - ivug_main_view_set_hide_timer(pMainView); - return; + if (ivug_db_rename(mdata->m_handle, new_fullpath) == false) { + MSG_MAIN_ERROR("ivug_db_rename to %s failed", new_fullpath); + return false; } - Evas_Object *detail_layout = ivug_details_view_object_get(pMainView->pDetailsView); + ivug_db_destroy_file_handle(mdata->m_handle); - elm_object_item_part_content_set(pMainView->navi_it, "elm.swallow.detail", detail_layout); +/* + ivug_db_rename() Ä¿ Media UUID ʴ´. +*/ + mdata->m_handle = ivug_db_get_file_handle_from_media_id(mdata->mediaID); - evas_object_smart_callback_add(detail_layout, "rename,clicked", _ivug_detail_view_rename_clicked_cb, pMainView); + MSG_MAIN_SEC("Rename %s -> %s", old_fullpath, new_fullpath); - //_change_details_to_close(pMainView); + free(mdata->filepath); + mdata->filepath = strdup(new_fullpath); - MSG_MAIN_HIGH("LEAVE : Btn detail view clicked. obj=0x%08x data=0x%08x", obj, data); -} + free(mdata->fileurl); + mdata->fileurl = strdup(new_fullpath); + free(mdata->thumbnail_path); + mdata->thumbnail_path = ivug_db_get_thumbnail_path(mdata->m_handle); + return true; +} -void on_btn_delete_clicked(void *data, Evas_Object *obj, void *event_info) +void +_set_thumblist_mode(Ivug_MainView *pMainView, Media_Data *mdata, Image_Object *image_obj) { - Ivug_MainView *pMainView = (Ivug_MainView *)data; - IV_ASSERT(pMainView != NULL); - - ivug_main_view_del_hide_timer(pMainView); - - ivug_deletepopup_show(pMainView->layout, NULL, IDS_DELETE_MSG, _on_delete_selected, pMainView); - - return; + if (mdata->iType == MIMAGE_TYPE_BESTSHOT) { + ivug_thumblist_set_item_mode(pMainView->thumbs, image_obj, THUMBLIST_BESTPIC); + } else if (mdata->iType == MIMAGE_TYPE_SOUNDSCENE) { + ivug_thumblist_set_item_mode(pMainView->thumbs, image_obj, THUMBLIST_SOUNDPIC); + } else if (mdata->iType == MIMAGE_TYPE_PANORAMA) { + ivug_thumblist_set_item_mode(pMainView->thumbs, image_obj, THUMBLIST_PANORAMA); + } else { + MSG_IMAGEVIEW_MED("Thumblist is not updated. Unhandled iType=%d", mdata->iType); + } } -bool _share_pkg_cb(service_h service, const char *package, void *user_data) +void +ivug_notification_create(const char* text) { - Evas_Object* popup = (Evas_Object*)user_data; - - char *name = NULL; - - app_manager_get_app_name(package, &name); + MSG_IMAGEVIEW_HIGH("ivug_notification_create. Text=%s", GET_STR(text)); - ivug_listpopup_item_append(popup, NULL, name, (void *)strdup(package)); - - free(name); - - return true; + int ret = notification_status_message_post(GET_STR(text)); + if (ret != NOTIFICATION_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("notification_status_message_post() ERROR [0x%x]", ret); + } } -#ifdef USE_DEFAULT_APP_SERVICE -void on_btn_share_clicked(void *data, Evas_Object *obj, void *event_info) +static void +_on_button_rename_view_response(Ivug_NameView *pView, ivug_name_response resp, const char *str, void *pClientData) { - Ivug_MainView *pMainView = (Ivug_MainView *)data; - IV_ASSERT(pMainView != NULL); + Ivug_MainView *pMainView = (Ivug_MainView *)pClientData; - Media_Item *mitem = ivug_slider_get_item(pMainView->slider); - Media_Data *mdata = ivug_medialist_get_data(mitem); - IV_ASSERT(mdata != NULL); + if (resp != NAME_VIEW_RESPONSE_OK) { + MSG_MAIN_ERROR("rename is canceled"); + + ivug_name_view_destroy(pMainView->pNameView); + pMainView->pNameView = NULL; // Will removed in add tag view. - if ( mdata->filepath == NULL) - { - MSG_MAIN_ERROR("File path is NULL"); return; } - ivug_main_view_del_hide_timer(pMainView); + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); + Media_Data *mData = ivug_medialist_get_data(mitem); - Evas_Object* popup = NULL; - popup = ivug_listpopup_add(pMainView->area_obj); + if (_is_exist(mData, str)) { + MSG_MAIN_ERROR("%s already exist", str); + //ivug_notification_create(IDS_RENAME_FILE_EXIST); - pMainView->ctx_popup = popup; + /*toast popup: file name is already in use*/ - evas_object_smart_callback_add(popup, "popup,dismissed", _dismissed_cb, pMainView); - evas_object_smart_callback_add(popup, "popup,selected", _on_share_selected, pMainView); + ivug_notification_create(IDS_RENAME_FILE_EXIST); - service_h service; - service_create(&service); - service_set_operation(service, SERVICE_OPERATION_SEND); - service_set_uri(service, mdata->filepath); - service_foreach_app_matched(service, _share_pkg_cb, (void *)popup); + ivug_name_view_show_imf(pMainView->pNameView); - ivug_listpopup_button_set(popup, IDS_CLOSE); - ivug_listpopup_popup_show(popup); -} -#else -void on_btn_share_clicked(void *data, Evas_Object *obj, void *event_info) -{ - Ivug_MainView *pMainView = (Ivug_MainView *)data; - IV_ASSERT(pMainView != NULL); + /* + Evas_Object *popup = ivug_toast_popup_show(pMainView->layout, IDS_FILE_NAME_IN_USE, _on_rename_ctrl_timeout_cb, pMainView); - Media_Item *mitem = ivug_slider_get_item(pMainView->slider); - Media_Data *mdata = ivug_medialist_get_data(mitem); - IV_ASSERT(mdata != NULL); + if (!popup) { + MSG_MAIN_ERROR("toast popup was created failed"); + } + */ - if ( mdata->filepath == NULL) - { - MSG_MAIN_ERROR("File path is NULL"); return; - } - - ivug_main_view_del_hide_timer(pMainView); - - Evas_Object* popup = NULL; - popup = ivug_listpopup_add(pMainView->area_obj); - - pMainView->ctx_popup = popup; - - evas_object_smart_callback_add(popup, "popup,dismissed", _dismissed_cb, pMainView); - evas_object_smart_callback_add(popup, "popup,selected", _on_share_selected, pMainView); - - ivug_listpopup_item_append(popup, NULL, IDS_MESSAGE, IDS_MESSAGE); - ivug_listpopup_item_append(popup, NULL, IDS_EMAIL, IDS_EMAIL); - - switch(mdata->slide_type) - { - case SLIDE_TYPE_IMAGE: - ivug_listpopup_item_append(popup, NULL, IDS_WIFI_DIRECT, IDS_WIFI_DIRECT); - ivug_listpopup_item_append(popup, NULL, IDS_BLUETOOTH, IDS_BLUETOOTH); - - if(mdata->bIsDRMContent == EINA_TRUE) - { - break; + } else { + if (_rename(mData, str) == false) { + MSG_MAIN_ERROR("_rename to %s failed", str); + ivug_notification_create(IDS_FAILED); + } else { + //update main view + if (pMainView->view_by == IVUG_VIEW_BY_FILE) { + // Update title + const char *title = ecore_file_file_get(mData->filepath); + elm_object_item_part_text_set(pMainView->navi_it, "elm.text.title", title); } - ivug_listpopup_item_append(popup, NULL, IDS_FACEBOOK, IDS_FACEBOOK); - ivug_listpopup_item_append(popup, NULL, IDS_PICASA, IDS_PICASA); - - break; - case SLIDE_TYPE_VIDEO: - ivug_listpopup_item_append(popup, NULL, IDS_WIFI_DIRECT, IDS_WIFI_DIRECT); - ivug_listpopup_item_append(popup, NULL, IDS_BLUETOOTH, IDS_BLUETOOTH); +#ifdef USE_THUMBLIST + if (pMainView->thumbs) { + Image_Object *img_obj = NULL; + img_obj = ivug_thumblist_get_selected_item(pMainView->thumbs); - if(mdata->bIsDRMContent == EINA_TRUE) - { - break; + if (img_obj != NULL) { + bool bVideo = (mData->slide_type == SLIDE_TYPE_VIDEO); + ivug_thumblist_update_item(pMainView->thumbs, img_obj, mData->thumbnail_path, bVideo, mitem); + _set_thumblist_mode(pMainView, mData, img_obj); + } } - ivug_listpopup_item_append(popup, NULL, IDS_FACEBOOK, IDS_FACEBOOK); - ivug_listpopup_item_append(popup, NULL, IDS_YOUTUBE, IDS_YOUTUBE); - - break; - case SLIDE_TYPE_UNKNOWN: - ivug_listpopup_item_append(popup, NULL, IDS_BLUETOOTH, IDS_BLUETOOTH); - break; - case SLIDE_TYPE_NONE: - default: - MSG_MAIN_WARN("Unknown slide type=%d", mdata->slide_type); - // Go through - } - - ivug_listpopup_button_set(popup, IDS_CLOSE); - ivug_listpopup_popup_show(popup); -} #endif + } -void on_btn_save_clicked(void *data, Evas_Object *obj, void *event_info) -{ - Ivug_MainView *pMainView = (Ivug_MainView *)data; - IV_ASSERT(pMainView != NULL); - - if(pMainView->popup) - { - MSG_MAIN_ERROR("popup already exist"); - return; - } - - Media_Item *mitem = ivug_slider_get_item(pMainView->slider); - Media_Data *mdata = ivug_medialist_get_data(mitem); - IV_ASSERT(mdata != NULL); - - if ( mdata->filepath == NULL) - { - MSG_MAIN_ERROR("File path is NULL"); - return; - } - - ivug_main_view_del_hide_timer(pMainView); - - MSG_MAIN_HIGH("Web image filepath %s, fileurl %s", mdata->filepath, mdata->fileurl); - -#ifdef USE_DEFAULT_DOWNLOADS_FOLDER - char dest_file[IVUG_MAX_FILE_PATH_LEN + 1] = {0,}; - const char *new_filename = ecore_file_file_get(mdata->filepath); - char *temp_filename = NULL; - - if (new_filename == NULL) - { - MSG_MAIN_ERROR("File does not exist filepath=%s", mdata->filepath); - ivug_main_view_set_hide_timer(pMainView); - return; - } - - if (ecore_file_dir_is_empty(DEFAULT_DOWNLOADS_FOLDER) == -1) - { - MSG_MAIN_WARN("Destination path doesn't exist. %s", DEFAULT_DOWNLOADS_FOLDER); - mkdir(DEFAULT_DOWNLOADS_FOLDER, DIR_MASK_DEFAULT); - } - - snprintf(dest_file, IVUG_MAX_FILE_PATH_LEN, "%s/%s", DEFAULT_DOWNLOADS_FOLDER, new_filename); - if(ecore_file_exists(dest_file)) - { - MSG_MAIN_WARN("file already exist"); - temp_filename = ivug_generate_file_name(dest_file, NULL, NULL); - snprintf(dest_file, IVUG_MAX_FILE_PATH_LEN, "%s/%s", DEFAULT_DOWNLOADS_FOLDER, ecore_file_file_get(temp_filename)); - free(temp_filename); - } - - if(ivug_copy_file(mdata->filepath, dest_file) == false) - { - _ivug_selectioninfo_create(pMainView, IDS_FAILED); - ivug_main_view_set_hide_timer(pMainView); - return; - } - // Add to album - /*int ret = media_file_register(dest_file); - if(ret < 0) - { - MSG_MAIN_ERROR("Cannot add to album file %s. ret=%d", dest_file, ret); - _ivug_selectioninfo_create(pMainView, IDS_FAILED); - } - else - { - _ivug_selectioninfo_create(pMainView, IDS_SAVED); - }*/ - _ivug_selectioninfo_create(pMainView, IDS_SAVED); -#else - ivug_listpopup_itemlist items = ivug_listpopup_itemlist_new(); - -// Get local album name. +// No need to reload image when rename!it just change file name +// pMainView->pPhotoViewer->ReloadImage(); - bool ret = ivug_db_get_all_folder_list(_iter_album_list, items); - if( ret == false ) - { - MSG_SDATA_ERROR( "ivug_db_get_all_folder_list failed: %d", ret); - return; } - pMainView->popup = ivug_listpopup_show(pMainView->layout, IDS_SAVE, items, _on_save_selected, pMainView); - - ivug_listpopup_itemlist_free(items); -#endif - - return; + ivug_name_view_destroy(pMainView->pNameView); + pMainView->pNameView = NULL; // Will removed in add tag view. } - -void on_btn_tag_clicked(void *data, Evas_Object *obj, void *event_info) +static void +_on_btn_rename_clicked(void *data) { Ivug_MainView *pMainView = (Ivug_MainView *)data; - IV_ASSERT(pMainView != NULL); - Media_Item *mitem = ivug_slider_get_item(pMainView->slider); + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); Media_Data *mdata = ivug_medialist_get_data(mitem); - ivug_ret_if(!mdata); - //ivug_main_view_del_hide_timer(pMainView); + pMainView->pNameView = ivug_name_view_create(pMainView->layout, NAME_VIEW_MODE_SINGLE_LINE); + IV_ASSERT(pMainView->pNameView != NULL); - Evas_Object* popup = NULL; - popup = ivug_listpopup_add(pMainView->area_obj); + ivug_name_view_set_title(pMainView->pNameView, IDS_RENAME); + ivug_name_view_set_guide_text(pMainView->pNameView, IDS_ENTER_NAME); + ivug_name_view_set_filter_text(pMainView->pNameView, INVALID_FILENAME_CHAR); - pMainView->ctx_popup2 = popup; + char *name = ecore_file_strip_ext(ecore_file_file_get(mdata->filepath)); - evas_object_smart_callback_add(popup, "popup,dismissed", _dismissed_cb, pMainView); - evas_object_smart_callback_add(popup, "popup,selected", _on_addtag_selected, pMainView); + ivug_name_view_set_text(pMainView->pNameView, name); - ivug_listpopup_item_append(popup, NULL, IDS_CREATE_TAG, IDS_CREATE_TAG); - ivug_listpopup_item_append(popup, NULL, IDS_FAVOURITES, IDS_FAVOURITES); + // file name have to be smaller then MAX_BYTE_LEN include extension + '.' + int limit_len = MAX_CHAR_LEN; - bool ret = ivug_db_get_all_tag_list(_iter_tag_list, pMainView); - if( ret == false ) - { - MSG_SDATA_ERROR( "ivug_db_get_all_folder_list failed: %d", ret); - return; + char *ext = ivug_fileinfo_get_file_extension(mdata->filepath); + if (ext) { + limit_len -= (strlen(ext) + 1); // 1 is '.' } - Evas_Coord x, y; - Evas_Coord w, h; - - Ivug_ListPopup_Item *item = (Ivug_ListPopup_Item *)event_info; - Elm_Object_Item *eoi = ivug_listpopup_item_get_item(item); - Evas_Object *button = elm_object_item_widget_get(eoi); - evas_object_geometry_get(button, &x, &y, &w, &h); - MSG_MAIN_HIGH("x = %d, y = %d, w = %d, h = %d", x, y, w, h); - - ivug_listpopup_context_show(popup, pMainView->area_obj, x+w/2, y+h/2); - return; -} - -void on_btn_slideshow_clicked(void *data, Evas_Object *obj, void *event_info) -{ - Ivug_MainView *pMainView = (Ivug_MainView *)data; - IV_ASSERT(pMainView != NULL); - - MSG_MAIN_HIGH("Start slide show"); - -/* - Just for debugging. -*/ -#if 0 - ivug_slider_dump_photocam(pMainView->slider); - return; + ivug_name_view_set_max_length(pMainView->pNameView, limit_len); -#endif + ivug_name_view_set_response_callback(pMainView->pNameView, _on_button_rename_view_response, (void*)pMainView); - if(pMainView->pDetailsView) - { - MSG_MAIN_HIGH("Exit details view"); - //_change_close_to_details(pMainView); - _delete_details_view(pMainView); - ivug_main_view_set_hide_timer(pMainView); // for hide_count + if (ext) { + free(ext); } - ivug_main_view_start_slideshow(pMainView, EINA_TRUE); + free(name); + ivug_name_view_set_focus(pMainView->pNameView); } -void on_btn_details_close_clicked(void *data, Evas_Object *obj, void *event_info) +static void +_on_btn_download_clicked(void *data) { Ivug_MainView *pMainView = (Ivug_MainView *)data; - IV_ASSERT(pMainView != NULL); - - MSG_MAIN_HIGH("ENTER : Btn detail close clicked. obj=0x%08x data=0x%08x", obj, data); - - //_change_close_to_details(pMainView); - _delete_details_view(pMainView); - ivug_main_view_set_hide_timer(pMainView); - - MSG_MAIN_HIGH("LEAVE : Btn detail close clicked. obj=0x%08x data=0x%08x", obj, data); -} + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); + Media_Data *mdata = ivug_medialist_get_data(mitem); + char buf[IVUG_MAX_FILE_PATH_LEN] = {0,}; + snprintf(buf, (size_t)sizeof(buf), "%s", DEFAULT_DOWNLOADS_FOLDER); + MSG_MAIN_HIGH("%s", buf); + if (_save_to_folder(pMainView, mdata->filepath, buf)) + MSG_MAIN_HIGH("File Downloaded"); + else + MSG_MAIN_HIGH("File Not Downloaded"); +} -/* - Used for only view type is select -*/ -void on_btn_selectok_clicked(void *data, Evas_Object *obj, void *event_info) +void _on_mainview_delete(Ivug_MainView *pMainView) { - Ivug_MainView *pMainView = (Ivug_MainView *)data; IV_ASSERT(pMainView != NULL); - MSG_MAIN_HIGH("Select OK."); - - service_h service; - service_create(&service); + MSG_MAIN_HIGH("Btn Delete is clicked. pMainView(0x%08x)", pMainView); - service_add_extra_data(service, "Result", "Ok"); - ug_send_result(gGetUGHandle(), service); + if (pMainView->popup) { + MSG_MAIN_WARN("popup already exist"); + return; + } - service_destroy(service); + ivug_main_view_del_hide_timer(pMainView); + Media_Data *mdata = ivug_medialist_get_data(pMainView->cur_mitem); + + if (mdata->slide_type == SLIDE_TYPE_IMAGE) { + pMainView->popup = ivug_deletepopup_show(pMainView->navi_bar, + GET_STR(IDS_DELETE_IMAGE), + GET_STR(IDS_DELETE_IMAGE_MESSAGE), + _on_delete_selected, + pMainView); + } else { + pMainView->popup = ivug_deletepopup_show(pMainView->navi_bar, + GET_STR(IDS_DELETE_IMAGE), + GET_STR(IDS_DELETE_VIDEO_MESSAGE), + _on_delete_selected, + pMainView); + } - DESTROY_ME(); + return; +} +bool _share_pkg_cb(app_control_h service, const char *package, void *user_data) +{ + return true; } -/* - Used for only view type is select -*/ -void on_btn_selectcancel_clicked(void *data, Evas_Object *obj, void *event_info) + +void _on_mainview_share(Ivug_MainView *pMainView) { - Ivug_MainView *pMainView = (Ivug_MainView *)data; IV_ASSERT(pMainView != NULL); - MSG_MAIN_HIGH("Select Cancel"); - -//send result to caller - service_h service; - service_create(&service); + if (pMainView->popup) { + MSG_MAIN_WARN("popup already exist"); + return; + } - service_add_extra_data(service, "Result", "Cancel"); - ug_send_result(gGetUGHandle(), service); + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); + Media_Data *mdata = ivug_medialist_get_data(mitem); + IV_ASSERT(mdata != NULL); - service_destroy(service); + if (mdata->filepath == NULL) { + MSG_MAIN_ERROR("File path is NULL"); + return; + } - DESTROY_ME(); +#ifdef USE_SOUNDIMAGE_SHARE + if (mdata->iType == MIMAGE_TYPE_SOUNDSCENE) { + MSG_MAIN_HIGH("Sharing Sound&Image"); -} + ivug_main_view_del_hide_timer(pMainView); -void on_btn_rename_clicked(void *data, Evas_Object *obj, void *event_info) -{ - Ivug_MainView *pMainView = (Ivug_MainView *)data; - IV_ASSERT(pMainView != NULL); + // Select popup shows. + Evas_Object *popup = ivug_listpopup_add(pMainView->layout); - Media_Item *mitem = ivug_slider_get_item(pMainView->slider); - Media_Data *mdata = ivug_medialist_get_data(mitem); + ivug_listpopup_set_style(popup, IVUG_POPUP_STYLE_LIST); - IV_ASSERT(mdata != NULL); + ivug_listpopup_title_set(popup, IDS_SHARE_AS); + ivug_listpopup_item_append(popup, NULL, IDS_SHARE_AS_VIDEO, (void *)GET_STR(IDS_SHARE_AS_VIDEO)); + ivug_listpopup_item_append(popup, NULL, IDS_SHARE_AS_IMAGE, (void *)GET_STR(IDS_SHARE_AS_IMAGE)); - ivug_main_view_del_hide_timer(pMainView); + ivug_listpopup_popup_show(popup); - char *old_fullpath = mdata->filepath; - char *old_name = ecore_file_strip_ext(ecore_file_file_get(old_fullpath)); + pMainView->popup = popup; + evas_object_smart_callback_add(popup, "popup,dismissed", _share_type_dismissed, (void *)pMainView); + evas_object_smart_callback_add(popup, "popup,selected", _share_type_selected, (void *)pMainView); - ivug_rename_popup_show(pMainView->layout, old_name, _on_rename_selected, pMainView); + return; + } +#endif - free(old_name); + _launch_share_app(pMainView, mdata->filepath); } -static void -_on_copy_selected(void *data, Evas_Object *obj) +void _on_mainview_save(Ivug_MainView *pMainView) { - Ivug_MainView *pMainView = (Ivug_MainView *)data; IV_ASSERT(pMainView != NULL); - //get current file path. - Media_Item *mitem = ivug_slider_get_item(pMainView->slider); - Media_Data *mdata = ivug_medialist_get_data(mitem); - if (mdata == NULL) - { - MSG_MAIN_ERROR("slider data is NULL"); + if (pMainView->popup) { + MSG_MAIN_ERROR("popup already exist"); return; } - char *path = NULL; - int len = 0; + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); + Media_Data *mdata = ivug_medialist_get_data(mitem); + IV_ASSERT(mdata != NULL); - if(mdata->slide_type == SLIDE_TYPE_VIDEO) - { - path = mdata->thumbnail_path; - } - else - { - path = mdata->filepath; + if (mdata->filepath == NULL) { + MSG_MAIN_ERROR("File path is NULL"); + return; } - len = strlen(path)+1; - if (len < IVUG_MAX_FILE_PATH_LEN) - { - MSG_MAIN_HIGH("file path = %s", path); - elm_cnp_selection_set(pMainView->layout, ELM_SEL_TYPE_CLIPBOARD, ELM_SEL_FORMAT_IMAGE, path, len); - _ivug_selectioninfo_create(pMainView, IDS_COPIED_TO_CLIPBOARD); - } - else + MSG_MAIN_SEC("Web image filepath %s, fileurl %s", mdata->filepath, mdata->fileurl); + +#ifdef USE_DEFAULT_DOWNLOADS_FOLDER + char *path = NULL; { - MSG_MAIN_ERROR("slider file path is too long"); - _ivug_selectioninfo_create(pMainView, IDS_FAILED); + path = strdup(DEFAULT_DOWNLOADS_FOLDER); } -} -static void -_on_crop_selected(void *data, Evas_Object *obj) -{ - Ivug_MainView *pMainView = (Ivug_MainView *)data; - IV_ASSERT(pMainView != NULL); + free(path); +#else + ivug_main_view_del_hide_timer(pMainView); - //get current file path. - Media_Item *WMitem = ivug_slider_get_item(pMainView->slider); - Media_Data *mdata = ivug_medialist_get_data(WMitem); + ivug_listpopup_itemlist items = ivug_listpopup_itemlist_new(); - if (mdata == NULL) - { - MSG_MAIN_ERROR("slider data is NULL"); +// Get local album name. + + bool ret = ivug_db_get_all_folder_list(_iter_album_list, items); + if (ret == false) { + MSG_SDATA_ERROR( "ivug_db_get_all_folder_list failed: %d", ret); return; } - MSG_MAIN_HIGH("Create Crop view"); - IvugCropView *pCropView = ivug_crop_view_create(pMainView->layout); + pMainView->popup = ivug_listpopup_show(pMainView->layout, IDS_SAVE, items, _on_save_selected, pMainView); - Evas_Object *layout = ivug_crop_view_get_object(pCropView); + ivug_listpopup_itemlist_free(items); +#endif //USE_DEFAULT_DOWNLOADS_FOLDER + return; +} - evas_object_smart_callback_add(layout, "ok,clicked", _ivug_crop_view_ok_clicked_cb, pMainView); - evas_object_smart_callback_add(layout, "destroyed", _ivug_crop_view_destroyed_cb, pMainView); +static void _ivug_slideshow_ext_ug_destroy_cb(ui_gadget_h ug, void *priv) +{ + IV_ASSERT(priv != NULL); + Ivug_MainView *pMainView = (Ivug_MainView *)priv; - Evas_Object *btn_back = ivug_button_add(layout, "naviframe/end_btn/default", - IDS_BACK, NULL, _ivug_crop_view_destroyed_cb, pMainView); + ug_destroy(ug); + //__gl_ext_destroy_ug(ad); + /*Enable the focus permission of the app layout,or else the app layout can't flick the highlight*/ + elm_object_tree_focus_allow_set(pMainView->layout, EINA_TRUE); + elm_object_focus_set(pMainView->layout, EINA_TRUE); +} - pMainView->navi_it = elm_naviframe_item_push(pMainView->navi_bar, NULL, btn_back, NULL, pCropView->layout, NULL); +static void _ivug_slideshow_ext_ug_end_cb(ui_gadget_h ug, void *priv) +{ + IV_ASSERT(priv != NULL); + Ivug_MainView *pMainView = (Ivug_MainView *)priv; - //Evas_Object *conformant = (Evas_Object *)ug_get_conformant(); - //elm_object_signal_emit(conformant, "elm,state,indicator,nooverlap", ""); + /*Enable the focus permission of the app layout,or else the app layout can't flick the highlight*/ + elm_object_tree_focus_allow_set(pMainView->layout, EINA_TRUE); + elm_object_focus_set(pMainView->layout, EINA_TRUE); - ivug_crop_view_create_menu(pCropView, pMainView->navi_bar); + if (pMainView->bStartSlideshow == true) { + // here , start slideshow + //ivug_main_view_start_slideshow(pMainView, EINA_TRUE); - ivug_crop_view_file_set(pCropView, mdata->filepath); + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); + Media_Data *mdata = ivug_medialist_get_data(mitem); - pMainView->pCropView = pCropView; + ivug_ext_launch_slideshow(mdata->fileurl, mdata->index); - elm_naviframe_item_title_visible_set(pMainView->navi_it, EINA_FALSE); + pMainView->bStartSlideshow = false; + } } -#include - -static void -_on_rotate_left_selected(void *data, Evas_Object *obj) +static void _ivug_slideshow_ext_ug_result_cb(ui_gadget_h ug, app_control_h result, void *priv) { - Ivug_MainView *pMainView = (Ivug_MainView *)data; - IV_ASSERT(pMainView != NULL); - - MSG_MAIN_HIGH("Rotate l button clicked"); + IV_ASSERT(priv != NULL); + Ivug_MainView *pMainView = (Ivug_MainView *)priv; + char *start = NULL; + app_control_get_extra_data(result, "Result", &start); + if (start) { + if (!g_strcmp0(start, "StartSlideShow")) { + /* Destory ug */ + //ug_destroy(ug); -#ifdef IVUG_DEFINE_EXIF_ROTATE - Media_Item *mitem = NULL; - Media_Data *mData = NULL; + pMainView->bStartSlideshow = true; - mitem = ivug_slider_get_item(pMainView->slider); - mData = ivug_medialist_get_data(mitem); + } else { + pMainView->bStartSlideshow = false; + } + } +} - int degree = 0; +void _on_slideshow_selected(void *data, Evas_Object *obj, void *event_info) +{ + IV_ASSERT(data != NULL); + Ivug_MainView *pMainView = (Ivug_MainView *)data; + Ivug_ListPopup_Item *item = (Ivug_ListPopup_Item *)event_info; - if ( ivug_exif_get_rotate(mData->filepath, °ree) < 0 ) - { - MSG_MAIN_ERROR("Cannot get degree : %s", mData->filepath); + const char *label = ivug_listpopup_item_get_text(item); + if (label == NULL) { + MSG_MAIN_ERROR("label is NULL"); + evas_object_del(obj); + ivug_main_view_set_hide_timer(pMainView); return; } + evas_object_del(obj); - degree = degree - 90 ; +// This is not right way. but no other options. +// When X window disappeared, they capture current frame for use when activate. +// Evas renders screen when entering idle. so it is possibility for X win to capture screen before evas remove popup image. +// So in here. force render is needed. +// later this part should move to ivug-slide-show.cpp. right before X win capture. + evas_render(evas_object_evas_get(pMainView->layout)); - if ( ivug_exif_set_rotate(mData->filepath, degree) < 0 ) - { - MSG_MAIN_ERROR("Cannot set degree : %s", mData->filepath); - return; + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); + Media_Data *mdata = ivug_medialist_get_data(mitem); + + if (strncmp(label, IDS_ALL_PICTURES, strlen(label)) == 0) { + //ivug_main_view_start_slideshow(pMainView, EINA_TRUE); + ivug_ext_launch_slideshow(mdata->fileurl, mdata->index); + } else if (strncmp(label, IDS_SELECT_PICTURE, strlen(label)) == 0) { + int retSvc; + app_control_h serviceHandle; + retSvc = app_control_create(&serviceHandle); + if (retSvc != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_create Failed: 0x%x", retSvc); + return; + } + ivug_view_by view_by = pMainView->view_by; + if (view_by == IVUG_VIEW_BY_ALL) { + retSvc = app_control_add_extra_data(serviceHandle, "view-by", "all"); + if (retSvc != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data Failed: 0x%x", retSvc); + } + } else if (view_by == IVUG_VIEW_BY_PLACES) { + retSvc = app_control_add_extra_data(serviceHandle, "view-by", "places"); + if (retSvc != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data Failed: 0x%x", retSvc); + } + /* TODO : all gps info */ + } else if (view_by == IVUG_VIEW_BY_TIMELINE) { + TODO("it is right?"); + retSvc = app_control_add_extra_data(serviceHandle, "view-by", "timeline"); + if (retSvc != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data Failed: 0x%x", retSvc); + } + } else if (view_by == IVUG_VIEW_BY_FAVORITES) { + retSvc = app_control_add_extra_data(serviceHandle, "view-by", "favourites"); + if (retSvc != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data Failed: 0x%x", retSvc); + } + } else if (view_by == IVUG_VIEW_BY_TAG) { + retSvc = app_control_add_extra_data(serviceHandle, "view-by", "tags"); + if (retSvc != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data Failed: 0x%x", retSvc); + } + /* TODO : add tag name */ + } else { + retSvc = app_control_add_extra_data(serviceHandle, "view-by", "albums"); + if (retSvc != APP_CONTROL_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("app_control_add_extra_data Failed: 0x%x", retSvc); + } + } + ivug_ext_launch_select_image(serviceHandle, NULL, _ivug_slideshow_ext_ug_destroy_cb, data); + app_control_destroy(serviceHandle); + } else if (strncmp(label, IDS_SETTINGS, strlen(label)) == 0) { + ivug_ext_launch_setting_gallery(_ivug_slideshow_ext_ug_result_cb, _ivug_slideshow_ext_ug_destroy_cb, _ivug_slideshow_ext_ug_end_cb, data); } +} - ivug_db_refresh(mData->mediaID); - ivug_slider_reload(pMainView->slider); // Refresh image +void _on_slideshow_btn_cancel(void *data, Evas_Object *obj, void *event_info) +{ + evas_object_del(obj); +} +void _ivug_slideshow_popup_create_menu(void *data, Evas_Object *obj, void *event_info) +{ + Ivug_MainView *pMainView = (Ivug_MainView *)data; + IV_ASSERT(pMainView != NULL); + Evas_Object* popup = NULL; + popup = ivug_listpopup_add(pMainView->layout); + ivug_listpopup_lang_set(popup, gGetLanguageHandle()); + + ivug_listpopup_item_append(popup, NULL, IDS_ALL_PICTURES, GET_STR(IDS_ALL_PICTURES)); + ivug_listpopup_item_append(popup, NULL, IDS_SELECT_PICTURE, GET_STR(IDS_SELECT_PICTURE)); + ivug_listpopup_item_append(popup, NULL, IDS_SETTINGS, GET_STR(IDS_SETTINGS)); + ivug_listpopup_title_set(popup, IDS_SLIDE_SHOW); +// ivug_listpopup_button_set(popup, IDS_CANCEL, NULL); + ivug_listpopup_popup_show(popup); -// Remove old thumbnail. not working -// ecore_file_remove(mData->thumbnail_path); + evas_object_smart_callback_add(popup, "popup,dismissed", _dismissed_cb, pMainView); + evas_object_smart_callback_add(popup, "popup,selected", _on_slideshow_selected, pMainView); + evas_object_smart_callback_add(popup, "popup,btn,selected", _on_slideshow_btn_cancel, pMainView); -// Get thumbnail. - char new_path[IVUG_MAX_FILE_PATH_LEN]; + MSG_MAIN_HIGH("Create slideshow Popup(0x%08x)", popup); +} - int ret = -1; - ret = thumbnail_request_from_db(mData->filepath, new_path, IVUG_MAX_FILE_PATH_LEN); - if (ret < 0) - { - MSG_MAIN_ERROR("thumbnail_request_from_db failed! %s", mData->filepath); - return; - } -#if 0 - char dest[1024]; +static void +_on_slideshow_finished(void *data, Evas_Object *obj, void *event_info) +{ + MSG_MAIN_HIGH("_on_slideshow_finished"); + IV_ASSERT(data != NULL); - snprintf(dest, sizeof(dest) - 1, "/opt/media/thm_l_%d.jpg", degree); + Ivug_MainView *pMainView = (Ivug_MainView *)data; + //int ss_state = (int)event_info; - ecore_file_cp(new_path, dest); -#endif + evas_object_smart_callback_del_full(ivug_ss_object_get(pMainView->ssHandle), + "slideshow,finished", _on_slideshow_finished, pMainView); - if ( mData->thumbnail_path != NULL ) - { - free(mData->thumbnail_path); + if (pMainView->ssHandle) { + ivug_ss_delete(pMainView->ssHandle); + pMainView->ssHandle = NULL; } - mData->thumbnail_path = strdup(new_path); - - -#else - ivug_slider_image_rotate(pMainView->slider, -90); +#ifdef USE_THUMBLIST + if (pMainView->thumbs) { + ivug_thumblist_set_edit_mode(pMainView->thumbs, EINA_FALSE); + } #endif - ivug_slider_zoom_reset(pMainView->slider); + ivug_main_view_show_menu_bar(pMainView); + - pMainView->zoom_level = 1; - elm_slider_value_set(pMainView->zoom_slider, 1.0); + ivug_medialist_del(pMainView->temp_mlist); + pMainView->temp_mlist = NULL; } -static void -_on_rotate_right_selected(void *data, Evas_Object *obj) + +void on_btn_slideshow_clicked(void *data, Evas_Object *obj, void *event_info) { +#ifdef USE_THUMBLIST Ivug_MainView *pMainView = (Ivug_MainView *)data; - IV_ASSERT(pMainView != NULL); + Eina_List *selected_list = NULL; + Eina_List *list = NULL; + Eina_List *l = NULL; + void *l_data = NULL; + Image_Object *img = NULL; + Media_Item *mitem = NULL; + Media_Data *mdata = NULL; - MSG_MAIN_HIGH("Rotate r button clicked"); + if (pMainView->thumbs != NULL && ivug_thumblist_get_edit_mode(pMainView->thumbs) == EINA_TRUE) { + list = ivug_thumblist_get_items_checked(pMainView->thumbs); + if (list == NULL) { + MSG_MAIN_HIGH("checked item is null"); + return; + } + char *filepath = NULL; // start file path -#ifdef IVUG_DEFINE_EXIF_ROTATE - Media_Item *mitem = NULL; - Media_Data *mData = NULL; + EINA_LIST_FOREACH(list, l, l_data) + { + img = (Image_Object *)l_data; + mitem = (Media_Item *)ivug_thumblist_get_item_data(pMainView->thumbs, img); + mdata = ivug_medialist_get_data(mitem); + if (filepath == NULL) { + filepath = mdata->fileurl; + } + selected_list = eina_list_append(selected_list, (void *)mdata->index); + } - mitem = ivug_slider_get_item(pMainView->slider); - mData = ivug_medialist_get_data(mitem); + if (filepath == NULL) { + MSG_MAIN_ERROR("checked item's path is invalid"); + return; + } - int degree = 0; + Media_List *mlist = ivug_medialist_create(); + Filter_struct * filter = ivug_medialist_get_filter(pMainView->mList); + filter->selected_list = selected_list; + if (filter->filepath) { + free(filter->filepath); + } + filter->filepath = strdup(filepath); + Media_Item *current = ivug_medialist_load(mlist, filter); - if ( ivug_exif_get_rotate(mData->filepath, °ree) < 0 ) - { - MSG_MAIN_ERROR("Cannot get degree : %s", mData->filepath); - return; - } + pMainView->temp_mlist = mlist; + pMainView->ssHandle = ivug_ss_create(pMainView->layout); - degree = degree + 90 ; + // Register callback + evas_object_smart_callback_add(ivug_ss_object_get(pMainView->ssHandle), + "slideshow,finished", _on_slideshow_finished, pMainView); - if ( ivug_exif_set_rotate(mData->filepath, degree) < 0 ) - { - MSG_MAIN_ERROR("Cannot set degree : %s", mData->filepath); - return; - } +// ivug_allow_lcd_off(); + + ivug_main_view_hide_menu_bar(pMainView); - ivug_db_refresh(mData->mediaID); + ivug_ss_start(pMainView->ssHandle, current, mlist, false); + + } else { + ivug_main_view_start_slideshow(pMainView, EINA_FALSE); + } +#else + _ivug_slideshow_popup_create_menu(data, obj, event_info); +#endif - ivug_slider_reload(pMainView->slider); // Refresh image +} +#ifdef IV_EXTENDED_FEATURES +static void _ivug_ext_app_control_reply_cb(app_control_h request, app_control_h reply, app_control_result_e result, void *user_data) +{ + Ivug_MainView *pMainView = (Ivug_MainView *)user_data; + IV_ASSERT(pMainView != NULL); -// Remove old thumbnail. not working -// ecore_file_remove(mData->thumbnail_path); + MSG_IMAGEVIEW_HIGH("ivug_ext_app_control_reply_cb"); -// Get thumbnail. - char new_path[IVUG_MAX_FILE_PATH_LEN]; +// Enable menu again + edje_object_signal_emit(_EDJ(pMainView->lyContent), "elm,state,enable,toolbtn", "user"); - int ret = -1; - ret = thumbnail_request_from_db(mData->filepath, new_path, - IVUG_MAX_FILE_PATH_LEN); - if (ret < 0) + switch (result) { - MSG_MAIN_ERROR("thumbnail_request_from_db failed! %s", mData->filepath); - return; + case APP_CONTROL_RESULT_SUCCEEDED: + MSG_IMAGEVIEW_HIGH("APP_CONTROL_RESULT_SUCCEEDED"); + break; + case APP_CONTROL_RESULT_FAILED: + MSG_IMAGEVIEW_HIGH("APP_CONTROL_RESULT_FAILED"); + break; + case APP_CONTROL_RESULT_CANCELED: + MSG_IMAGEVIEW_HIGH("APP_CONTROL_RESULT_CANCELED"); + break; + default: + MSG_IMAGEVIEW_ERROR("unhandled value %d", result); + break; } -#if 0 - char dest[1024]; + pMainView->ext_svc = NULL; +} +#endif - snprintf(dest, sizeof(dest) - 1, "/opt/media/thm_r_%d.jpg", degree); +void _on_mainview_edit(Ivug_MainView *pMainView) +{ + IV_ASSERT(pMainView != NULL); - ecore_file_cp(new_path, dest); -#endif + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); + Media_Data *mdata = ivug_medialist_get_data(mitem); + IV_ASSERT(mdata != NULL); - if ( mData->thumbnail_path != NULL ) - { - free(mData->thumbnail_path); + if (mdata->slide_type == SLIDE_TYPE_IMAGE) { + edje_object_signal_emit(_EDJ(pMainView->lyContent), "elm,state,disable,toolbtn", "user"); + //ivug_ext_launch_default(mdata->filepath, APP_CONTROL_OPERATION_EDIT, NULL, NULL, NULL); +#ifdef IV_EXTENDED_FEATURES + pMainView->ext_svc = ivug_ext_launch_image_editor(mdata->filepath, _ivug_ext_app_control_reply_cb, pMainView); +#endif + } else if (mdata->slide_type == SLIDE_TYPE_VIDEO) { + ivug_ext_launch_videoeditor(mdata->filepath, NULL, NULL); } - mData->thumbnail_path = strdup(new_path); +} +#include -#else - ivug_slider_image_rotate(pMainView->slider, +90); -#endif +static void _on_add_comment_view_destroy(void *data, Evas_Object *obj, void *event_info) +{ + MSG_MAIN_HIGH("transition finished"); + Ivug_MainView *pMainView = (Ivug_MainView *)data; - ivug_slider_zoom_reset(pMainView->slider); + ivug_name_view_destroy(pMainView->pNameView); + pMainView->pNameView = NULL; // Will removed in add tag view. - pMainView->zoom_level = 1; - elm_slider_value_set(pMainView->zoom_slider, 1.0); + evas_object_smart_callback_del(pMainView->navi_bar, "transition,finished", + _on_add_comment_view_destroy); } - static void _on_more_selected(void *data, Evas_Object *obj, void *event_info) { -// obj is ctxpopup!. Ivug_MainView *pMainView = (Ivug_MainView *)data; Ivug_ListPopup_Item *item = (Ivug_ListPopup_Item *)event_info; - const char *label = (const char *)ivug_listpopup_item_get_data(item); - if(label == NULL) - { + const char *label = ivug_listpopup_item_get_text(item); + if (label == NULL) { ivug_main_view_set_hide_timer(pMainView); return; } MSG_MAIN_HIGH("text(%s) is clicked", label); - if(strncmp(label, IDS_COPY_TO_CLIPBOARD, strlen(label)) == 0) - { - _on_copy_selected(data, obj); - ivug_main_view_set_hide_timer(pMainView); - } - else if(strncmp(label, IDS_CROP, strlen(label)) == 0) - { - _on_crop_selected(data, obj); - } - else if(strncmp(label, IDS_ROTATE_LEFT, strlen(label)) == 0) - { - _on_rotate_left_selected(data, obj); - ivug_main_view_set_hide_timer(pMainView); - } - else if(strncmp(label, IDS_ROTATE_RIGHT, strlen(label)) == 0) - { - _on_rotate_right_selected(data, obj); - ivug_main_view_set_hide_timer(pMainView); - } - else if(strncmp(label, IDS_SET_AS, strlen(label)) == 0) - { - on_btn_setas_clicked(data, obj, event_info); - } - else if(strncmp(label, IDS_SLIDE_SHOW, strlen(label)) == 0) - { + if (strncmp(label, IDS_SLIDE_SHOW, strlen(label)) == 0) { on_btn_slideshow_clicked(data, obj, event_info); - } - else if(strncmp(label, IDS_DETAILS, strlen(label)) == 0) - { - on_btn_details_clicked(data, obj, event_info); - } - else if(strncmp(label, IDS_ADD_TAG, strlen(label)) == 0) - { - on_btn_tag_clicked(data, obj, event_info); - } - else if(strncmp(label, IDS_PRINT, strlen(label)) == 0) - { - Media_Item *WMitem = ivug_slider_get_item(pMainView->slider); - Media_Data *mdata = ivug_medialist_get_data(WMitem); - - if (mdata == NULL) - { - MSG_MAIN_ERROR("slider data is NULL"); - evas_object_del(pMainView->ctx_popup); - pMainView->ctx_popup = NULL; - ivug_main_view_set_hide_timer(pMainView); - return; - } - ivug_ext_launch_print(mdata->filepath); + } else if (strncmp(label, IDS_DELETE_IMAGE, strlen(label)) == 0) { + _on_mainview_delete(pMainView); + } else if (strncmp(label, IDS_RENAME_IMAGE, strlen(label)) == 0) { + _on_btn_rename_clicked(pMainView); + } else if (strncmp(label, IDS_FILE_DOWNLOAD, strlen(label)) == 0) { + _on_btn_download_clicked(pMainView); } evas_object_del(pMainView->ctx_popup); @@ -1906,72 +1694,75 @@ void on_btn_more_clicked(void *data, Evas_Object *obj, void *event_info) Ivug_MainView *pMainView = (Ivug_MainView *)data; IV_ASSERT(pMainView != NULL); - slide_state_t state = ivug_slider_get_state(pMainView->slider); - - Media_Item *mitem = ivug_slider_get_item(pMainView->slider); + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); Media_Data *mdata = ivug_medialist_get_data(mitem); + Evas_Object* popup = NULL; + Evas_Coord x; + Evas_Coord y; + Evas_Coord w; + Evas_Coord h; - IV_ASSERT(mdata != NULL); + MSG_MAIN_HIGH("More clicked. Mode=%d", pMainView->mode); - ivug_main_view_del_hide_timer(pMainView); + if (gGetDestroying() == true) { + MSG_MAIN_WARN("UG is destroying"); + return; + } - Evas_Object* popup = NULL; - popup = ivug_listpopup_add(pMainView->area_obj); + if (pMainView->ctx_popup || pMainView->isSliding == true) { + MSG_MAIN_HIGH("Previous CTX popup is exist"); + evas_object_del(pMainView->ctx_popup); + pMainView->ctx_popup = NULL; + return; + } - pMainView->ctx_popup = popup; + if (pMainView->mode == IVUG_MODE_SAVE) { + MSG_MAIN_HIGH("Current mode is SAVE. Ignore More event"); + return; + } - evas_object_smart_callback_add(popup, "popup,dismissed", _dismissed_cb, pMainView); - evas_object_smart_callback_add(popup, "popup,selected", _on_more_selected, pMainView); + IV_ASSERT(mdata != NULL); - if (state == SLIDE_STATE_ERROR || state == SLIDE_STATE_DOWNLOAD_FAILED) - { - MSG_MAIN_HIGH("slide state is invalid %d", state); - ivug_listpopup_item_append(popup, NULL, IDS_DETAILS, IDS_DETAILS); - goto MORE_BTN_END; + if (pMainView->bShowMenu == true) { + // If menu is visible, do not hide menu during popup is displaying + ivug_main_view_del_hide_timer(pMainView); } - if(mdata->slide_type == SLIDE_TYPE_IMAGE) - { - ivug_listpopup_item_append(popup, NULL, IDS_SET_AS, IDS_SET_AS); - ivug_listpopup_item_append(popup, NULL, IDS_SLIDE_SHOW, IDS_SLIDE_SHOW); - if(pMainView->pDetailsView == NULL) - ivug_listpopup_item_append(popup, NULL, IDS_DETAILS, IDS_DETAILS); - ivug_listpopup_item_append(popup, NULL, IDS_ADD_TAG, IDS_ADD_TAG); - - if(mdata->bIsDRMContent == EINA_FALSE) - { - ivug_listpopup_item_append(popup, NULL, IDS_CROP, IDS_CROP); + popup = ivug_listpopup_add(pMainView->layout); + ivug_listpopup_lang_set(popup, gGetLanguageHandle()); - int degree = 0; - if ( ivug_exif_get_rotate(mdata->filepath, °ree) == 0 ) - { - ivug_listpopup_item_append(popup, NULL, IDS_ROTATE_LEFT, IDS_ROTATE_LEFT); - ivug_listpopup_item_append(popup, NULL, IDS_ROTATE_RIGHT, IDS_ROTATE_RIGHT); - } - } + evas_object_smart_callback_add(popup, "popup,dismissed", _dismissed_cb, pMainView); + evas_object_smart_callback_add(popup, "popup,selected", _on_more_selected, pMainView); - ivug_listpopup_item_append(popup, NULL, IDS_PRINT, IDS_PRINT); - } - else if(mdata->slide_type == SLIDE_TYPE_VIDEO) - { - if(ivug_is_editable_video_file(mdata->filepath) == true) - { - ivug_listpopup_item_append(popup, NULL, IDS_TRIM, IDS_TRIM); + if (pMainView->mode == IVUG_MODE_EMAIL) { + ivug_listpopup_item_append(popup, NULL, IDS_FILE_DOWNLOAD, NULL); + } else { + ivug_listpopup_item_append(popup, NULL, IDS_SLIDE_SHOW, GET_STR(IDS_SLIDE_SHOW)); + if (pMainView->view_by != IVUG_VIEW_BY_FAVORITES) { + ivug_listpopup_item_append(popup, NULL, IDS_DELETE_IMAGE, GET_STR(IDS_DELETE_IMAGE)); } - ivug_listpopup_item_append(popup, NULL, IDS_SLIDE_SHOW, IDS_SLIDE_SHOW); - if(pMainView->pDetailsView == NULL) - ivug_listpopup_item_append(popup, NULL, IDS_DETAILS, IDS_DETAILS); - ivug_listpopup_item_append(popup, NULL, IDS_ADD_TAG, IDS_ADD_TAG); - //ivug_listpopup_item_append(popup, NULL, IDS_CROP, IDS_CROP); + ivug_listpopup_item_append(popup, NULL, IDS_RENAME_IMAGE, GET_STR(IDS_RENAME_IMAGE)); } -MORE_BTN_END: - Evas_Coord x, y; - Evas_Coord w, h; + pMainView->ctx_popup = popup; evas_object_geometry_get(obj, &x, &y, &w, &h); MSG_MAIN_MED("x = %d, y = %d, w = %d, h = %d", x, y, w, h); - ivug_listpopup_context_show(popup, pMainView->area_obj, x+w/2, y+h/2); + int rot = gGetRotationDegree(); + +#ifdef BACK_BTN + ivug_listpopup_context_show(popup, pMainView->layout, x+w/2, y+h/2); +#else + Evas_Object *win = (Evas_Object *)ug_get_window(); + elm_win_screen_size_get(win, NULL, NULL, &w, &h); + + ivug_listpopup_context_set_rotate_enable(popup, true); + if ((rot == 270) || (rot == 90)) { + ivug_listpopup_context_show(popup, pMainView->layout, (h / 2), w); + } else { + ivug_listpopup_context_show(popup, pMainView->layout, (w / 2), h); + } +#endif } diff --git a/main/src/view/ivug-main-view-menu.h b/main/src/view/ivug-main-view-menu.h index 6ccfecd..fcce8c4 100755 --- a/main/src/view/ivug-main-view-menu.h +++ b/main/src/view/ivug-main-view-menu.h @@ -1,47 +1,64 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_MAINVIEW_MENU_H__ #define __IVUG_MAINVIEW_MENU_H__ +#include "ivug-define.h" +#include "ivug-thumblist.h" +#include "ivug-main-view.h" #ifdef __cplusplus extern "C" { #endif +void ivug_notification_create(const char* text); + /* Button handlers for main view */ -void on_btn_selectcancel_clicked(void *data, Evas_Object *obj, void *event_info); -void on_btn_selectok_clicked(void *data, Evas_Object *obj, void *event_info); void on_btn_slideshow_clicked(void *data, Evas_Object *obj, void *event_info); -void on_btn_tag_clicked(void *data, Evas_Object *obj, void *event_info); -void on_btn_save_clicked(void *data, Evas_Object *obj, void *event_info); -void on_btn_share_clicked(void *data, Evas_Object *obj, void *event_info); -void on_btn_delete_clicked(void *data, Evas_Object *obj, void *event_info); -void on_btn_details_clicked(void *data, Evas_Object *obj, void *event_info); -void on_btn_setas_clicked(void *data, Evas_Object *obj, void *event_info); -void on_btn_back_clicked(void *data, Evas_Object *obj, void *event_info); -void on_btn_details_close_clicked(void *data, Evas_Object *obj, void *event_info); - -void on_btn_rename_clicked(void *data, Evas_Object *obj, void *event_info); + void on_btn_more_clicked(void *data, Evas_Object *obj, void *event_info); -void _ivug_selectioninfo_create(Ivug_MainView *pMainView, const char *string); +void _on_remove_main_view_ui(Ivug_MainView *pMainView); + + +/* + Save current contents to disk +*/ +void _on_mainview_save(Ivug_MainView *pMainView); +void _on_mainview_share(Ivug_MainView *pMainView); +void _on_mainview_delete(Ivug_MainView *pMainView); + + +/* + Edit Image or Video +*/ +void _on_mainview_edit(Ivug_MainView *pMainView); +void _on_play_continous_shot(Ivug_MainView *pMainView); +void _set_thumblist_mode(Ivug_MainView *pMainView, Media_Data *mdata, Image_Object *image_obj); + + +/* + Destroy detail view +*/ +void _delete_details_view(Ivug_MainView *pMainView ); #ifdef __cplusplus } diff --git a/main/src/view/ivug-main-view-priv.h b/main/src/view/ivug-main-view-priv.h index d751855..699ac54 100755 --- a/main/src/view/ivug-main-view-priv.h +++ b/main/src/view/ivug-main-view-priv.h @@ -1,46 +1,57 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_MAINVIEW_PRIV_H__ #define __IVUG_MAINVIEW_PRIV_H__ #include "ivug-define.h" +#include "ivug-name-view.h" +#include "ivug-crop-view.h" + +#include "ivug-slider-new.h" +#include "ivug-media.h" + #ifdef __cplusplus extern "C" { #endif struct _Ivug_MainView{ + Evas_Object *photocam; // ULC added + Evas_Object *photocam2; + Evas_Object *photocam0; + Evas_Object *btn_favorite; + int currentphotocam; + int prevphotocam; + bool slide_state; Evas_Object *parent; Evas_Object *layout; /*Layout widget based on EDJ*/ Evas_Object *navi_bar; - Evas_Object *empty_layout; + Evas_Object *lyContent; // Content layout. contain toolbar, title, thumblist Elm_Object_Item *navi_it; - Evas_Object* slider; //image viewer slider Evas_Object *back_btn; + int prev_mouse_point; + int last_prev_mouse_point; - Evas_Object *area_obj; //lcd area except indicator - - Evas_Object* selectioninfo; - - Evas_Object *zoom_slider; - int zoom_level; - + bool is_moved; + bool is_play_Icon; + Ecore_Timer *slide_move_timer; /* |------------------| | navi_bar | @@ -52,23 +63,27 @@ struct _Ivug_MainView{ | | | | |------------------| - | ctrl_bar | - |------------------| */ -// Toolbar - Evas_Object *tool_bar; - ivug_toolbar tool_bar_type; - // Controlbar - Evas_Object *ctrl_bar; ivug_ctrlbar ctrl_bar_type; - Evas_Object *btn_more; - Evas_Object *btn_share; - Evas_Object *btn_download; + struct { + Evas_Object *more; + Evas_Object *share; + Evas_Object *download; // Save + Evas_Object *nearby; + Evas_Object *del; + Evas_Object *info; + Evas_Object *edit; + } toolbtns; + +#ifdef USE_THUMBLIST + Evas_Object *thumbs; +#endif bool bSetThmByUser; + bool bmultitouchsliding; Evas_Object* popup; //popup Evas_Object* ctx_popup; //context popup 1depth @@ -76,31 +91,39 @@ struct _Ivug_MainView{ Evas_Object* longpress_popup; //long press popup bool bLongpressEnd; - - Evas_Object *best_icon; + bool isSliding; // child view. Ivug_NameView *pNameView; - Ivug_SetAsView *pSetAsView; - Ivug_DetailsView *pDetailsView; IvugCropView *pCropView; -// List +// Media List Media_List *mList; +//for select view + int total_selected; + Evas_Object *select_bar; + Evas_Object *check; + Eina_List *selected_path_list; // data is char * + //flag bool bShowMenu; ivug_mode mode; ivug_view_by view_by; + ivug_media_type media_type; ui_gadget_h ext_ug; + app_control_h ext_svc; Ecore_Event_Handler *keydown_handler; Ecore_Timer *exit_timer; Ecore_Timer *hide_timer; + Ecore_Timer *back_timer; + Ecore_Timer *reg_idler; + Ecore_Timer *db_idler; int hide_count; Ecore_Timer *popup_timer; @@ -109,12 +132,35 @@ struct _Ivug_MainView{ // Slide show; SlideShow *ssHandle; +#ifdef USE_EXT_SLIDESHOW + char *ss_music_name; +#endif - bool bClickPrevent; bool bStandAlone; //if true, it is process not ug + + bool bTestMode; + bool bStartSlideshow; + bool bPreventBackKey; // prevent back key + + Ivug_SliderNew *pSliderNew; + + Ecore_Idler *delete_idler; + Ecore_Thread *transcoding_thread; + + Eina_List *delete_list; + int delete_total; + Media_Item *cur_mitem; + + Evas_Object *progress_popup; + + Media_List *temp_mlist; //for selected slideshow + + Evas_Object *access_popup; /* Tagbuddy Help popup*/ + Ecore_Timer *tagbuddy_idler; + Media_Item *mCurrent; // Do Not use for other purpose except for updating tagbuddy }; -void _update_title(struct _Ivug_MainView *pMainView); +void _update_favorite(struct _Ivug_MainView *pMainView); bool ivug_is_agif(const char *filepath); diff --git a/main/src/view/ivug-main-view-toolbar.cpp b/main/src/view/ivug-main-view-toolbar.cpp index 02bbf57..fad631c 100755 --- a/main/src/view/ivug-main-view-toolbar.cpp +++ b/main/src/view/ivug-main-view-toolbar.cpp @@ -1,164 +1,192 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 "ivug-common.h" + #include "ivug-main-view.h" #include "ivug-main-view-menu.h" #include "ivug-main-view-priv.h" -#include "ivug-slider.h" +#include "EFLUtil.h" +#include +#include // ug_destroy_me, ug_send_result #define MIME_TYPE_LEN (255) #define MIME_TYPE_3GPP "video/3gpp" -#define PATH_CAMERA_LOCAL "/opt/usr/media/Camera" +#define MIME_TYPE_MP4 "video/mp4" +#define PATH_CAMERA_LOCAL "/opt/usr/media/DCIM/Camera" #define PATH_CAMERA_SDCARD "/opt/storage/sdcard/Camera" -/* Video editor can start when video exist in camera folder and 3gp file format */ +static void _enable_button(Evas_Object *obj) +{ + IV_ASSERT(obj != NULL); -bool ivug_is_editable_video_file(char *filepath) + edje_object_signal_emit(_EDJ(obj), "image,normal", "prog"); + +} + + +static void _disable_button(Evas_Object *obj) { - MSG_UTIL_MED("path = %s", filepath); - if(strncmp(filepath, PATH_CAMERA_LOCAL, strlen(PATH_CAMERA_LOCAL)) == 0 - || strncmp(filepath, PATH_CAMERA_SDCARD, strlen(PATH_CAMERA_SDCARD)) == 0) - { - efreet_mime_init(); - const char *type = NULL; - type = efreet_mime_type_get(ivug_get_filename(filepath)); + IV_ASSERT(obj != NULL); - efreet_mime_shutdown(); + edje_object_signal_emit(_EDJ(obj), "image,dim", "prog"); +} - if ( type == NULL ) - { - MSG_UTIL_ERROR("Cannot get mime type for %s", filepath); - return false; - } - MSG_UTIL_MED("mime type = %s", type); - if(strcmp(type, MIME_TYPE_3GPP) == 0) - { - return true; - } - } - return false; +static void _on_btn_share_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + MSG_MAIN_HIGH("Btn Share clicked"); + + Ivug_MainView *pMainView = (Ivug_MainView *)data; + + _on_mainview_share(pMainView); } -ivug_toolbar -_get_tool_bar_type(ivug_mode mode, Media_Type slide_type ) + +static void _on_btn_delete_cb(void *data, Evas_Object *obj, const char *emission, const char *source) { - ivug_toolbar tool_bar_type = NAVI_BAR_TYPE_NONE; + MSG_MAIN_HIGH("Btn Delete clicked"); - //calc navi bar style , temporary code. - static const char *szType[] = { - "[ INVALID ]", - "[ ]", - "[Set, Info]", - "[Ok, Cancel]", - }; + Ivug_MainView *pMainView = (Ivug_MainView *)data; + _on_mainview_delete(pMainView); +} - switch (mode) - { - case IVUG_MODE_NORMAL: - case IVUG_MODE_CAMERA: - tool_bar_type = NAVI_BAR_TYPE_EMPTY; - if (slide_type == SLIDE_TYPE_IMAGE) - { - tool_bar_type = NAVI_BAR_TYPE_IMAGE; - } - else if (slide_type == SLIDE_TYPE_VIDEO) - { - tool_bar_type = NAVI_BAR_TYPE_VIDEO; - } - else - { - tool_bar_type = NAVI_BAR_TYPE_EMPTY; - } - break; - case IVUG_MODE_SINGLE: - case IVUG_MODE_FILE: - { - tool_bar_type = NAVI_BAR_TYPE_FILE; - } - break; - case IVUG_MODE_DISPLAY: - tool_bar_type = NAVI_BAR_TYPE_SELECT; +static void _on_btn_save_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + MSG_MAIN_HIGH("Btn Save clicked"); - break; - default: - MSG_MAIN_ERROR("Unhandled mode : %d", mode); - tool_bar_type = NAVI_BAR_TYPE_EMPTY; + Ivug_MainView *pMainView = (Ivug_MainView *)data; + + _on_mainview_save(pMainView); +} - break; +static void _on_btn_nearby_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + MSG_MAIN_HIGH("Btn AllShare clicked"); +} + +static void _on_btn_edit_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + MSG_MAIN_HIGH("Btn Edit clicked"); + + Ivug_MainView *pMainView = (Ivug_MainView *)data; + + _on_mainview_edit(pMainView); +} + +/* + Used for only view type is select +*/ +static void _on_btn_selectok_clicked(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + Ivug_MainView *pMainView = (Ivug_MainView *)data; + IV_ASSERT(pMainView != NULL); + + MSG_MAIN_HIGH("Select OK."); + + app_control_h service = NULL; + int retcode = app_control_create(&service); + if (retcode != APP_CONTROL_ERROR_NONE) { + MSG_MAIN_HIGH("app_control_create failed"); + if (service != NULL) + app_control_destroy(service); + return; } - MSG_MAIN_MED("Mode=%d Slide=%d ToolBar=%s", mode, slide_type, szType[tool_bar_type]); + retcode = app_control_add_extra_data(service, "Result", "Ok"); + if (retcode != APP_CONTROL_ERROR_NONE) { + MSG_MAIN_HIGH("app_control_add_extra_data failed"); + } + ug_send_result(gGetUGHandle(), service); + + app_control_destroy(service); + + DESTROY_ME(); - return tool_bar_type; } +/* Video editor can start when video exist in camera folder and 3gp file format */ +bool ivug_is_editable_video_file(char *filepath) +{ + MSG_UTIL_MED("path = %s", filepath); + + /*if(strncmp(filepath, PATH_CAMERA_LOCAL, strlen(PATH_CAMERA_LOCAL)) == 0 + || strncmp(filepath, PATH_CAMERA_SDCARD, strlen(PATH_CAMERA_SDCARD)) == 0)*/ + { + int retcode = -1; + + char *type = NULL; + char *ext = NULL; + + ext = strrchr(filepath, '.'); + if (ext != NULL) { + ext++; + retcode = mime_type_get_mime_type(ext, &type); + } else { + retcode = mime_type_get_mime_type(filepath, &type); + } + + if ((type == NULL) || (retcode != MIME_TYPE_ERROR_NONE)) { + MSG_UTIL_ERROR("Fail to get mime type with return value [%d]", retcode); + return false; + } + + MSG_UTIL_MED("mime type = %s", type); + + if (strcmp(type, MIME_TYPE_MP4) == 0 || strcmp(type, MIME_TYPE_3GPP) == 0) { + free(type); + type = NULL; + return true; + } + free(type); + type = NULL; + } + return false; +} + ivug_ctrlbar -_get_ctrl_bar_type(ivug_mode mode, Media_Type slide_type) +_get_menu_type(ivug_mode mode, Media_Type slide_type, const char *filepath) { // this is temporary code. ivug_ctrlbar type = CTRL_BAR_TYPE_FILE; - static const char *szType[] = { - "[ Invalid ]", - "[ None ]", - "[Delete,Share,Set,Info]", - "[Delete,Share,Set,Info, Editor]", - "[Delete,Share,Set,Info, Trim]", - "[Share, Set, Save, Info]", - "[Delete,Share, Add tag, Slide show, Editor]", - "[Delete,Share, Add tag, Slide show, Trim]", - }; - switch (mode) { case IVUG_MODE_NORMAL: case IVUG_MODE_CAMERA: - if (slide_type == SLIDE_TYPE_IMAGE) - { - type = CTRL_BAR_TYPE_IMAGE; - } - else if (slide_type == SLIDE_TYPE_VIDEO) - { - type = CTRL_BAR_TYPE_VIDEO; - } - else if (slide_type == SLIDE_TYPE_UNKNOWN) - { - type = CTRL_BAR_TYPE_IMAGE; - } - else - { - MSG_MAIN_ERROR("Unhandled slide type : %d", slide_type); - type = CTRL_BAR_TYPE_FILE; - } - break; case IVUG_MODE_SINGLE: case IVUG_MODE_FILE: + if(ivug_is_facebook_image(filepath) == true) { - type = CTRL_BAR_TYPE_FILE; + type = CTRL_BAR_TYPE_READ_ONLY; + return type; } + type = CTRL_BAR_TYPE_FILE; break; case IVUG_MODE_DISPLAY: type = CTRL_BAR_TYPE_EMPTY; break; + case IVUG_MODE_SAVE: + type = CTRL_BAR_TYPE_SAVE; + break; case IVUG_MODE_SETAS: type = CTRL_BAR_TYPE_EMPTY; break; @@ -167,32 +195,238 @@ _get_ctrl_bar_type(ivug_mode mode, Media_Type slide_type) type = CTRL_BAR_TYPE_FILE; } - MSG_MAIN_MED("Mode=%d Slide=%d CtrlBar=%s", mode, slide_type, szType[type]); + MSG_MAIN_MED("Mode=%d Slide=%d", mode, slide_type); return type; } -void _create_main_menu(Ivug_MainView *pMainView) +static void _create_tool_menu(Ivug_MainView *pMainView) { + MSG_MAIN_HIGH("Create sub menu. pMainView(0x%08x)", pMainView); + + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); + Media_Data *mdata = ivug_medialist_get_data(mitem); + if(mdata == NULL) + { + MSG_MAIN_ERROR("mdata is NULL"); + return; + } + + if(pMainView->mode == IVUG_MODE_DISPLAY) + { +// Display only mode does not need Toolbar + return; + } + + if(pMainView->mode == IVUG_MODE_SAVE) + { + Evas_Object *btnSave; + + btnSave = EFL::create_layout(pMainView->lyContent, EDJ_PATH"/ivug-button.edj", "ivug.btn.save"); + elm_object_part_content_set(pMainView->lyContent, "ivug.swallow.btn1", btnSave); //swallow + pMainView->toolbtns.download = btnSave; + + elm_layout_signal_callback_add(btnSave, "image_click", "ivug.btn.save", _on_btn_selectok_clicked, pMainView); + } + else if(pMainView->view_by == IVUG_VIEW_BY_HIDDEN_ALL || pMainView->view_by == IVUG_VIEW_BY_HIDDEN_FOLDER) + { + Evas_Object *btnDelete; + + btnDelete = EFL::create_layout(pMainView->lyContent, EDJ_PATH"/ivug-button.edj", "ivug.btn.delete"); + elm_object_part_content_set(pMainView->lyContent, "ivug.swallow.btn1", btnDelete); //swallow + pMainView->toolbtns.del = btnDelete; + + elm_layout_signal_callback_add(btnDelete, "image_click", "ivug.btn.delete", _on_btn_delete_cb, pMainView); + + Evas_Object *btnShare; + btnShare = EFL::create_layout(pMainView->lyContent, EDJ_PATH"/ivug-button.edj", "ivug.btn.share"); + elm_object_part_content_set(pMainView->lyContent, "ivug.swallow.btn2", btnShare); //swallow + pMainView->toolbtns.share = btnShare; + + elm_layout_signal_callback_add(btnShare, "image_click", "ivug.btn.share", _on_btn_share_cb, pMainView); + + Evas_Object *btnNearBy; + + btnNearBy = EFL::create_layout(pMainView->lyContent, EDJ_PATH"/ivug-button.edj", "ivug.btn.nearby"); + elm_object_part_content_set(pMainView->lyContent, "ivug.swallow.btn3", btnNearBy); //swallow + pMainView->toolbtns.nearby = btnNearBy; + + elm_layout_signal_callback_add(btnNearBy, "image_click", "ivug.btn.nearby", _on_btn_nearby_cb, pMainView); + } + else + { + Ivug_DB_Stroge_Type storage_type = IV_STORAGE_TYPE_INTERNAL; + ivug_db_get_file_storage_type(mdata->m_handle, &storage_type); + if(storage_type != IV_STORAGE_TYPE_WEB) // not Facebook image + { + Evas_Object *btnDelete; + + btnDelete = EFL::create_layout(pMainView->lyContent, EDJ_PATH"/ivug-button.edj", "ivug.btn.delete"); + elm_object_part_content_set(pMainView->lyContent, "ivug.swallow.btn1", btnDelete); //swallow + pMainView->toolbtns.del = btnDelete; + + elm_layout_signal_callback_add(btnDelete, "image_click", "ivug.btn.delete", _on_btn_delete_cb, pMainView); + + Evas_Object *btnEdit; + + btnEdit = EFL::create_layout(pMainView->lyContent, EDJ_PATH"/ivug-button.edj", "ivug.btn.edit"); + elm_object_part_content_set(pMainView->lyContent, "ivug.swallow.btn2", btnEdit); //swallow + pMainView->toolbtns.edit = btnEdit; + + elm_layout_signal_callback_add(btnEdit, "image_click", "ivug.btn.edit", _on_btn_edit_cb, pMainView); + + Evas_Object *btnShare; + btnShare = EFL::create_layout(pMainView->lyContent, EDJ_PATH"/ivug-button.edj", "ivug.btn.share"); + elm_object_part_content_set(pMainView->lyContent, "ivug.swallow.btn3", btnShare); //swallow + pMainView->toolbtns.share = btnShare; + + elm_layout_signal_callback_add(btnShare, "image_click", "ivug.btn.share", _on_btn_share_cb, pMainView); + + Evas_Object *btnNearBy; + + btnNearBy = EFL::create_layout(pMainView->lyContent, EDJ_PATH"/ivug-button.edj", "ivug.btn.nearby"); + elm_object_part_content_set(pMainView->lyContent, "ivug.swallow.btn4", btnNearBy); //swallow + pMainView->toolbtns.nearby = btnNearBy; + + elm_layout_signal_callback_add(btnNearBy, "image_click", "ivug.btn.nearby", _on_btn_nearby_cb, pMainView); + + } + else // Facebook image + { + Evas_Object *btnShare; + + btnShare = EFL::create_layout(pMainView->lyContent, EDJ_PATH"/ivug-button.edj", "ivug.btn.share"); + elm_object_part_content_set(pMainView->lyContent, "ivug.swallow.btn1", btnShare); //swallow + pMainView->toolbtns.share = btnShare; + + elm_layout_signal_callback_add(btnShare, "image_click", "ivug.btn.share", _on_btn_share_cb, pMainView); + + Evas_Object *btnSave; + + btnSave = EFL::create_layout(pMainView->lyContent, EDJ_PATH"/ivug-button.edj", "ivug.btn.save"); + elm_object_part_content_set(pMainView->lyContent, "ivug.swallow.btn2", btnSave); //swallow + pMainView->toolbtns.download = btnSave; + + elm_layout_signal_callback_add(btnSave, "image_click", "ivug.btn.save", _on_btn_save_cb, pMainView); + } + } +} + +static void _delete_tool_menu(Ivug_MainView *pMainView) +{ + if (pMainView->toolbtns.nearby ) + { + evas_object_del(pMainView->toolbtns.nearby); + pMainView->toolbtns.nearby = NULL; + } + + if (pMainView->toolbtns.more ) + { + evas_object_del(pMainView->toolbtns.more); + pMainView->toolbtns.more = NULL; + } + + if (pMainView->toolbtns.share ) + { + evas_object_del(pMainView->toolbtns.share); + pMainView->toolbtns.share = NULL; + } + + if (pMainView->toolbtns.download ) + { + evas_object_del(pMainView->toolbtns.download); + pMainView->toolbtns.download = NULL; + } + + if (pMainView->toolbtns.del ) + { + evas_object_del(pMainView->toolbtns.del); + pMainView->toolbtns.del = NULL; + } + +} + +void _update_toolbuttons(Ivug_MainView *pMainView) +{ + +/* + |------------------| + |elm_navigation_bar| + |------------------| + | | + | | + | | + | | + |------------------| +*/ + + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); + Media_Data *mdata = ivug_medialist_get_data(mitem); + if(mdata == NULL) + { + MSG_MAIN_ERROR("mdata is NULL"); + return; + } + + MSG_MAIN_HIGH("Update toolbutton. mdata=0x%08x", mdata); + if(pMainView->mode == IVUG_MODE_DISPLAY) { - Evas_Object *btn_save = ivug_button_add(pMainView->navi_bar, "naviframe/toolbar/default", - IDS_SAVE, NULL, on_btn_selectok_clicked, pMainView); - elm_object_item_part_content_set(pMainView->navi_it, "toolbar_button1", btn_save); + return; + } + + ivug_ctrlbar ctrl_bar_type = _get_menu_type(pMainView->mode, mdata->slide_type, mdata->filepath); + + if (pMainView->ctrl_bar_type == CTRL_BAR_TYPE_UNDEFINED ) + { + MSG_MAIN_HIGH("Creating ctrlbar"); + pMainView->ctrl_bar_type = ctrl_bar_type; + _create_tool_menu(pMainView); } else { - pMainView->btn_more = ivug_button_add(pMainView->navi_bar, "naviframe/more/default", - NULL, NULL, on_btn_more_clicked, pMainView); - elm_object_item_part_content_set(pMainView->navi_it, "toolbar_more_btn", pMainView->btn_more); + if(pMainView->ctrl_bar_type != ctrl_bar_type) + { + MSG_MAIN_HIGH("Ctrl bar type changed. %d->%d", pMainView->ctrl_bar_type, ctrl_bar_type); + pMainView->ctrl_bar_type = ctrl_bar_type; + _delete_tool_menu(pMainView); + _create_tool_menu(pMainView); + } + } + + Data_State state = ivug_mediadata_get_file_state(mdata); + if(state == DATA_STATE_ERROR + || state == DATA_STATE_NO_PERMISSION) + { + MSG_MAIN_HIGH("slide state is invalid %d", state); + if(pMainView->toolbtns.share) + { + _disable_button(pMainView->toolbtns.share); + } + + if(pMainView->toolbtns.download) + { + _disable_button(pMainView->toolbtns.download); + } + + return; + } + //else + { + if(state == DATA_STATE_LOADED) + { + if(pMainView->toolbtns.share) + { + _enable_button(pMainView->toolbtns.share); + } + + if(pMainView->toolbtns.download) + { + _enable_button(pMainView->toolbtns.download); + } - pMainView->btn_share = ivug_button_add(pMainView->navi_bar, "naviframe/toolbar/left", - IDS_SHARE, NULL, on_btn_share_clicked, pMainView); - elm_object_item_part_content_set(pMainView->navi_it, "toolbar_button1", pMainView->btn_share); - Evas_Object *btn_del = ivug_button_add(pMainView->navi_bar, "naviframe/toolbar/right", - IDS_DELETE, NULL, on_btn_delete_clicked, pMainView); - elm_object_item_part_content_set(pMainView->navi_it, "toolbar_button2", btn_del); + } } } diff --git a/main/src/view/ivug-main-view-toolbar.h b/main/src/view/ivug-main-view-toolbar.h index 0321dc4..bf23872 100755 --- a/main/src/view/ivug-main-view-toolbar.h +++ b/main/src/view/ivug-main-view-toolbar.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_MAIN_VIEW_TOOLBAR_H__ #define __IVUG_MAIN_VIEW_TOOLBAR_H__ @@ -21,16 +22,12 @@ /* Get ctrl/tool bar type from slide type. */ -ivug_ctrlbar _get_ctrl_bar_type(ivug_mode mode, Media_Type slide_type); -ivug_toolbar _get_tool_bar_type(ivug_mode mode, Media_Type slide_type ); - -Evas_Object *_create_ctrl_bar(Evas_Object *parent); -Evas_Object *_create_tool_bar(Evas_Object *parent); - -void _change_close_to_details(Ivug_MainView *pMainView); -void _change_details_to_close(Ivug_MainView *pMainView); +ivug_ctrlbar _get_menu_type(ivug_mode mode, Media_Type slide_type); -void _create_main_menu(Ivug_MainView *pMainView); +/* + Enable / Disable buttons on tool bar +*/ +void _update_toolbuttons(Ivug_MainView *pMainView); #endif // __IVUG_MAIN_VIEW_TOOLBAR_H__ diff --git a/main/src/view/ivug-main-view.cpp b/main/src/view/ivug-main-view.cpp index 5cf621d..eeef419 100755 --- a/main/src/view/ivug-main-view.cpp +++ b/main/src/view/ivug-main-view.cpp @@ -1,71 +1,69 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 // ug_destroy_me, ug_send_result -#include -#include -#include // Key event -#include // round +* Copyright (c) 2000-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 "ivug-common.h" #include "ivug-parameter.h" - #include "ivug-main-view.h" #include "ivug-main-view-toolbar.h" #include "ivug-main-view-menu.h" - +#include "ivug-photocam.h" #include "ivug-filter.h" - #include "ivug-ext-ug.h" - +#include "ivug-db.h" #include "ivug-util.h" -#include "ivug-medialist.h" #include "ivug-media.h" - #include "ivug-popup.h" -#include "ivug-selectioninfo.h" - -#include "ivug-slider-item.h" -#include "ivug-slider.h" - -#include "ivug-setas-view.h" #include "ivug-name-view.h" -#include "ivug-details-view.h" - #include "ivug-listpopup.h" #include "ivug-slideshow.h" - - +#include "ivug-thumblist.h" #include "ivug-ext-ug.h" - -#include "ivug-drm-common.h" #include "EFLUtil.h" - - #include "ivug-image.h" - +#include "ivug-decolayer.h" +#include "ivug-comment.h" +#include "ivug-language-mgr.h" +#include "ivug-file-info.h" #include "ivug-main-view-priv.h" +#include "ivug-popup.h" -#undef HIDE_INDICATOR // For testing. -#define TEST_MOUSE_EVENT +extern "C" int app_control_send_terminate_request(app_control_h service); #define DEFAULT_THUMBNAIL_PATH IMAGE_PATH"/T01_Nocontents_broken.png" #define LONGTAP_TIMEOUT (2.0) // 2secs +#define ABS(x) ((x) < 0 ? -(x) : (x)) + +typedef enum { + LONGTAP_ENDED, + LONGTAP_CANCELED, +} longtap_state; + +#undef LOG_LVL +#define LOG_LVL (DBG_MSG_LVL_HIGH | DBG_MSG_LVL_DEBUG) + +#undef LOG_CAT +#define LOG_CAT "IV-MAIN-VIEW" + // EDJE #define IVUG_MAIN_EDJ EDJ_PATH"/ivug-main.edj" /////////////////////////////////////////////////////////////////////////////////////////////////// @@ -74,50 +72,149 @@ static bool _destory_slideshow_and_ug(Ivug_MainView *pMainView, int state, bool bMmc_out); static void _on_slideshow_finished(void *data, Evas_Object *obj, void *event_info); -void _update_title(Ivug_MainView *pMainView) +#ifdef USE_THUMBLIST +static void _on_receive_mouse_down (void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _on_receive_mouse_up (void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _thumb_realized_cb(void *data, Evas_Object *obj, void *event_info); +#endif + +static void _update_check_title(Ivug_MainView *pMainView) { -#define MAX_TITLE_LEN 256 + char buf[64] = {0,}; + snprintf(buf, 64, GET_STR(IDS_PD_SELECTED), pMainView->total_selected); + elm_layout_text_set(pMainView->select_bar, "elm.text.title", buf); +} - static char title[MAX_TITLE_LEN]; +static void +_check_changed_cb(void *data, Evas_Object *obj, void *event_info) +{ + Ivug_MainView *pMainView = (Ivug_MainView *)data; + Eina_Bool state = elm_check_state_get(obj); + MSG_MAIN_HIGH("Check %d", state); - Media_Item *mitem = ivug_slider_get_item(pMainView->slider); + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); Media_Data *mdata = ivug_medialist_get_data(mitem); + bool isSupported = ivug_is_supported_file_type(mdata->filepath); - if (mdata == NULL) - { + /* Return only if caller is "ug-gallery-efl" */ + if ((pMainView->media_type != IVUG_MEDIA_TYPE_ALL) && (isSupported == false)) { + elm_check_state_set(obj, !state); + ivug_notification_create(IDS_UNKOWN_FORMAT); + MSG_MAIN_HIGH("Unsupported File"); + return; + } + + if (state == true) { + pMainView->selected_path_list = eina_list_append(pMainView->selected_path_list,mdata->filepath); + pMainView->total_selected++; + evas_object_color_set(obj,255,255,255,255); + elm_check_state_set(obj, EINA_TRUE); + } else { + pMainView->selected_path_list = eina_list_remove(pMainView->selected_path_list,mdata->filepath); + if ((pMainView->total_selected-1)>=0) { + pMainView->total_selected--; + } + evas_object_color_set(obj,128,138,137,255); + elm_check_state_set(obj, EINA_FALSE); + } + _update_check_title(pMainView); +} + + +void _update_favorite(Ivug_MainView *pMainView) +{ + bool isFavorite = false; + + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); + Media_Data *mdata = ivug_medialist_get_data(mitem); + if (mdata == NULL) { MSG_MAIN_ERROR("slider data is NULL"); return; } - if (pMainView->view_by == IVUG_VIEW_BY_FOLDER - || pMainView->view_by == IVUG_VIEW_BY_ALL - || pMainView->view_by == IVUG_VIEW_BY_PLACES) - { - snprintf(title, sizeof(title), "%d/%d", - mdata->index + 1, - ivug_medialist_get_count(pMainView->mList)); //get title. + if (pMainView->bShowMenu == true) { + elm_object_disabled_set(pMainView->btn_favorite, EINA_FALSE); + Evas_Object *btn = elm_object_part_content_get(pMainView->btn_favorite, "elm.swallow.content"); + elm_object_disabled_set(btn, EINA_FALSE); + edje_object_signal_emit(_EDJ(btn), "image,normal", "prog"); } - else if(mdata->fileurl != NULL) - { - const char* filename = ivug_get_filename(mdata->fileurl); - if(filename) - { - snprintf(title, sizeof(title), "%s", filename); - } + + ivug_mediadata_get_favorite(mdata, &isFavorite); + Evas_Object *btn = NULL; + if (isFavorite) { + btn = elm_object_part_content_get(pMainView->btn_favorite, "elm.swallow.content"); + MSG_MAIN_HIGH("image,on,effect"); + edje_object_signal_emit(_EDJ(btn), "image,on,effect", "prog"); + } else { + btn = elm_object_part_content_get(pMainView->btn_favorite, "elm.swallow.content"); + MSG_MAIN_HIGH("image,off,effect"); + edje_object_signal_emit(_EDJ(btn), "image,off,effect", "prog"); } - else - { - MSG_MAIN_ERROR("set Title error"); +} + +static void _on_btn_favorite_cb(void *data, Evas_Object *obj, void *event_info) +{ + MSG_MAIN_HIGH("Btn Favorite clicked"); + + Ivug_MainView *pMainView = (Ivug_MainView *)data; + + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); + if (mitem == NULL) { + MSG_MAIN_HIGH("current item was removed"); + return; } - IV_ASSERT(pMainView->navi_bar != NULL); + ivug_main_view_del_hide_timer(pMainView); + + Media_Data *mdata = ivug_medialist_get_data(mitem); + + bool isFavorite = false; + ivug_mediadata_get_favorite(mdata, &isFavorite); - MSG_MAIN_HIGH("Update title : %s", title); + isFavorite = !isFavorite; - elm_object_item_text_set(pMainView->navi_it, title); + if (ivug_mediadata_set_favorite(mdata, isFavorite) == false) { + MSG_MAIN_ERROR("Error!. Set favorite for ID=%s", uuid_getchar(mdata->mediaID)); + } else { + if (isFavorite) { + Evas_Object *btn = elm_object_part_content_get(pMainView->btn_favorite, "elm.swallow.content"); + MSG_MAIN_HIGH("image,on,effect"); + edje_object_signal_emit(_EDJ(btn), "image,on,effect", "prog"); + } else { + Evas_Object *btn = elm_object_part_content_get(pMainView->btn_favorite, "elm.swallow.content"); + MSG_MAIN_HIGH("image,off,effect"); + edje_object_signal_emit(_EDJ(btn), "image,off,effect", "prog"); + + if (pMainView->view_by == IVUG_VIEW_BY_FAVORITES) { + ivug_medialist_delete_item(pMainView->mList, mitem, false); + + mitem = ivug_medialist_get_current_item(pMainView->mList); + if (mitem == NULL) { + MSG_MAIN_HIGH("Current item is NULL"); + ivug_main_view_destroy(pMainView); + elm_exit(); + return; + } + ivug_main_view_start(pMainView, NULL); + } + } + } + ivug_main_view_set_hide_timer(pMainView); } +static Evas_Object* _create_favorite_button(Evas_Object *parent) +{ + Evas_Object *focusButton = elm_button_add(parent); + elm_object_style_set(focusButton, "focus"); + + Evas_Object *btnlayout = EFL::create_layout(parent, EDJ_PATH"/ivug-button.edj", "ivug.btn.favorite"); + edje_object_signal_emit(_EDJ(btnlayout), "image,dim", "prog"); + elm_object_part_content_set(focusButton, "elm.swallow.content", btnlayout); + evas_object_show(focusButton); + + return focusButton; +} static void _on_longpress_popup_selected(void *data, Evas_Object *obj, void *event_info) @@ -130,8 +227,9 @@ _on_longpress_popup_selected(void *data, Evas_Object *obj, void *event_info) int response = (int)event_info; - Media_Item *mtiem = ivug_slider_get_item(pMainView->slider); - Media_Data *mdata = ivug_medialist_get_data(mtiem); + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); + Media_Data *mdata = ivug_medialist_get_data(mitem); + if (mdata == NULL) { MSG_MAIN_ERROR("slider data is NULL"); @@ -141,31 +239,185 @@ _on_longpress_popup_selected(void *data, Evas_Object *obj, void *event_info) if(response == LPPOPUP_RESPONSE_COPY) { //get current file path. - - char *path = NULL; int len = 0; // This Will add to the article char buf[IVUG_MAX_FILE_PATH_LEN] = {0,}; - { - path = mdata->filepath; len = strlen(mdata->filepath)+strlen("file://")+1; snprintf(buf, IVUG_MAX_FILE_PATH_LEN, "file://%s", mdata->filepath); } if (len < IVUG_MAX_FILE_PATH_LEN) { - MSG_MAIN_HIGH("file path = %s, file url =%s", path, buf); - elm_cnp_selection_set(pMainView->layout, ELM_SEL_TYPE_CLIPBOARD, ELM_SEL_FORMAT_IMAGE, buf, sizeof(buf)); - _ivug_selectioninfo_create(pMainView, IDS_COPIED_TO_CLIPBOARD); + MSG_MAIN_HIGH("CNP : Buf=\"%s\" len=%d", buf, strlen(buf)); + + Eina_Bool bRet; + + bRet = elm_cnp_selection_set(pMainView->layout, ELM_SEL_TYPE_CLIPBOARD, ELM_SEL_FORMAT_IMAGE, buf, strlen(buf)); + + if (bRet == EINA_FALSE) + { + MSG_MAIN_ERROR("CNP Selection is failed"); + } + else + { + MSG_MAIN_HIGH("CNP Selection is Success"); + } } else { - MSG_MAIN_ERROR("slider file path is too long"); + MSG_MAIN_ERROR("slider file path is too long. len=%d", len); +// No need failed???? + } + } +} + +static Eina_Bool _on_btn_back_clicked(void *data, Elm_Object_Item *it) +{ + Ivug_MainView *pMainView = (Ivug_MainView *)data; + IV_ASSERT(pMainView != NULL); + + MSG_MAIN_WARN("Back key from mainview(0x%08x) pressed", pMainView); + + if (pMainView->mode == IVUG_MODE_SELECT) { + app_control_h service; + + Eina_List *l = NULL; + void *data = NULL; + char **files = NULL; + int i = 0 ; + int count_selected = eina_list_count(pMainView->selected_path_list); + files = (char **)malloc(sizeof(char *) * count_selected); + if (!files) { + MSG_MAIN_WARN("failed to allocate memory"); + return EINA_FALSE; + } + if (pMainView->selected_path_list) { + EINA_LIST_FOREACH(pMainView->selected_path_list, l, data) { + files[i] = strdup((char *)data); + i++; + } + } + app_control_create(&service); + if(pMainView->view_by == IVUG_VIEW_BY_FAVORITES) { + app_control_add_extra_data_array(service, "Selected index fav", (const char **)files, count_selected); + } else { + app_control_add_extra_data_array(service, "Selected index", (const char **)files, count_selected); + } + ug_send_result(gGetUGHandle(), service); + app_control_destroy(service); + free(files); + } + + if(pMainView->bPreventBackKey == true) + { + MSG_MAIN_WARN("Back key is blocked"); + return EINA_FALSE; + } + + if(pMainView->transcoding_thread) + { + ecore_thread_cancel(pMainView->transcoding_thread); + pMainView->transcoding_thread = NULL; + } + +#ifdef USE_THUMBLIST + if (pMainView->thumbs ) + { + if (ivug_thumblist_get_edit_mode(pMainView->thumbs) == EINA_TRUE ) + { + ivug_thumblist_set_edit_mode(pMainView->thumbs, EINA_FALSE); + return EINA_FALSE; + } + } +#endif + + if (pMainView->bTestMode) // Test mode. + { + MSG_MAIN_HIGH("Test Mode. Removing all views. pMainView=0x%08x", pMainView); + _on_remove_main_view_ui(pMainView); + + DESTROY_ME(); + + return EINA_TRUE; + } + + if (pMainView->mode != IVUG_MODE_SAVE) + { + if(pMainView->bStandAlone == true) + { + MSG_MAIN_HIGH("appsvc hide"); + + elm_win_lower((Evas_Object *)ug_get_window()); + + return EINA_FALSE; + } + + _on_remove_main_view_ui(pMainView); + + } + else // Mode is save view + { + MSG_MAIN_HIGH("Select Cancel"); + + _on_remove_main_view_ui(pMainView); + + //send result to caller + int ret = 0; + app_control_h service = NULL; + ret = app_control_create(&service); + if (ret != APP_CONTROL_ERROR_NONE) { + MSG_MAIN_HIGH("app_control_create failed"); + return EINA_FALSE; + } + + ret = app_control_add_extra_data(service, "Result", "Cancel"); + if (ret != APP_CONTROL_ERROR_NONE) { + MSG_MAIN_HIGH("app_control_add_extra_data()... [0x%x]", ret); + app_control_destroy(service); + return EINA_FALSE; } + ug_send_result(gGetUGHandle(), service); + app_control_destroy(service); } + + DESTROY_ME(); + +// ivug_set_indicator_overlap_mode(false); + + return EINA_TRUE; + +} + +static void _on_cancel_btn_clicked(void *data, Evas_Object *obj, const char * s, const char *dest) +{ + MSG_IMAGEVIEW_ERROR("cancel btn clicked"); + _on_btn_back_clicked(data, NULL); } +static void _on_save_btn_clicked(void *data, Evas_Object *obj, const char * s, const char *dest) +{ + MSG_IMAGEVIEW_ERROR("save btn clicked"); + int ret = 0; + app_control_h service = NULL; + ret = app_control_create(&service); + if (ret != APP_CONTROL_ERROR_NONE) { + MSG_MAIN_HIGH("app_control_create failed"); + return; + } + + ret = app_control_add_extra_data(service, "Result", "Save"); + if (ret != APP_CONTROL_ERROR_NONE) { + MSG_MAIN_HIGH("app_control_add_extra_data()... [0x%x]", ret); + app_control_destroy(service); + return; + } + ug_send_result(gGetUGHandle(), service); + + app_control_destroy(service); + DESTROY_ME(); + elm_exit(); +} static Eina_Bool _on_key_down(void *user_data, int type, void *event) { @@ -178,19 +430,16 @@ static Eina_Bool _on_key_down(void *user_data, int type, void *event) Ecore_Event_Key *key_event = (Ecore_Event_Key *) event; - if (!strcmp(key_event->keyname, KEY_END)) - { - MSG_IMAGEVIEW_HIGH("Bakc(End) key"); - } - else if (!strcmp(key_event->keyname, KEY_SELECT)) - { + if (!strcmp(key_event->keyname, "XF86Stop")) { + MSG_IMAGEVIEW_HIGH("Back(End) key"); + if (pMainView->ssHandle) { + ivug_ss_stop(pMainView->ssHandle); + } + } else if (!strcmp(key_event->keyname, "XF86Home")) { MSG_IMAGEVIEW_HIGH("Home key"); - } - else if (!strcmp(key_event->keyname, KEY_POWER)) - { + } else if (!strcmp(key_event->keyname, "XF86PowerOff")) { MSG_IMAGEVIEW_HIGH("Power key"); - if ( pMainView->ssHandle ) - { + if (pMainView->ssHandle) { ivug_ss_stop(pMainView->ssHandle); } } @@ -213,7 +462,7 @@ static Eina_Bool _on_exit_timer_expired(void *data) return ECORE_CALLBACK_CANCEL; } -static void _on_resize(void *data, Evas *e, Evas_Object *obj, void *event_info) +static void _on_layout_resize(void *data, Evas_Object *obj, void *event_info ) { Ivug_MainView *pMainView = static_cast(data); IV_ASSERT(pMainView != NULL); @@ -225,19 +474,58 @@ static void _on_resize(void *data, Evas *e, Evas_Object *obj, void *event_info) so invoke it manually */ if(pMainView->ssHandle) + { ivug_ss_resize(pMainView->ssHandle); - MSG_MAIN_HIGH("MainView resized geomtery XYWH(%d,%d,%d,%d) Rotate=%d", x, y, w, h, gGetRotationDegree()); + // Need return???? + } + + int rot = gGetRotationDegree(); + MSG_MAIN_HIGH("MainView resized geomtery XYWH(%d,%d,%d,%d) Rotate=%d", x, y, w, h, rot); if(pMainView->ctx_popup) // when rotated context popup will disapper at EFL { - evas_object_del(pMainView->ctx_popup); - pMainView->ctx_popup = NULL; - } + if(ivug_listpopup_context_get_rotate_enable(pMainView->ctx_popup) == false) + { + evas_object_del(pMainView->ctx_popup); + pMainView->ctx_popup = NULL; + } + else + { + Evas_Object *win = (Evas_Object *)ug_get_window(); + elm_win_screen_size_get(win, NULL, NULL, &w, &h); - ivug_slider_zoom_reset(pMainView->slider); + if ((rot == 270) || (rot == 90)) { + ivug_listpopup_context_move(pMainView->ctx_popup, (h / 2), w); + } else { + ivug_listpopup_context_move(pMainView->ctx_popup, (w / 2), h); + } + } + } - pMainView->zoom_level = 1; - elm_slider_value_set(pMainView->zoom_slider, 1.0); + if (pMainView->pSliderNew ) + { + MSG_HIGH("Inslide sn layout "); + ivug_slider_new_change_view_size(pMainView->pSliderNew, w, h); + Evas_Object *sn_layout = ivug_slider_new_get_layout(pMainView->pSliderNew); + if(rot == 270 || rot == 90) + { + MSG_HIGH("Rotation portrait"); + if (pMainView->mode == IVUG_MODE_SELECT) { + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "set_select_view_landscape", "glsurface"); + } else { + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "set_landscape", "glsurface"); + } + } + else + { + MSG_HIGH("Rotation Landscape"); + if (pMainView->mode == IVUG_MODE_SELECT) { + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "set_select_view_portrait", "glsurface"); + } else { + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "set_portrait", "glsurface"); + } + } + } } static bool _destory_slideshow_and_ug(Ivug_MainView *pMainView, @@ -248,7 +536,7 @@ static bool _destory_slideshow_and_ug(Ivug_MainView *pMainView, evas_object_smart_callback_del_full(ivug_ss_object_get(pMainView->ssHandle), "slideshow,finished", _on_slideshow_finished, pMainView); - ivug_allow_lcd_off(); +// ivug_allow_lcd_off(); /*from gallery ablum*/ if(bMmc_out) { @@ -267,14 +555,14 @@ static bool _destory_slideshow_and_ug(Ivug_MainView *pMainView, } -void _ivug_main_on_mmc_state_changed(keynode_t* node, void *data) +void _ivug_main_on_mmc_state_changed(void *data) { Ivug_MainView *pMainView = (Ivug_MainView *)data; if (NULL == pMainView) { return; } - if ( pMainView->ext_ug ) + if (pMainView->ext_ug ) { MSG_IMAGEVIEW_HIGH("Extern UG is running"); } @@ -291,339 +579,166 @@ void _ivug_main_on_mmc_state_changed(keynode_t* node, void *data) } } -static void _show_zoom_icon(Ivug_MainView *pMainView) +void _update_main_view(Ivug_MainView *pMainView) { - ivug_ret_if(!pMainView); + IV_ASSERT(pMainView != NULL); - MSG_MAIN_ERROR("_show_zoom_icon"); + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); + Media_Data *mdata = ivug_medialist_get_data(mitem); - /*unsigned int zoom_level = ivug_slider_zoom_level_get(pMainView->slider); - if(zoom_level == 0) - { - edje_object_signal_emit(_EDJ(pMainView->empty_layout), "elm,state,btn_zoom_out,disable","elm"); - edje_object_signal_emit(_EDJ(pMainView->empty_layout), "elm,state,btn_zoom_in,enable","elm"); + if (mdata == NULL) { + MSG_MAIN_ERROR("mdata is NULL"); + return; } - else if(zoom_level == ZOOM_LEVEL_MAX) - { - edje_object_signal_emit(_EDJ(pMainView->empty_layout), "elm,state,btn_zoom_in,disable","elm"); - edje_object_signal_emit(_EDJ(pMainView->empty_layout), "elm,state,btn_zoom_out,enable","elm"); + + if (pMainView->bShowMenu == true) { + _update_toolbuttons(pMainView); } - else*/ - { - edje_object_signal_emit(_EDJ(pMainView->empty_layout), "elm,state,btn_zoom_out,enable","elm"); - edje_object_signal_emit(_EDJ(pMainView->empty_layout), "elm,state,btn_zoom_in,enable","elm"); + + if (pMainView->btn_favorite) { + _update_favorite(pMainView); } - edje_object_signal_emit(_EDJ(pMainView->empty_layout), "elm,state,zoom_slider,show","elm"); + return; } -static void _hide_zoom_icon(Ivug_MainView *pMainView) +static void +_on_slider_playburst_icon_clicked(void *data, Evas_Object *obj, void *event_info) { - ivug_ret_if(!pMainView); + MSG_MAIN_HIGH("Play Burst icon Clicked"); + IV_ASSERT(data != NULL); - MSG_MAIN_ERROR("_hide_zoom_icon"); + Ivug_MainView *pMainView = (Ivug_MainView *)data; - edje_object_signal_emit(_EDJ(pMainView->empty_layout), "elm,state,btn_zoom_out,hide","elm"); - edje_object_signal_emit(_EDJ(pMainView->empty_layout), "elm,state,btn_zoom_in,hide","elm"); - edje_object_signal_emit(_EDJ(pMainView->empty_layout), "elm,state,zoom_slider,hide","elm"); + _on_play_continous_shot(pMainView); } -static void _update_main_view(Ivug_MainView *pMainView) +static void +_on_slider_playvideo_icon_clicked(void *data, Evas_Object *obj, const char *source, const char *emission) { - IV_ASSERT(pMainView != NULL); + MSG_MAIN_HIGH("Play Video icon Clicked"); + IV_ASSERT(data != NULL); - Media_Item *mitem = ivug_slider_get_item(pMainView->slider); - Media_Data *mdata = ivug_medialist_get_data(mitem); + Ivug_MainView *pMainView = (Ivug_MainView *)data; - if(mdata == NULL) + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); + Media_Data *mdata = ivug_medialist_get_data(mitem); + if (mdata == NULL) { - MSG_MAIN_ERROR("mdata is NULL"); + MSG_MAIN_ERROR("slide data is NULL"); return; } - PERF_CHECK_BEGIN(LVL6, "Set menu title"); - - _update_title(pMainView); - - PERF_CHECK_END(LVL6, "Set menu title"); - - slide_state_t state = ivug_slider_get_state(pMainView->slider); - - if(mdata->slide_type == SLIDE_TYPE_IMAGE && mdata->bIsDRMContent == false && state != SLIDE_STATE_ERROR) - { - _show_zoom_icon(pMainView); - } - else { - _hide_zoom_icon(pMainView); + MSG_MAIN_HIGH("Launching video player"); + ivug_ext_launch_videoplayer(mdata->filepath); + //ivug_ext_launch_default(mdata->filepath, APP_CONTROL_OPERATION_VIEW, NULL, NULL, NULL); } - return; } static void -_ivug_main_drm_popup_purchase_cb(void *data, Evas_Object *obj, void *event_info) +_on_slider_clicked(void *data, Evas_Object *obj, void *event_info) { - int response_id = (int)event_info; IV_ASSERT(data != NULL); Ivug_MainView *pMainView = (Ivug_MainView *)data; + MSG_MAIN_HIGH("On Slider Clicked. pMainView=0x%08x", pMainView); - MSG_MAIN_HIGH("DRM popup selected : %d", response_id); - - if(response_id == POPUP_RESPONSE_CANCEL) - { - MSG_MAIN_HIGH("cancel selected"); -#ifdef USE_SLIDE_SKIP - MSG_MAIN_HIGH("shift again"); - ivug_slider_skip(pMainView->slider); -#else - ivug_slider_load(pMainView->slider); -#endif - } - else +#ifdef USE_THUMBLIST + if (pMainView->thumbs) { - MSG_MAIN_HIGH("unlock process"); - - Media_Item *mitem = ivug_slider_get_item(pMainView->slider); - Media_Data *mdata = ivug_medialist_get_data(mitem); - - char *url = ivug_drm_get_right_url(mdata->filepath); - if (url != NULL) - { - MSG_MAIN_HIGH("path = %s, right url : %s", mdata->filepath, url); - ivug_ext_launch_browser(url); - free(url); - } - else + if(ivug_thumblist_get_edit_mode(pMainView->thumbs) == EINA_TRUE) { - MSG_MAIN_ERROR("ivug_drm_get_right_url error. path = %s", mdata->filepath); + MSG_WARN("Ignore click when Edit mode"); + return; } } +#endif + +FIXME("Bug. menu bar is blinking when stopping slide show.") +if (pMainView->mode != IVUG_MODE_SELECT && pMainView->mode != IVUG_MODE_EMAIL) { + if (pMainView->bShowMenu) { + ivug_main_view_hide_menu_bar(pMainView); + } else { + ivug_main_view_show_menu_bar(pMainView); + } } +} -static void -_ivug_main_drm_popup_response_cb(void *data, Evas_Object *obj, void *event_info) + +static Eina_Bool _ivug_long_press_timer_expired(void *data) { - int response_id = (int)event_info; - IV_ASSERT(data != NULL); + ivug_retv_if(!data, ECORE_CALLBACK_CANCEL); Ivug_MainView *pMainView = (Ivug_MainView *)data; - MSG_MAIN_HIGH("DRM popup selected : %d", response_id); + MSG_SETAS_HIGH("long press timer expired"); - if(response_id == POPUP_RESPONSE_CANCEL) - { - MSG_MAIN_HIGH("cancel selected"); -#ifdef USE_SLIDE_SKIP - MSG_MAIN_HIGH("shift again"); - ivug_slider_skip(pMainView->slider); -#else - ivug_slider_load(pMainView->slider); -#endif + pMainView->popup_timer = NULL; - } - else + if(pMainView->bLongpressEnd == false) // still press { - ivug_slider_load(pMainView->slider); + if(pMainView->longpress_popup) + { + IVUG_DEBUG_WARNING("copy popup remove"); + evas_object_del(pMainView->longpress_popup); + pMainView->longpress_popup = NULL; + } } -} -void _ivug_main_view_drm_process(drm_constraints result, int info, void *data) + return ECORE_CALLBACK_CANCEL; +} + +static void +_on_slider_long_press_start(void *data, Evas_Object *obj, void *event_info) { -#define MAX_DBUFFER_SIZE 2048 + Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) event_info; + ivug_ret_if(!data||!p); - ivug_ret_if(!data); Ivug_MainView *pMainView = (Ivug_MainView *)data; - char string[MAX_DBUFFER_SIZE] = ""; - Media_Item *mitem = ivug_slider_get_item(pMainView->slider); - Media_Data *mdata = ivug_medialist_get_data(mitem); - slide_state_t state = ivug_slider_get_state(pMainView->slider); - + int x = p->x; + int y = p->y; + + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); + Media_Data *mdata = ivug_medialist_get_data(mitem); if(mdata == NULL) { MSG_MAIN_ERROR("mdata is NULL"); return; } - switch(result) - { - case IVUG_DRM_RESULT_LIMITED: - MSG_MAIN_HIGH("Limited"); - snprintf(string, sizeof(string), - IDS_DRM_UNLOCK, - ecore_file_file_get(mdata->filepath)); - ivug_2btn_popup_show(pMainView->layout, NULL, string, _ivug_main_drm_popup_purchase_cb, pMainView); - break; - case IVUG_DRM_RESULT_UNLIMITED: - MSG_MAIN_HIGH("Unlimited"); - if(state != SLIDE_STATE_LOADED) - { - ivug_slider_load(pMainView->slider); - } - break; - case IVUG_DRM_RESULT_COUNT: - MSG_MAIN_HIGH("Count = %d", info); - if(info > 2) - { - ivug_slider_load(pMainView->slider); - } - else if(info == 2) - { - snprintf(string, sizeof(string), - IDS_DRM_COUNT_BASED_OPEN_MANY, 2, - ecore_file_file_get(mdata->filepath)); - ivug_2btn_popup_show(pMainView->layout, NULL, string, _ivug_main_drm_popup_response_cb, pMainView); - } - else - { - snprintf(string, sizeof(string), - IDS_DRM_COUNT_BASED_OPEN_ONE, - ecore_file_file_get(mdata->filepath)); - ivug_2btn_popup_show(pMainView->layout, NULL, string, _ivug_main_drm_popup_response_cb, pMainView); - } - break; - case IVUG_DRM_RESULT_INTERVAL_DAYS: - MSG_MAIN_HIGH("Interval days = %d", info); - snprintf(string, sizeof(string), - IDS_DRM_INTERVAL_BASED_DAYS, - ecore_file_file_get(mdata->filepath), - info); - ivug_2btn_popup_show(pMainView->layout, NULL, string, _ivug_main_drm_popup_response_cb, pMainView); - break; - case IVUG_DRM_RESULT_ACCUMULATED: - MSG_MAIN_HIGH("Accumulated time = %d", info); - break; - case IVUG_DRM_RESULT_DATETIME: - case IVUG_DRM_RESULT_TIMED_COUNT: - case IVUG_DRM_RESULT_SYSTEM: - ivug_slider_load(pMainView->slider); - break; - default : - MSG_MAIN_WARN("Unknown resule : %d", result); - ivug_slider_load(pMainView->slider); - break; - } -} - - -static void -_on_slider_clicked(void *data, Evas_Object *obj, void *event_info) -{ - MSG_MAIN_HIGH("Main View Clicked"); - IV_ASSERT(data != NULL); - - Ivug_MainView *pMainView = (Ivug_MainView *)data; - - if(pMainView->bClickPrevent == true) + /*if (ivug_mediadata_get_file_state(mdata) != DATA_STATE_LOADED) { - pMainView->bClickPrevent = false; + MSG_MAIN_ERROR("Long pressed. but state is not ready"); return; - } - - if (pMainView->bShowMenu) - { - ivug_main_view_hide_menu_bar(pMainView); - } - else - { - ivug_main_view_show_menu_bar(pMainView); - } - -} - -static void -_on_slider_icon_clicked(void *data, Evas_Object *obj, void *event_info) -{ - MSG_MAIN_HIGH("Main View Video icon Clicked"); - IV_ASSERT(data != NULL); - - Ivug_MainView *pMainView = (Ivug_MainView *)data; + }*/ - Media_Item *mitem = ivug_slider_get_item(pMainView->slider); - Media_Data *mdata = ivug_medialist_get_data(mitem); - if (mdata == NULL) + if(mdata->slide_type != SLIDE_TYPE_IMAGE) { - MSG_MAIN_ERROR("slide data is NULL"); + MSG_MAIN_ERROR("Long pressed. but it is not image"); return; } -// "Add tag" in video player shows only when launching from gallery. - else if (pMainView->mode == IVUG_MODE_FILE || pMainView->mode == IVUG_MODE_DISPLAY || pMainView->mode == IVUG_MODE_SINGLE ) - { - MSG_MAIN_HIGH("Launching simple video player. Mode=%d", pMainView->mode); - ivug_ext_launch_videoplayer_simple(mdata->filepath); - } - else - { - MSG_MAIN_HIGH("Launching normal video player"); - ivug_ext_launch_videoplayer(mdata->filepath); - } - -} - -static Eina_Bool _ivug_long_press_timer_expired(void *data) -{ - ivug_retv_if(!data, ECORE_CALLBACK_CANCEL); - - Ivug_MainView *pMainView = (Ivug_MainView *)data; - - MSG_SETAS_HIGH("long press timer expired"); - - pMainView->popup_timer = NULL; - - if(pMainView->bLongpressEnd == false) // still press - { - if(pMainView->longpress_popup) - { - IVUG_DEBUG_WARNING("copy popup remove"); - evas_object_del(pMainView->longpress_popup); - pMainView->longpress_popup = NULL; - } - } - - - return ECORE_CALLBACK_CANCEL; -} - -static void -_on_slider_long_press_start(void *data, Evas_Object *obj, void *event_info) -{ - Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) event_info; - ivug_ret_if(!data||!p); - - Ivug_MainView *pMainView = (Ivug_MainView *)data; - - MSG_MAIN_HIGH("LongPressed XY(%d,%d)", p->x, p->y); - - int x = p->x; - int y = p->y; - - if ( ivug_slider_get_state(pMainView->slider) != SLIDE_STATE_LOADED) + bool bUseExtMenu = !(ivug_is_agif(mdata->filepath)); //agif cannot use manual tag + if(pMainView->mode == IVUG_MODE_DISPLAY) { - MSG_MAIN_ERROR("Long pressed. but state is not ready"); - return; + bUseExtMenu = false; //disable manualtag at display mode } - Media_Item *mitem = ivug_slider_get_item(pMainView->slider); - Media_Data *mdata = ivug_medialist_get_data(mitem); - if(mdata == NULL) + if(pMainView->longpress_popup) { - MSG_MAIN_ERROR("mdata is NULL"); - return; + evas_object_del(pMainView->longpress_popup); } - if(mdata->slide_type != SLIDE_TYPE_IMAGE) - { - MSG_MAIN_ERROR("Long pressed. but it is not image"); - return; - } + MSG_MAIN_HIGH("LongPressed. Show popup XY(%d,%d)", x, y); - pMainView->longpress_popup = ivug_longpress_popup_show(pMainView->slider, x, y, _on_longpress_popup_selected, pMainView); + pMainView->longpress_popup = ivug_longpress_popup_show(pMainView->layout, x, y, + bUseExtMenu, _on_longpress_popup_selected, pMainView); if (pMainView->longpress_popup == NULL) { IVUG_DEBUG_WARNING("long press popup create failed"); @@ -667,801 +782,1113 @@ _on_slider_long_press_end(void *data, Evas_Object *obj, void *event_info) } } -static void _on_remove_main_view_ui(Ivug_MainView *pMainView) +#ifdef USE_THUMBLIST +static void _on_receive_mouse_down (void *data, Evas *e, Evas_Object *obj, void *event_info) { - IV_ASSERT(pMainView != NULL); - - ivug_main_view_del_hide_timer(pMainView); - - // Slider should be removed before mList is freed. - if ( pMainView->slider ) - { - evas_object_del(pMainView->slider); - pMainView->slider = NULL; - } - - if ( pMainView->pCropView ) - { - MSG_MAIN_HIGH("Crop View Destroy"); - ivug_crop_view_destroy(pMainView->pCropView); - pMainView->pCropView = NULL; - } - - if ( pMainView->pNameView ) - { - MSG_MAIN_HIGH("Name View Destroy"); - ivug_name_view_destroy(pMainView->pNameView); - pMainView->pNameView = NULL; - } - - if ( pMainView->pSetAsView ) - { - MSG_MAIN_HIGH("SetAS View Destroy"); - ivug_setas_view_destroy(pMainView->pSetAsView); - pMainView->pSetAsView = NULL; + Ivug_MainView *pMainView = (Ivug_MainView *)data; + if (NULL == pMainView) { + return; } - if ( pMainView->pDetailsView ) + /*if(pMainView->thumbs && ivug_thumblist_get_edit_mode(pMainView->thumbs) == EINA_TRUE) { - MSG_MAIN_HIGH("Details View Destroy"); + return; + }*/ - ivug_details_view_destroy(pMainView->pDetailsView); - pMainView->pDetailsView = NULL; - } + ivug_main_view_del_hide_timer(pMainView); + MSG_MAIN_HIGH("Event layer clicked : %s %s Layer=%d",evas_object_name_get(obj), evas_object_type_get(obj), evas_object_layer_get(obj)); +} - if(pMainView->layout) // Remove topmost parent in main view. - { - evas_object_del(pMainView->layout); - pMainView->layout = NULL; +static void _on_receive_mouse_up (void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Ivug_MainView *pMainView = (Ivug_MainView *)data; + if (NULL == pMainView) { + return; } - if(pMainView->empty_layout) + /*if(pMainView->thumbs && ivug_thumblist_get_edit_mode(pMainView->thumbs) == EINA_TRUE) { - evas_object_del(pMainView->empty_layout); - pMainView->empty_layout = NULL; - } + return; + }*/ - if ( pMainView->mList ) - { - MSG_MAIN_HIGH("Remove media list"); - ivug_medialist_del(pMainView->mList); // ivug_medialist_del() is not working on destroy cb. - pMainView->mList = NULL; - } + ivug_main_view_set_hide_timer(pMainView); } - +#endif static void -_on_slider_item_changed(void *data, Evas_Object *obj, void *event_info) +_on_menu_state_changed(void *data, Evas_Object *obj, const char *emission, const char *source) { - IV_ASSERT(data != NULL); - - Ivug_MainView *pMainView = (Ivug_MainView *)data; - Slide_Item *sitem = (Slide_Item *)event_info; - - MSG_MAIN_HIGH("Image slider changed callback. "); - - if ( sitem == NULL || sitem->mitem == NULL) - { - // There is no item existed. terminate UG - MSG_MAIN_ERROR("No item is remained. exit UG. Sitem=0x%08x", sitem); - _on_remove_main_view_ui(pMainView); - DESTROY_ME(); + Ivug_MainView *pMainView = static_cast(data); + if (NULL == pMainView) { return; } - if(pMainView->selectioninfo != NULL) - { - MSG_MAIN_MED("Delete small noti"); - evas_object_del(pMainView->selectioninfo); - pMainView->selectioninfo = NULL; - } + MSG_MAIN_HIGH("Receive %s %s", emission, source); - if (pMainView->longpress_popup) + if (strncmp(emission, "menu,show,finished", strlen(emission)) == 0 ) { - MSG_MAIN_MED("Delete copy popup"); - evas_object_del(pMainView->longpress_popup); - pMainView->longpress_popup = NULL; + //enable menu } - - drm_data_t *drm_data = ivug_slider_item_check_drm_constraint(sitem); - if(drm_data) + else { - _ivug_main_view_drm_process(drm_data->constraints, drm_data->data, pMainView); - free(drm_data); + //disable menu } +} -// Update Main View. - if ( pMainView->bShowMenu == true ) - { - PERF_CHECK_BEGIN(LVL5, "Update main view"); - _update_main_view(pMainView); - PERF_CHECK_END(LVL5, "Update main view"); + +/////////////////////////////////////////////////////////////////////////////////////////////////// +// +// External APIs +// + +static char * _ivug_get_folder_name(char *filepath) +{ + char *folder = ivug_get_directory(filepath); + if (folder == NULL) { + return NULL; } - Media_Data *mdata = ivug_medialist_get_data(ivug_slider_item_data_get(sitem)); + char *name = NULL; + char *result = NULL; - if(mdata->bIsDRMContent == true && ivug_drm_get_forwarding_info(mdata->filepath) == false) + name = strrchr(folder, '/'); + if ((name != NULL) && ((name+1) != NULL) ) { - elm_object_disabled_set(pMainView->btn_share, EINA_TRUE); + result = strdup(name + 1); + free(folder); + return result; } - pMainView->zoom_level = 1; - elm_slider_value_set(pMainView->zoom_slider, 1.0); + free(folder); - ivug_slider_zoom_reset(pMainView->slider); + return NULL; } - static void -_on_slider_item_state_changed(void *data, Evas_Object *obj, void *event_info) +_on_slideshow_finished(void *data, Evas_Object *obj, void *event_info) { -// Only called center item state is changed/ - MSG_MAIN_HIGH("Image slider item state changed callback. "); - ivug_ret_if(!data); + MSG_MAIN_HIGH("_on_slideshow_finished"); + IV_ASSERT(data != NULL); Ivug_MainView *pMainView = (Ivug_MainView *)data; - Slide_Item *sitem = (Slide_Item *)event_info; - - if ( sitem == NULL || sitem->mitem == NULL) - { - // There is no item existed. terminate UG - MSG_MAIN_ERROR("No item is remained. exit UG"); - DESTROY_ME(); - + int ss_state = (int)event_info; + bool bDestoryed = false; + bDestoryed = _destory_slideshow_and_ug(pMainView, ss_state, false); + if (bDestoryed) { return; } - if(sitem->state == SLIDE_STATE_DOWNLOAD_FAILED) - { - MSG_MAIN_ERROR("Download failed"); - _ivug_selectioninfo_create(pMainView, IDS_DOWNLOAD_FAILED); - } + Media_Item * item = NULL; + pMainView->isSliding = false; -} + if (pMainView->ssHandle) { + item = ivug_ss_item_get(pMainView->ssHandle); + ivug_ss_delete(pMainView->ssHandle); + pMainView->ssHandle = NULL; + if (gGetDestroying() == true) { + MSG_MAIN_WARN("ug is destroying"); + return; + } -static void _on_receive_mouse_down (void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - Ivug_MainView *pMainView = (Ivug_MainView *)data; - if (NULL == pMainView) { - return; + if (item) { + ivug_medialist_set_current_item(pMainView->mList, item); + ivug_main_view_start(pMainView, NULL); +// ivug_slider_new_move_item(pMainView->pSliderNew, item); + } } - ivug_main_view_del_hide_timer(pMainView); +#ifdef USE_THUMBLIST + if (pMainView->thumbs) { + Image_Object *img = NULL; + if (item) { + img = ivug_thumblist_find_item_by_data(pMainView->thumbs, item); + } - MSG_MAIN_HIGH("Event layer clicked : %s %s Layer=%d",evas_object_name_get(obj), evas_object_type_get(obj), evas_object_layer_get(obj)); -} + if (img == NULL) { + MSG_MAIN_ERROR("Cannot find item"); + TODO(" Reload data again!.") + } else { + MSG_MAIN_HIGH("pMainView->bSetThmByUser : %d", pMainView->bSetThmByUser); -#ifdef TEST_MOUSE_EVENT -static void _on_receive_mouse_down1 (void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - char *name = (char *)data; + pMainView->bSetThmByUser = true; + ivug_thumblist_select_item(pMainView->thumbs, img); + } + } +#endif + + ivug_slider_new_reload(pMainView->pSliderNew); + ivug_main_view_show_menu_bar(pMainView); - MSG_MAIN_HIGH("Event layer mouse down : %s %s Layer=%d",evas_object_name_get(obj), name, evas_object_layer_get(obj)); } -static void _on_receive_mouse_up1 (void *data, Evas *e, Evas_Object *obj, void *event_info) +#ifdef USE_THUMBLIST +static void _ivug_main_view_thumbnail_cb(media_handle media, const char *path, void *data) { - char *name = (char *)data; + MSG_SDATA_ERROR("_ivug_main_view_thumbnail_cb, path = %s", path); - MSG_MAIN_HIGH("Event layer mouse up : %s %s Layer=%d",evas_object_name_get(obj), name, evas_object_layer_get(obj)); -} + Media_Data *mdata = (Media_Data *)data; -#endif + mdata->thumbnail_path = strdup(path); + ivug_db_cancel_thumbnail(mdata->thumb_handle); -static void _on_receive_mouse_up (void *data, Evas *e, Evas_Object *obj, void *event_info) + mdata->thumb_handle = NULL; +} + +static void +_thumb_realized_cb(void *data, Evas_Object *obj, void *event_info) { - Ivug_MainView *pMainView = (Ivug_MainView *)data; - if (NULL == pMainView) { + Media_Item *mitem = (Media_Item *)event_info; + if(mitem == NULL) + { + MSG_SDATA_ERROR("data already removed"); return; } + Media_Data *mdata = ivug_medialist_get_data(mitem); - ivug_main_view_set_hide_timer(pMainView); + if(strcmp(mdata->thumbnail_path, DEFAULT_THUMBNAIL_PATH) == 0) + { + if(mdata->thumb_handle == NULL) + { + mdata->thumb_handle = ivug_db_create_thumbnail(mdata->m_handle, _ivug_main_view_thumbnail_cb, (void *)mdata); + } + } } static void -_on_menu_state_changed(void *data, Evas_Object *obj, const char *emission, const char *source) +_edit_item_selected_cb(void *data, Evas_Object *obj, void *event_info) { - Ivug_MainView *pMainView = static_cast(data); - if (NULL == pMainView) { - return; - } - - MSG_MAIN_HIGH("Receive %s %s", emission, source); + Ivug_MainView *pMainView = (Ivug_MainView *)data; - if ( strncmp(emission, "menu,show,finished", strlen(emission)) == 0 ) + if(ivug_thumblist_checked_item_is(pMainView->thumbs) == EINA_FALSE) { - elm_object_disabled_set(pMainView->ctrl_bar, EINA_FALSE); + edje_object_signal_emit(_EDJ(pMainView->lyContent), "elm,state,hide,toolbtn", "user"); } else { - evas_object_hide(pMainView->ctrl_bar); - elm_object_disabled_set(pMainView->ctrl_bar, EINA_TRUE); + edje_object_signal_emit(_EDJ(pMainView->lyContent), "elm,state,show,toolbtn1", "user"); } } - -static void _win_profile_changed_cb(void *data, Evas_Object * obj, void *event_info) +static void +_thumb_mode_changed_cb(void *data, Evas_Object *obj, void *event_info) { Ivug_MainView *pMainView = (Ivug_MainView *)data; - IV_ASSERT(pMainView != NULL); - const char *profile = elm_config_profile_get(); + const char *mode = (const char *)event_info; - if (!strcmp(profile, "desktop")) - { // desktop mode + if (strcmp(mode, "edit") == 0 ) + { + ivug_main_view_del_hide_timer(pMainView); + + if(ivug_thumblist_checked_item_is(pMainView->thumbs) == EINA_FALSE) + { + edje_object_signal_emit(_EDJ(pMainView->lyContent), "elm,state,hide,toolbtn", "user"); + } + } + else if (strcmp(mode, "list") == 0 ) + { + ivug_main_view_set_hide_timer(pMainView); - // hide naviframe's back key - elm_object_item_part_content_set(pMainView->navi_it, "prev_btn", NULL); + edje_object_signal_emit(_EDJ(pMainView->lyContent), "elm,state,show,toolbtn", "user"); } else - { // mobile - - // show naviframe's back key - elm_object_item_part_content_set(pMainView->navi_it, "prev_btn", pMainView->back_btn); + { + MSG_MAIN_WARN("Unknown Mode. %s", mode); } -} - -/////////////////////////////////////////////////////////////////////////////////////////////////// -// -// External APIs -// +} +#endif -static char * _ivug_get_folder_name(char *filepath) +static Eina_Bool _on_hide_timer_expired(void *data) { - char *folder = ecore_file_dir_get(filepath); + ivug_retv_if(!data, ECORE_CALLBACK_CANCEL); - char *name = NULL; + Ivug_MainView *pMainView = (Ivug_MainView *)data; - name = strrchr(folder, '/'); - if ( (name != NULL) && ((name+1) != NULL) ) - { - return strdup(name + 1); - } + pMainView->hide_timer = NULL; - return NULL; -} + ivug_main_view_hide_menu_bar(pMainView); + return ECORE_CALLBACK_CANCEL; +} -bool -ivug_main_view_set_list(Ivug_MainView *pMainView, ivug_parameter *ivug_param) +static const char *_getIvugMode(ivug_mode mode) { - MSG_MAIN_HIGH("Load media list."); + static const char *szMode[] = { + "IVUG_MODE_INVAILD", + "IVUG_MODE_NORMAL", + "IVUG_MODE_SINGLE", + "IVUG_MODE_DISPLAY", + "IVUG_MODE_SAVE", + "IVUG_MODE_FILE", + "IVUG_MODE_CAMERA", + "IVUG_MODE_SETAS", + "IVUG_MODE_SLIDESHOW", + "IVUG_MODE_SELECT", + }; + + return szMode[mode]; - PERF_CHECK_BEGIN(LVL2, "create media list"); - if (NULL == pMainView) { - return false; - } +} - Media_List *mlist = ivug_medialist_create(); - if (mlist == NULL) - { - MSG_MAIN_ERROR("Creating media list failed"); - return false; - } - PERF_CHECK_END(LVL2, "create media list"); +static const char *_getIvugViewBy(ivug_view_by view_by) +{ + static const char *szViewBy[] = { + "IVUG_VIEW_BY_INVAILD", + "IVUG_VIEW_BY_FILE", + "IVUG_VIEW_BY_ALL", + "IVUG_VIEW_BY_HIDDEN_ALL", + "IVUG_VIEW_BY_FAVORITES", + "IVUG_VIEW_BY_TAG", + "IVUG_VIEW_BY_FOLDER", + "IVUG_VIEW_BY_HIDDEN_FOLDER", + "IVUG_VIEW_BY_PLACES", + "IVUG_VIEW_BY_TIMELINE", + "IVUG_VIEW_BY_DIRECTORY", + }; + + + return szViewBy[view_by]; +} - PERF_CHECK_BEGIN(LVL2, "create filter"); +static inline void +_naviframe_back_cb(void *data, Evas_Object *obj, void *event_info) +{ + MSG_MAIN_HIGH("Popping Navivar"); - Filter_struct *filter = ivug_param_create_filter(ivug_param); - if (filter == NULL) - { - MSG_MAIN_ERROR("Creating filter failed"); - ivug_medialist_del(mlist); - return false; - } + elm_naviframe_item_pop(obj); +} - //do not use ivug_param->view_by after here - PERF_CHECK_END(LVL2, "create filter"); +Ivug_MainView * +ivug_main_view_create(Evas_Object* parent, ivug_parameter *param) +{ + IV_ASSERT(parent != NULL); + IV_ASSERT(param != NULL); - Media_Item *current = NULL; - Media_Data *pData = NULL; + MSG_MAIN_HIGH("Creating main view. Parent=0x%08x Mode=%s ViewBy=%s", parent, _getIvugMode(param->mode), _getIvugViewBy(param->view_by)); + PERF_CHECK_BEGIN(LVL2, "Create layout"); - { - PERF_CHECK_BEGIN(LVL2, "media list load"); - current = ivug_medialist_load(mlist, filter); - PERF_CHECK_END(LVL2, "media list load"); - } +//create main view layout + Ivug_MainView *pMainView = (Ivug_MainView *)calloc(1, sizeof(Ivug_MainView) ); + IV_ASSERT(pMainView != NULL); - if(current == NULL) - { - MSG_MAIN_ERROR("Media list load failed"); - goto LOAD_LIST_FAILED; - } +// Set default value + pMainView->parent = parent; + pMainView->mode = param->mode; + pMainView->view_by = param->view_by; + pMainView->bStandAlone = param->bStandalone; + pMainView->bShowMenu = true; + pMainView->hide_count = -1; + pMainView->media_type = param->media_type; - pData = ivug_medialist_get_data(current); - if(pData == NULL) - { - MSG_MAIN_ERROR("current data is NULL"); - goto LOAD_LIST_FAILED; - } - if(pData->fileurl == NULL) - { - MSG_MAIN_ERROR("current fileurl is NULL"); - goto LOAD_LIST_FAILED; + Evas_Object *layout = EFL::create_layout(parent, IVUG_MAIN_EDJ, "mainview,selected"); + if (layout == NULL) { //if failed + MSG_MAIN_ERROR("main layout create failed"); + free(pMainView); + return NULL; } + pMainView->layout = layout; + evas_object_name_set(pMainView->layout, "Main Layout"); - if(filter->view_by == IVUG_VIEW_BY_ALL) - { - pMainView->album_name = strdup(IDS_ALL_ALBUMS); - } - else if(filter->view_by == IVUG_VIEW_BY_FOLDER) - { - /* - media_handle m_handle = ivug_db_get_folder_handle(ecore_file_dir_get(ivug_param->filepath)); - if(m_handle == NULL) - { - MSG_IVUG_FATAL("View by Folder. but media handle is NULL" ); - return NULL; - } + PERF_CHECK_END(LVL2, "Create layout"); - pMainView->album_name = ivug_db_get_folder_name(m_handle); - */ - pMainView->album_name = _ivug_get_folder_name(ivug_param->filepath); - if(pMainView->album_name == NULL) - { - pMainView->album_name = strdup(IDS_NO_NAME); - } - } + edje_object_signal_callback_add(_EDJ(pMainView->layout), + "menu,hide,finished", + "edc", + _on_menu_state_changed, + (void *)pMainView); - pMainView->mList = mlist; - PERF_CHECK_BEGIN(LVL2, "media list set"); + edje_object_signal_callback_add(_EDJ(pMainView->layout), + "menu,show,finished", + "edc", + _on_menu_state_changed, + (void *)pMainView); + +// Navigation bar + PERF_CHECK_BEGIN(LVL2, "elm_naviframe_add"); - if(!ivug_slider_set_medialist(pMainView->slider, mlist, current)) { - MSG_MAIN_ERROR("ivug_slider_set_medialist error"); - goto LOAD_LIST_FAILED; + pMainView->navi_bar = elm_naviframe_add(layout); + if (pMainView->navi_bar == NULL) { + MSG_MAIN_ERROR("navigation bar failed"); + ivug_main_view_destroy(pMainView); + return NULL; } + evas_object_name_set(pMainView->navi_bar, "Main naviframe"); - PERF_CHECK_END(LVL2, "media list set"); + elm_naviframe_prev_btn_auto_pushed_set(pMainView->navi_bar, EINA_FALSE); - ivug_data_filter_delete(filter); + eext_object_event_callback_add(pMainView->navi_bar, EEXT_CALLBACK_BACK, _naviframe_back_cb, pMainView); - return true; + if (pMainView->mode != IVUG_MODE_SETAS && pMainView->mode != IVUG_MODE_SELECT && pMainView->mode != IVUG_MODE_HIDDEN) { + eext_object_event_callback_add(pMainView->navi_bar, EEXT_CALLBACK_MORE, on_btn_more_clicked, pMainView); + } -LOAD_LIST_FAILED: - if(filter) - ivug_data_filter_delete(filter); - if(mlist) - ivug_medialist_del(mlist); - pMainView->mList = NULL; - return false; +// Layout life cycle is controlled by application explictily. +// Because for ex, "Add tag" view is pushed, then previous view is removed. so app control life cycle directly. --> Not true +// elm_naviframe_content_preserve_on_pop_set(pMainView->navi_bar, EINA_TRUE); + +if (pMainView->mode != IVUG_MODE_SETAS) { +#if 1 +#ifdef USE_CUSTOM_STYLE + elm_object_theme_set(pMainView->navi_bar, gGetSystemTheme() ); +#endif + const char *profile = elm_config_profile_get(); + if (!strcmp(profile,"mobile")) { + elm_object_style_set(pMainView->navi_bar, "ivug-main/default"); + } else if (!strcmp(profile,"desktop")) { + elm_object_style_set(pMainView->navi_bar, "ivug-main/default"); + } else { + MSG_MAIN_ERROR("Unknown profile : %s", profile); + } +#endif } + elm_object_part_content_set(layout, "mainview.navibar", pMainView->navi_bar); //swallow -static void -_on_slideshow_finished(void *data, Evas_Object *obj, void *event_info) -{ - MSG_MAIN_HIGH("_on_slideshow_finished"); - IV_ASSERT(data != NULL); + PERF_CHECK_END(LVL2, "elm_naviframe_add"); - Ivug_MainView *pMainView = (Ivug_MainView *)data; - int ss_state = (int)event_info; - bool bDestoryed = false; - bDestoryed = _destory_slideshow_and_ug(pMainView, ss_state, false); - if (bDestoryed) { - return; + PERF_CHECK_BEGIN(LVL2, "elm_layout_add"); + + pMainView->lyContent = EFL::create_layout(layout, IVUG_MAIN_EDJ, "navi_content"); + if (pMainView->lyContent == NULL) { + IVUG_DEBUG_WARNING("layout create failed"); + ivug_main_view_destroy(pMainView); + return NULL; } - Media_Item * item = NULL; + evas_object_name_set(pMainView->lyContent, "Navi content"); + PERF_CHECK_END(LVL2,"elm_layout_add"); - if(pMainView->ssHandle) - { +#ifdef BACK_BTN + PERF_CHECK_BEGIN(LVL2, "ivug_button_add"); + pMainView->back_btn = elm_button_add(pMainView->navi_bar); + elm_object_style_set(pMainView->back_btn, "naviframe/end_btn/default"); + PERF_CHECK_END(LVL2, "ivug_button_add"); +#endif - item = ivug_ss_item_get(pMainView->ssHandle); - ivug_ss_delete(pMainView->ssHandle); - pMainView->ssHandle = NULL; + PERF_CHECK_BEGIN(LVL2, "Init slider"); - if(item) - ivug_slider_set_item(pMainView->slider, item, SLIDE_INSTANTLY); + pMainView->pSliderNew = ivug_slider_new_init(pMainView->layout, pMainView); + if (pMainView->pSliderNew == NULL) { + MSG_MAIN_ERROR("Unable to get Slider Layout"); + return NULL; } + Evas_Object *sn_layout = ivug_slider_new_get_layout(pMainView->pSliderNew); + if (pMainView->mode == IVUG_MODE_SELECT) { + int rot = gGetRotationDegree(); + if(rot == 270 || rot == 90) { + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "set_select_view_landscape", "glsurface"); + } else { + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "set_select_view_portrait", "glsurface"); + } + } - ivug_slider_load(pMainView->slider); - ivug_main_view_show_menu_bar(pMainView); -} + elm_object_part_content_set(pMainView->lyContent, "mainview.slider", sn_layout); //swallow -static void -_ivug_main_view_zoom_out_cb(void *data, Evas_Object *obj, const char *emission, const char *source) -{ - ivug_ret_if(!obj); - ivug_ret_if(!data); + PERF_CHECK_END(LVL2, "Init slider"); - MSG_MAIN_ERROR("_ivug_main_view_zoom_out_cb"); + PERF_CHECK_BEGIN(LVL2, "elm_naviframe_item_push"); + if (pMainView->mode != IVUG_MODE_SETAS && pMainView->mode != IVUG_MODE_SELECT) { + pMainView->navi_it = elm_naviframe_item_push(pMainView->navi_bar, NULL, NULL, NULL, pMainView->lyContent, NULL); - Ivug_MainView *pMainView = (Ivug_MainView *)data; +// Invisble title. + elm_naviframe_item_title_enabled_set(pMainView->navi_it, EINA_FALSE, EINA_FALSE); + elm_object_item_signal_emit(pMainView->navi_it, "elm,state,toolbar,instant_close", ""); + } else { + pMainView->navi_it = elm_naviframe_item_push(pMainView->navi_bar, "Select", NULL, NULL, pMainView->lyContent, NULL); + elm_naviframe_item_title_enabled_set(pMainView->navi_it, EINA_TRUE, EINA_FALSE); - double d_value = elm_slider_value_get(pMainView->zoom_slider); + Evas_Object *pCancelbtn = elm_button_add(pMainView->navi_bar); + elm_object_style_set(pCancelbtn, "naviframe/title_left"); + elm_object_domain_translatable_part_text_set(pCancelbtn, "default", textdomain(NULL), GET_STR(IDS_CANCEL_CAPS)); + elm_object_signal_callback_add(pCancelbtn, "elm,action,click", "", _on_cancel_btn_clicked, (void *)pMainView); + elm_object_item_part_content_set(pMainView->navi_it, "title_left_btn", pCancelbtn); + evas_object_show(pCancelbtn); - MSG_MAIN_HIGH("d_value = %lf", d_value); + Evas_Object *pSavebtn = elm_button_add(pMainView->navi_bar); + elm_object_style_set(pSavebtn, "naviframe/title_right"); + elm_object_domain_translatable_part_text_set(pSavebtn, "default", textdomain(NULL), GET_STR(IDS_DONE_CAPS)); + elm_object_signal_callback_add(pSavebtn, "elm,action,click", "", _on_save_btn_clicked, (void *)pMainView); + elm_object_item_part_content_set(pMainView->navi_it, "title_right_btn", pSavebtn); + evas_object_show(pSavebtn); + } - int value = (int)round(d_value); + elm_naviframe_item_pop_cb_set(pMainView->navi_it, _on_btn_back_clicked, pMainView); //pop�� ���� �ݹ� ���. - MSG_MAIN_HIGH("value = %d", value); + PERF_CHECK_END(LVL2, "elm_naviframe_item_push"); + PERF_CHECK_BEGIN(LVL2, "add event handler"); - if(value > 1) - { - ivug_main_view_del_hide_timer(pMainView); +// PERF_CHECK_BEGIN(LVL2, "Register callback"); +// 3ms + if (pMainView->mode != IVUG_MODE_SETAS && pMainView->mode != IVUG_MODE_HIDDEN) { + elm_object_signal_callback_add(sn_layout, "play", "elm", _on_slider_playvideo_icon_clicked, pMainView); + evas_object_smart_callback_add(sn_layout, "slider,playburst", _on_slider_playburst_icon_clicked, pMainView); - ivug_slider_zoom_out(pMainView->slider); - pMainView->zoom_level--; - elm_slider_value_set(pMainView->zoom_slider, value-1.0); + evas_object_smart_callback_add(sn_layout, "slider,clicked", _on_slider_clicked, pMainView); + evas_object_smart_callback_add(sn_layout, "slider,longpress,start", _on_slider_long_press_start, pMainView); + evas_object_smart_callback_add(sn_layout, "slider,longpress,end", _on_slider_long_press_end, pMainView); - ivug_main_view_set_hide_timer(pMainView); + evas_object_event_callback_add(sn_layout, EVAS_CALLBACK_MOUSE_DOWN, _on_slider_mouse_down, pMainView); + evas_object_event_callback_add(sn_layout, EVAS_CALLBACK_MOUSE_MOVE, _on_slider_mouse_moved, pMainView); + evas_object_event_callback_add(sn_layout, EVAS_CALLBACK_MOUSE_UP, _on_slider_mouse_up, pMainView); } +// PERF_CHECK_END(LVL2, "Register callback"); - _show_zoom_icon(pMainView); -} - -static void -_ivug_main_view_zoom_in_cb(void *data, Evas_Object *obj, const char *emission, const char *source) -{ - ivug_ret_if(!obj); - ivug_ret_if(!data); - - MSG_MAIN_ERROR("_ivug_main_view_zoom_in_cb"); - - Ivug_MainView *pMainView = (Ivug_MainView *)data; + if ((pMainView->view_by != IVUG_VIEW_BY_FILE) + && (pMainView->view_by != IVUG_VIEW_BY_INVAILD)) { + PERF_CHECK_BEGIN(LVL2, "Create thumblist"); - double d_value = elm_slider_value_get(pMainView->zoom_slider); +#ifdef USE_THUMBLIST + pMainView->thumbs = ivug_thumblist_add(pMainView->layout); - MSG_MAIN_HIGH("d_value = %lf", d_value); + if (pMainView->thumbs == NULL) { + MSG_MAIN_ERROR("Thumblist creation failed"); + ivug_main_view_destroy(pMainView); + return NULL; + } - int value = (int)round(d_value); + elm_object_theme_set(pMainView->thumbs, gGetSystemTheme() ); + evas_object_name_set(pMainView->thumbs, "Thumblist"); - MSG_MAIN_HIGH("value = %d", value); +// elm_object_part_content_set(pMainView->lyContent, "thumblist", pMainView->thumbs); - if(value <= ZOOM_LEVEL_MAX) - { - ivug_main_view_del_hide_timer(pMainView); + evas_object_event_callback_add(pMainView->thumbs, EVAS_CALLBACK_MOUSE_DOWN, _on_receive_mouse_down, pMainView); + evas_object_event_callback_add(pMainView->thumbs, EVAS_CALLBACK_MOUSE_UP, _on_receive_mouse_up, pMainView); + evas_object_smart_callback_add(pMainView->thumbs, "item,realized", _thumb_realized_cb, pMainView); + evas_object_smart_callback_add(pMainView->thumbs, "changed,mode", _thumb_mode_changed_cb, pMainView); + evas_object_smart_callback_add(pMainView->thumbs, "item,edit,selected", _edit_item_selected_cb, pMainView); - ivug_slider_zoom_in(pMainView->slider); - pMainView->zoom_level++; - elm_slider_value_set(pMainView->zoom_slider, value+1.0); +#endif - ivug_main_view_set_hide_timer(pMainView); + PERF_CHECK_END(LVL2, "Create thumblist"); } - _show_zoom_icon(pMainView); -} - -static void _zoom_slider_change_cb(void *data, Evas_Object *obj, void *event_info) -{ - Ivug_MainView *pMainView = (Ivug_MainView *)data; + if (pMainView->mode == IVUG_MODE_DISPLAY) { + edje_object_signal_emit(_EDJ(pMainView->lyContent), "elm,state,enable,title_full", "user"); + } - double d_value = elm_slider_value_get(pMainView->zoom_slider); + evas_object_smart_callback_add((Evas_Object *)ug_get_window(), "wm,rotation,changed", _on_layout_resize, pMainView); - MSG_MAIN_HIGH("d_value = %lf", d_value); + pMainView->keydown_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _on_key_down, (void *)pMainView); - int value = (int)round(d_value); + { + int bx, by, bw, bh; + evas_object_geometry_get(pMainView->navi_bar, &bx, &by, &bw, &bh); - MSG_MAIN_HIGH("value = %d", value); + MSG_MAIN_HIGH("Navibar(0x%08x) Created. (%d,%d,%d,%d)", pMainView->navi_bar, bx, by, bw, bh); + } - while(pMainView->zoom_level > 0 - && pMainView->zoom_level <= ZOOM_LEVEL_MAX+1 - && value != pMainView->zoom_level) { - if(value > pMainView->zoom_level) - { - ivug_slider_zoom_in(pMainView->slider); - pMainView->zoom_level++; - } - else if(value < pMainView->zoom_level) - { - ivug_slider_zoom_out(pMainView->slider); - pMainView->zoom_level--; - } + int bx, by, bw, bh; + evas_object_geometry_get(pMainView->lyContent, &bx, &by, &bw, &bh); + + MSG_MAIN_HIGH("Content layout(0x%08x) Created. (%d,%d,%d,%d)", pMainView->lyContent, bx, by, bw, bh); } -} -static void _zoom_slider_start_cb(void *data, Evas_Object *obj, void *event_info) -{ - Ivug_MainView *pMainView = (Ivug_MainView *)data; + int bx, by, bw, bh; + evas_object_geometry_get(pMainView->layout, &bx, &by, &bw, &bh); - ivug_main_view_del_hide_timer(pMainView); -} + MSG_MAIN_HIGH("MainView Layout(0x%08x) Created. (%d,%d,%d,%d)", pMainView->layout, bx, by, bw, bh); -static void _zoom_slider_end_cb(void *data, Evas_Object *obj, void *event_info) -{ - Ivug_MainView *pMainView = (Ivug_MainView *)data; + - ivug_main_view_set_hide_timer(pMainView); -} + // creating photo cam + ivug_create_new_photocam_image(pMainView, &pMainView->photocam, "imageview_area"); + ivug_slider_new_set_photocam(pMainView->pSliderNew,pMainView->photocam); + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "set_temp_invsible", "imageview_area_temp2"); -Ivug_MainView * -ivug_main_view_create(Evas_Object* parent, ivug_mode mode, ivug_view_by view_by) -{ - IV_ASSERT(parent != NULL); + if ((pMainView->mode == IVUG_MODE_NORMAL || pMainView->mode == IVUG_MODE_CAMERA || pMainView->view_by == IVUG_VIEW_BY_FOLDER || pMainView->view_by == IVUG_VIEW_BY_ALL) + && pMainView->mode != IVUG_MODE_SETAS && pMainView->mode != IVUG_MODE_SELECT && pMainView->mode != IVUG_MODE_HIDDEN) { + pMainView->btn_favorite = _create_favorite_button(pMainView->lyContent); + evas_object_smart_callback_add(pMainView->btn_favorite, "clicked", _on_btn_favorite_cb, pMainView); + elm_object_part_content_set(pMainView->lyContent, "elm.swallow.favorite", pMainView->btn_favorite); //swallow + } +// For debugging. + DELETE_NOTIFY(pMainView->layout); - MSG_MAIN_HIGH("Creating main view. Parent=0x%08x Mode=%d ViewBy=%d", parent, mode, view_by); + PERF_CHECK_END(LVL2, "add event handler"); - PERF_CHECK_BEGIN(LVL2, "Create layout"); + return pMainView; -//create main view layout - Ivug_MainView *pMainView = (Ivug_MainView *)calloc(1, sizeof(Ivug_MainView) ); - IV_ASSERT(pMainView != NULL); +} -// Set default value - pMainView->parent = parent; - pMainView->mode = mode; - pMainView->view_by = view_by; - pMainView->bShowMenu = true; +bool +ivug_main_view_set_list(Ivug_MainView *pMainView, ivug_parameter *ivug_param) +{ + MSG_MAIN_HIGH("Load media list. pMainView=0x%08x", pMainView); - pMainView->hide_count = -1; + PERF_CHECK_BEGIN(LVL2, "create media list"); + if (NULL == pMainView) { + return false; + } - Evas_Object *layout = EFL::create_layout(parent, IVUG_MAIN_EDJ, "mainview"); - if ( layout == NULL) //if failed + Media_List *mlist = ivug_medialist_create(); + if (mlist == NULL) { - MSG_MAIN_ERROR("main layout create failed"); - free(pMainView); - return NULL; + MSG_MAIN_ERROR("Creating media list failed"); + return false; } + PERF_CHECK_END(LVL2, "create media list"); + PERF_CHECK_BEGIN(LVL2, "create filter"); - pMainView->layout = layout; - evas_object_name_set(pMainView->layout, "Main Layout"); - - PERF_CHECK_END(LVL2, "Create layout"); + Filter_struct *filter = ivug_param_create_filter(ivug_param); + if (filter == NULL) + { + MSG_MAIN_ERROR("Creating filter failed"); + ivug_medialist_del(mlist); + return false; + } - edje_object_signal_callback_add(_EDJ(pMainView->layout), - "menu,hide,finished", - "edc", - _on_menu_state_changed, - (void *)pMainView); + //do not use ivug_param->view_by after here - edje_object_signal_callback_add(_EDJ(pMainView->layout), - "menu,show,finished", - "edc", - _on_menu_state_changed, - (void *)pMainView); + PERF_CHECK_END(LVL2, "create filter"); -// Navigation bar - PERF_CHECK_BEGIN(LVL2, "elm_naviframe_add"); + Media_Item *current = NULL; + Media_Data *pData = NULL; + current = ivug_medialist_load(mlist, filter); - pMainView->navi_bar = elm_naviframe_add(layout); - if ( pMainView->navi_bar == NULL) + if(current == NULL) { - MSG_MAIN_ERROR("navigation bar failed"); - ivug_main_view_destroy(pMainView); - return NULL; + MSG_MAIN_ERROR("Media list load failed"); + goto LOAD_LIST_FAILED; } - evas_object_name_set(pMainView->navi_bar, "Main naviframe"); - -// Layout life cycle is controlled by application explictily. - elm_naviframe_content_preserve_on_pop_set(pMainView->navi_bar, EINA_TRUE); -#ifdef USE_CUSTOM_STYLE - elm_object_theme_set(pMainView->navi_bar, gGetSystemTheme() ); -#endif - const char *profile = elm_config_profile_get(); - if (!strcmp(profile,"mobile")) - { - elm_object_style_set(pMainView->navi_bar, "ivug-main/default"); - } - else if (!strcmp(profile,"desktop")) + pData = ivug_medialist_get_data(current); + if(pData == NULL) { - elm_object_style_set(pMainView->navi_bar, "ivug-main/noindicator"); + MSG_MAIN_ERROR("current data is NULL"); + goto LOAD_LIST_FAILED; } - else + //ULC changes + ivug_medialist_set_current_item(mlist, current); + //ULC changes + + if(pData->fileurl == NULL) { - MSG_MAIN_ERROR("Unknown profile : %s", profile); + MSG_MAIN_ERROR("current fileurl is NULL"); + goto LOAD_LIST_FAILED; } - elm_object_part_content_set(layout, "mainview.navibar", pMainView->navi_bar); //swallow +#ifdef USE_RESCAN_FILE_PATH_AT_LIST + { + if(strncmp(pData->fileurl, ivug_param->filepath, strlen(pData->fileurl)) != 0) + { + current = ivug_medialist_find_item_by_filename(mlist, ivug_param->filepath); + if(current == NULL) + { + MSG_MAIN_ERROR("Media list load failed, %s is not exist at list", ivug_param->filepath); + goto LOAD_LIST_FAILED; + } - PERF_CHECK_END(LVL2, "elm_naviframe_add"); + pData = ivug_medialist_get_data(current); + if(pData == NULL) + { + MSG_MAIN_ERROR("current data is NULL"); + goto LOAD_LIST_FAILED; + } + //ULC changes + ivug_medialist_set_current_item(mlist, current); + //ULC changes - PERF_CHECK_BEGIN(LVL2, "elm_layout_add"); + if(pData->fileurl == NULL) + { + MSG_MAIN_ERROR("current fileurl is NULL"); + goto LOAD_LIST_FAILED; + } + } + } +#endif - pMainView->empty_layout = EFL::create_layout(layout, IVUG_MAIN_EDJ, "navi_content"); - if (pMainView->empty_layout == NULL) + if(filter->view_by == IVUG_VIEW_BY_ALL) { - IVUG_DEBUG_WARNING("layout create failed"); - ivug_main_view_destroy(pMainView); - return NULL; + pMainView->album_name = strdup(IDS_ALL_ALBUMS); } - - evas_object_name_set(pMainView->empty_layout, "Empty layout"); - PERF_CHECK_END(LVL2,"elm_layout_add"); - - if(pMainView->view_by != IVUG_VIEW_BY_FILE && pMainView->view_by != IVUG_VIEW_BY_INVAILD) + else if(filter->view_by == IVUG_VIEW_BY_HIDDEN_ALL) { - PERF_CHECK_BEGIN(LVL2, "Create thumblist"); - + pMainView->album_name = strdup(IDS_HIDDEN); + } + else if(filter->view_by == IVUG_VIEW_BY_FOLDER) + { + TODO("it is not run!! DB problem!!!") + /* + media_handle m_handle = ivug_db_get_folder_handle(ivug_dir_get(ivug_param->filepath)); + if (m_handle == NULL) + { + MSG_IVUG_FATAL("View by Folder. but media handle is NULL" ); + return NULL; + } - PERF_CHECK_END(LVL2, "Create thumblist"); + pMainView->album_name = ivug_db_get_folder_name(m_handle); + */ + pMainView->album_name = _ivug_get_folder_name(ivug_param->filepath); + if (pMainView->album_name == NULL) { + pMainView->album_name = strdup(IDS_NO_NAME); + } } + else if(filter->view_by == IVUG_VIEW_BY_HIDDEN_FOLDER) + { + TODO("it is not run!! DB problem!!!") + /* + media_handle m_handle = ivug_db_get_folder_handle(ivug_dir_get(ivug_param->filepath)); + if (m_handle == NULL) + { + MSG_IVUG_FATAL("View by Folder. but media handle is NULL" ); + return NULL; + } -//create slider - PERF_CHECK_BEGIN(LVL2, "ivug_slider_add"); + pMainView->album_name = ivug_db_get_folder_name(m_handle); + */ + pMainView->album_name = _ivug_get_folder_name(ivug_param->filepath); + if (pMainView->album_name == NULL) { + pMainView->album_name = strdup(IDS_NO_NAME); + } + } + pMainView->mList = mlist; + PERF_CHECK_BEGIN(LVL2, "media list set"); - pMainView->slider = ivug_slider_add(pMainView->empty_layout); - if (pMainView->slider == NULL) + if(ivug_medialist_get_count(mlist) == 1) { - MSG_MAIN_ERROR("image slider create failed"); - ivug_main_view_destroy(pMainView); - return NULL; + if(ivug_param->mode == IVUG_MODE_DISPLAY) + { + ivug_slider_new_set_mode(pMainView->pSliderNew, SLIDER_MODE_SINGLE); + } + // temp code, please remove later + else if(ivug_param->view_by == IVUG_VIEW_BY_FILE) + { + ivug_slider_new_set_mode(pMainView->pSliderNew, SLIDER_MODE_SINGLE); + } } - elm_object_part_content_set(pMainView->empty_layout, "mainview.slider", pMainView->slider); //swallow - - PERF_CHECK_END(LVL2, "ivug_slider_add"); - - Evas_Object *slider = elm_slider_add(pMainView->empty_layout); - elm_slider_indicator_format_set(slider, "%1.0f"); - elm_slider_min_max_set(slider, 1, 5); - elm_slider_value_set(slider, 1); - - evas_object_smart_callback_add(slider, "changed", _zoom_slider_change_cb, pMainView); - evas_object_smart_callback_add(slider, "slider,drag,start", _zoom_slider_start_cb, pMainView); - evas_object_smart_callback_add(slider, "slider,drag,stop", _zoom_slider_end_cb, pMainView); + if (ivug_param->mode == IVUG_MODE_SELECT) { + int count = eina_list_count(ivug_param->selected_list); + pMainView->selected_path_list = NULL; + int i; + char *temp = NULL; + for (i = 0; i < count; i++) { + temp = (char *)eina_list_nth(ivug_param->selected_list, i); + if (temp) { + Media_Item *mitem = ivug_medialist_find_item_by_filename(mlist,temp); + if (mitem) { + Media_Data *mdata = ivug_medialist_get_data(mitem); + pMainView->selected_path_list = eina_list_append(pMainView->selected_path_list,mdata->filepath); + } else { + pMainView->selected_path_list = eina_list_append(pMainView->selected_path_list,temp); + } + } + } + pMainView->total_selected = ivug_param->total_selected ; + } - elm_object_part_content_set(pMainView->empty_layout, "zoom_slider_area", slider); //swallow + ivug_slider_new_set_list(pMainView->pSliderNew, mlist, current); - pMainView->zoom_slider = slider; - pMainView->zoom_level = 1; + PERF_CHECK_END(LVL2, "media list set"); - if (pMainView->mode != IVUG_MODE_DISPLAY) - { - PERF_CHECK_BEGIN(LVL2, "ivug_button_add"); - pMainView->back_btn = ivug_button_add(pMainView->navi_bar, "naviframe/end_btn/default", IDS_BACK, NULL, on_btn_back_clicked, pMainView); - PERF_CHECK_END(LVL2, "ivug_button_add"); - } - else - { - PERF_CHECK_BEGIN(LVL2, "ivug_button_add"); - pMainView->back_btn = ivug_button_add(pMainView->navi_bar, "naviframe/end_btn/default", IDS_BACK, NULL, on_btn_selectcancel_clicked, pMainView); - PERF_CHECK_END(LVL2, "ivug_button_add"); - } + return true; - PERF_CHECK_BEGIN(LVL2, "elm_naviframe_item_push"); - pMainView->navi_it = elm_naviframe_item_push(pMainView->navi_bar, NULL, pMainView->back_btn, NULL, pMainView->empty_layout, NULL); - PERF_CHECK_END(LVL2, "elm_naviframe_item_push"); +LOAD_LIST_FAILED: + if(mlist) + ivug_medialist_del(mlist); + pMainView->mList = NULL; + return false; +} - //Evas_Object *conformant = (Evas_Object *)ug_get_conformant(); - //elm_object_signal_emit(conformant, "elm,state,indicator,overlap", ""); - evas_object_smart_callback_add((Evas_Object *)ug_get_window(), "profile,changed", _win_profile_changed_cb, pMainView); +void ivug_main_view_start_slideshow(Ivug_MainView *pMainView, Eina_Bool bSlideFirst) +{ + IV_ASSERT(pMainView != NULL); - _create_main_menu(pMainView); + Media_Item *current = NULL; - PERF_CHECK_BEGIN(LVL2, "add event handler"); + // Stop animation & movie play before slideshow is started. + current = ivug_medialist_get_current_item(pMainView->mList); -// elm_object_part_content_set(layout, "mainview.slider", pMainView->slider); //swallow +// ivug_prohibit_lcd_off(); + //ivug_main_view_hide_menu_bar(pMainView); -//register mouse call back. - evas_object_smart_callback_add(pMainView->slider, "slider,clicked", _on_slider_clicked, pMainView); - evas_object_smart_callback_add(pMainView->slider, "slider,longpress,start", _on_slider_long_press_start, pMainView); - evas_object_smart_callback_add(pMainView->slider, "slider,longpress,end", _on_slider_long_press_end, pMainView); - evas_object_smart_callback_add(pMainView->slider, "slider,clicked,icon", _on_slider_icon_clicked, pMainView); + pMainView->ssHandle = ivug_ss_create(pMainView->layout); + pMainView->isSliding = true; - evas_object_smart_callback_add(pMainView->slider, "slider,item,changed", _on_slider_item_changed, pMainView); - evas_object_smart_callback_add(pMainView->slider, "slider,item,state,changed", _on_slider_item_state_changed, pMainView); +// Register callback + evas_object_smart_callback_add(ivug_ss_object_get(pMainView->ssHandle), "slideshow,finished", _on_slideshow_finished, pMainView); - //MSG_MAIN_HIGH("binded main win address is %p\n", main_win); -#ifdef TEST_MOUSE_EVENT - evas_object_event_callback_add(pMainView->navi_bar, EVAS_CALLBACK_MOUSE_DOWN, _on_receive_mouse_down1, (void *)"navigarion"); - evas_object_event_callback_add(pMainView->layout, EVAS_CALLBACK_MOUSE_DOWN, _on_receive_mouse_down1, (void *)"layout"); - evas_object_event_callback_add(pMainView->slider, EVAS_CALLBACK_MOUSE_DOWN, _on_receive_mouse_down1, (void *)"slider"); - evas_object_event_callback_add(pMainView->slider, EVAS_CALLBACK_MOUSE_UP, _on_receive_mouse_up1, (void *)"slider"); - evas_object_event_callback_add(const_cast(edje_object_part_object_get(_EDJ(pMainView->layout) , "clip")), EVAS_CALLBACK_MOUSE_DOWN, _on_receive_mouse_down1, (void *)"clip"); - evas_object_event_callback_add(const_cast(edje_object_part_object_get(_EDJ(pMainView->layout) , "mainview.navibar")), EVAS_CALLBACK_MOUSE_DOWN, _on_receive_mouse_down1, (void *)"navi swallow"); - evas_object_event_callback_add(pMainView->ctrl_bar, EVAS_CALLBACK_MOUSE_DOWN, _on_receive_mouse_down1, (void *)"controlbar"); -#endif + ivug_main_view_hide_menu_bar(pMainView); + ivug_ss_start(pMainView->ssHandle, current, pMainView->mList, bSlideFirst); +} - evas_object_event_callback_add(pMainView->layout, EVAS_CALLBACK_RESIZE, _on_resize, pMainView); - // zoom icon - edje_object_signal_callback_add(_EDJ(pMainView->empty_layout), - "mainview,zoom_out,clicked", - "", - _ivug_main_view_zoom_out_cb, - (void *)pMainView); - edje_object_signal_callback_add(_EDJ(pMainView->empty_layout), - "mainview,zoom_in,clicked", - "", - _ivug_main_view_zoom_in_cb, - (void *)pMainView); +Evas_Object * +ivug_main_view_object_get(Ivug_MainView *pMainView) +{ + IV_ASSERT(pMainView != NULL); - _show_zoom_icon(pMainView); + return pMainView->layout; +} - pMainView->keydown_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _on_key_down, (void *)pMainView); +static void +_back_button_clicked(void *data, Evas_Object * obj, const char *emission, const char *source) +{ + elm_exit(); +} - { - int bx, by, bw, bh; - evas_object_geometry_get(pMainView->navi_bar, &bx, &by, &bw, &bh); +void ivug_main_view_set_testmode(Ivug_MainView *pMainView, bool bTestMode) +{ + IV_ASSERT(pMainView != NULL); - MSG_MAIN_HIGH("Navibar Created. (%d,%d,%d,%d)", bx, by, bw, bh); - } + pMainView->bTestMode = bTestMode; +} - { - int bx, by, bw, bh; - evas_object_geometry_get(pMainView->slider, &bx, &by, &bw, &bh); +static void ivug_update_list(Ivug_MainView *pMainView) +{ + IV_ASSERT(pMainView != NULL); + /*Recreate or refresh the list "pMainView->mList" */ + ivug_medialist_set_update_flag(pMainView->mList, true); +} - MSG_MAIN_HIGH("Slider Created. (%d,%d,%d,%d)", bx, by, bw, bh); +static Eina_Bool _ivug_db_update_idler(void *data) +{ + IV_ASSERT(data != NULL); + Ivug_MainView *pMainView = (Ivug_MainView *)data; + IV_ASSERT(pMainView != NULL); + ivug_update_list(pMainView); + if(pMainView->db_idler != NULL) { + ecore_timer_del(pMainView->db_idler); + pMainView->db_idler = NULL; } + return ECORE_CALLBACK_CANCEL; +} - { - int bx, by, bw, bh; - evas_object_geometry_get(pMainView->empty_layout, &bx, &by, &bw, &bh); +static Eina_Bool _ivug_db_update_timer_cb(void *data) +{ + IV_ASSERT(data != NULL); + Ivug_MainView *pMainView = (Ivug_MainView *)data; + IV_ASSERT(pMainView != NULL); - MSG_MAIN_HIGH("Empty Created. (%d,%d,%d,%d)", bx, by, bw, bh); + if(pMainView->db_idler != NULL) { + ecore_timer_del(pMainView->db_idler); + pMainView->db_idler = NULL; } + pMainView->db_idler = ecore_idler_add(_ivug_db_update_idler, data); + return ECORE_CALLBACK_CANCEL; +} - int bx, by, bw, bh; - evas_object_geometry_get(pMainView->layout, &bx, &by, &bw, &bh); - - MSG_MAIN_HIGH("Main View Created. (%d,%d,%d,%d)", bx, by, bw, bh); +static int _ivug_db_update_add_timer(void *data) +{ + IV_ASSERT(data != NULL); + Ivug_MainView *pMainView = (Ivug_MainView *)data; + IV_ASSERT(pMainView != NULL); + _ivug_db_update_timer_cb(data); + return 0; +} -// For debugging. - DELETE_NOTIFY(pMainView->layout); +static int +_ivug_db_update_op(media_content_error_e error, int pid, + media_content_db_update_item_type_e update_item, + media_content_db_update_type_e update_type, + media_content_type_e media_type, char *uuid, + char *path, char *mime_type, void *data) +{ + if (MEDIA_CONTENT_ERROR_NONE != error) { + MSG_MAIN_ERROR("Update db error[%d]!", error); + return -1; + } + if (update_item == MEDIA_ITEM_FILE && + MEDIA_CONTENT_TYPE_IMAGE != media_type && + MEDIA_CONTENT_TYPE_VIDEO != media_type) { + MSG_MAIN_HIGH("Media type is wrong"); + return -1; + } - PERF_CHECK_END(LVL2, "add event handler"); + _ivug_db_update_add_timer(data); + return 0; +} - return pMainView; +static void +__ivug_db_update_cb(media_content_error_e error, int pid, + media_content_db_update_item_type_e update_item, + media_content_db_update_type_e update_type, + media_content_type_e media_type, char *uuid, + char *path, char *mime_type, void *data) +{ + MSG_MAIN_HIGH("update_item[%d], update_type[%d], media_type[%d]", update_item, + update_type, media_type); + MSG_MAIN_HIGH("uuid[%s], path[%s]", uuid, path); + _ivug_db_update_op(error, pid, update_item, update_type, media_type, + uuid, path, mime_type, data); } -void ivug_main_view_start_slideshow(Ivug_MainView *pMainView, Eina_Bool bSlideFirst) +static bool _ivug_db_update_reg_cb(Ivug_MainView *pMainView) { IV_ASSERT(pMainView != NULL); + int ret = -1; - Media_Item *current = NULL; - - // Stop animation & movie play before slideshow is started. - ivug_slider_pause(pMainView->slider); - current = ivug_slider_get_item(pMainView->slider); + MSG_MAIN_HIGH("Set db updated callback"); + ret = media_content_set_db_updated_cb(__ivug_db_update_cb, pMainView); + if (ret != MEDIA_CONTENT_ERROR_NONE) + MSG_MAIN_ERROR("Set db updated cb failed[%d]!", ret); + return true; +} - ivug_prohibit_lcd_off(); - //ivug_main_view_hide_menu_bar(pMainView); +/* Connect to media-content database */ +static int _ivug_local_data_connect(void) +{ + int ret = -1; + ret = media_content_connect(); + if (ret == MEDIA_CONTENT_ERROR_NONE) { + MSG_MAIN_HIGH("DB connection is success"); + return 0; + } else { + MSG_MAIN_ERROR("DB connection is failed[%d]!", ret); + return -1; + } +} - pMainView->ssHandle = ivug_ss_create(pMainView->layout); +static int _ivug_data_init(Ivug_MainView *pMainView) +{ + IV_ASSERT(pMainView != NULL); + int err = _ivug_local_data_connect(); + if (err != 0) + MSG_MAIN_ERROR("Connect to media-content DB failed!"); + return err; +} -// Register callback - evas_object_smart_callback_add(ivug_ss_object_get(pMainView->ssHandle), "slideshow,finished", _on_slideshow_finished, pMainView); +static Eina_Bool +_ivug_main_view_reg_idler_cb(void *data) +{ + IV_ASSERT(data != NULL); + Ivug_MainView *pMainView = (Ivug_MainView *)data; + IV_ASSERT(pMainView != NULL); + /* Initialize media-content */ + _ivug_data_init(pMainView); + /* Register db monitor */ + _ivug_db_update_reg_cb(pMainView); - ivug_main_view_hide_menu_bar(pMainView); + if(pMainView->reg_idler != NULL) { + ecore_timer_del(pMainView->reg_idler); + pMainView->reg_idler = NULL; + } - ivug_ss_start(pMainView->ssHandle, current, pMainView->mList, bSlideFirst); + return ECORE_CALLBACK_CANCEL; } - -Evas_Object * -ivug_main_view_object_get(Ivug_MainView *pMainView) +int ivug_add_reg_idler(Ivug_MainView *pMainView) { IV_ASSERT(pMainView != NULL); - - return pMainView->layout; + MSG_MAIN_HIGH("Register idler!"); + pMainView->reg_idler = ecore_timer_add(0.6f, _ivug_main_view_reg_idler_cb, + (void *)pMainView); + return 0; } void -ivug_main_view_start(Ivug_MainView *pMainView) +ivug_main_view_start(Ivug_MainView *pMainView, app_control_h service) { IV_ASSERT(pMainView != NULL); + MSG_MAIN_HIGH("ivug_main_view_start"); + Evas_Object *sn_layout = ivug_slider_new_get_layout(pMainView->pSliderNew); + int count= -1; + int currentindex = -1; + Evas_Load_Error e = EVAS_LOAD_ERROR_NONE; - { - ivug_main_view_set_hide_timer(pMainView); + if (pMainView->mode != IVUG_MODE_HIDDEN) { + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); + ivug_ret_if(mitem == NULL); + + Media_Data *mdata = ivug_medialist_get_data(mitem); + ivug_ret_if(mdata == NULL); + + pMainView->cur_mitem = mitem; + pMainView->currentphotocam = PHOTOCAM_1; + ivug_medialist_set_current_item(pMainView->mList, pMainView->cur_mitem); + { + ivug_main_view_set_hide_timer(pMainView); + } + + MSG_MAIN_HIGH("mdata->filepath = %s",mdata->filepath); + if (mdata->slide_type == SLIDE_TYPE_VIDEO) { + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "show,icon", "video_play_icon"); + pMainView->is_play_Icon = true; + elm_photocam_file_set(pMainView->photocam, mdata->thumbnail_path); + } else { + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "hide,icon", "video_play_icon"); + pMainView->is_play_Icon = false; + int bx=0,by=0,bw=0,bh=0; + e = elm_photocam_file_set(pMainView->photocam, mdata->filepath); + MSG_MAIN_HIGH("photocam_file_set Error = %d",e); + + if (EVAS_LOAD_ERROR_NONE != e) { + MSG_HIGH("Loading default Thumbnail"); + elm_photocam_file_set(pMainView->photocam, DEFAULT_THUMBNAIL); + } + evas_object_geometry_get(pMainView->photocam, &bx, &by, &bw, &bh); + } + + evas_object_show(pMainView->photocam); + + e = evas_object_image_load_error_get(elm_image_object_get(pMainView->photocam)); + MSG_MAIN_HIGH("image_load_error = %d",e); + + ivug_slider_update_icon_layer(pMainView->pSliderNew); + + //create the Next and previous photocam images for smooth sliding + pMainView->photocam0 = NULL; + pMainView->photocam2 = NULL; + + if (pMainView->cur_mitem) { + count = ivug_medialist_get_count(pMainView->mList); + Media_Data *pData = ivug_medialist_get_data(pMainView->cur_mitem); + currentindex = pData->index; + MSG_MAIN_HIGH("currentindex = %d count =%d", currentindex, count); + } + + ivug_create_new_photocam_image(pMainView, &pMainView->photocam, "imageview_area"); + ivug_slider_new_set_photocam(pMainView->pSliderNew, pMainView->photocam); + + if (mdata->slide_type == SLIDE_TYPE_VIDEO) { + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "show,icon", "video_play_icon"); + pMainView->is_play_Icon = true; + elm_photocam_file_set(pMainView->photocam, mdata->thumbnail_path); + } else { + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "hide,icon", "video_play_icon"); + pMainView->is_play_Icon = false; + e = elm_photocam_file_set(pMainView->photocam, mdata->filepath); + + if (EVAS_LOAD_ERROR_NONE != e) { + MSG_HIGH("Loading default Thumbnail"); + elm_photocam_file_set(pMainView->photocam, DEFAULT_THUMBNAIL); + } + } + } else { + ivug_create_new_photocam_image(pMainView, &pMainView->photocam, "imageview_area"); + ivug_slider_new_set_photocam(pMainView->pSliderNew, pMainView->photocam); + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "hide,icon", "video_play_icon"); + + char *hidden_file_path = NULL; + int ret = app_control_get_extra_data (service, "Path", &hidden_file_path); + if (ret != APP_CONTROL_ERROR_NONE) { + MSG_HIGH("app_control_get_extra_data failed"); + } + + e = elm_photocam_file_set(pMainView->photocam, hidden_file_path); + + if (EVAS_LOAD_ERROR_NONE != e) { + MSG_HIGH("Loading default Thumbnail"); + elm_photocam_file_set(pMainView->photocam, DEFAULT_THUMBNAIL); + } } + evas_object_show(pMainView->photocam); + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "set_default", "imageview_area"); + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "show,back,btn", "user"); + + if (pMainView->mode != IVUG_MODE_SETAS && pMainView->mode != IVUG_MODE_EMAIL && pMainView->mode != IVUG_MODE_HIDDEN) { + + // Update Main View. + if (pMainView->bShowMenu == true) { + PERF_CHECK_BEGIN(LVL5, "Update main view"); + _update_main_view(pMainView); + PERF_CHECK_END(LVL5, "Update main view"); + } + + if (count != -1 && currentindex != -1 && currentindex+1 < count) { + Media_Item *next_mitem = ivug_medialist_get_next(pMainView->mList, pMainView->cur_mitem); + Media_Data *pData = ivug_medialist_get_data(next_mitem); - PERF_CHECK_BEGIN(LVL2, "slider start"); - ivug_slider_start(pMainView->slider); - PERF_CHECK_END(LVL2, "slider start"); + ivug_create_new_photocam_image(pMainView, &pMainView->photocam2, "imageview_area_temp2"); + if (pData->slide_type == SLIDE_TYPE_VIDEO) { + elm_photocam_file_set(pMainView->photocam2, pData->thumbnail_path); + } else { + e = elm_photocam_file_set(pMainView->photocam2, pData->filepath); + if (EVAS_LOAD_ERROR_NONE != e) { + MSG_HIGH("Loading default Thumbnail"); + elm_photocam_file_set(pMainView->photocam2, DEFAULT_THUMBNAIL); + } + } + + evas_object_show(pMainView->photocam2); + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "set_right", "imageview_area_temp2"); + } + + if (count != -1 && currentindex != -1 && currentindex - 1 >= 0) { + Media_Item *prev_mitem = ivug_medialist_get_prev(pMainView->mList, pMainView->cur_mitem); + Media_Data *pmData = ivug_medialist_get_data(prev_mitem); + + ivug_create_new_photocam_image(pMainView, &pMainView->photocam0, "imageview_area_temp0"); + if (pmData->slide_type == SLIDE_TYPE_VIDEO) { + elm_photocam_file_set(pMainView->photocam0, pmData->thumbnail_path); + } else { + e = elm_photocam_file_set(pMainView->photocam0, pmData->filepath); + if (EVAS_LOAD_ERROR_NONE != e) { + MSG_HIGH("Loading default Thumbnail"); + elm_photocam_file_set(pMainView->photocam0, DEFAULT_THUMBNAIL); + } + } - pMainView->area_obj = evas_object_rectangle_add(evas_object_evas_get(pMainView->layout)); - evas_object_size_hint_expand_set(pMainView->area_obj, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_fill_set(pMainView->area_obj, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_color_set(pMainView->area_obj, 0,0,0,0); - elm_object_part_content_set(pMainView->layout, "mainview.area", pMainView->area_obj); + evas_object_show(pMainView->photocam0); + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "set_left", "imageview_area_temp0"); + } + edje_object_signal_callback_add(elm_layout_edje_get(sn_layout), "left_transit_done", "*", + _ivug_main_view_left_transit_by_item_complete_cb, pMainView); + edje_object_signal_callback_add(elm_layout_edje_get(sn_layout), "right_transit_done", "*", + _ivug_main_view_right_transit_by_item_complete_cb, pMainView); -// evas_object_show(pMainView->area_obj); + edje_object_signal_callback_add(elm_layout_edje_get(pMainView->lyContent), "button_clicked", "elm",_back_button_clicked, pMainView); + } + if (pMainView->mode == IVUG_MODE_SELECT) { + Evas_Object *sel_bar = EFL::create_layout(pMainView->layout, IVUG_MAIN_EDJ, "select_bar"); + if (sel_bar == NULL) { + IVUG_DEBUG_WARNING("layout create failed"); + } + edje_object_signal_emit(elm_layout_edje_get(pMainView->lyContent), "hide,back,btn", "user"); + pMainView->select_bar = sel_bar; + Evas_Object *check = elm_check_add(sel_bar); + elm_check_state_set(check, EINA_FALSE); + elm_object_style_set(check, "default"); + evas_object_color_set(check,128,138,137,255); + elm_layout_content_set(sel_bar, "swallow.check", check); //swallow + pMainView->check = check; + evas_object_smart_callback_add(check, "changed", _check_changed_cb, (void *)pMainView); + elm_object_part_content_set(pMainView->layout, "mainview.select_bar", sel_bar); //swallow + + char buf[64] = {0,}; + snprintf(buf, 64, GET_STR(IDS_PD_SELECTED), pMainView->total_selected); + Eina_List *l = NULL; + void *data = NULL; + char **files = NULL; + int i = 0 ; + files = (char **)malloc(sizeof(char *) * pMainView->total_selected); + if (files) { + if (pMainView->selected_path_list) { + EINA_LIST_FOREACH(pMainView->selected_path_list, l, data) { + files[i] = strdup((char *)data); + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); + Media_Data *mdata = ivug_medialist_get_data(mitem); + if (strcmp(mdata->filepath, files[i]) == 0) { + evas_object_color_set(pMainView->check,255,255,255,255); + elm_check_state_set(pMainView->check,EINA_TRUE); + } + i++; + } + } + } + free(files); + elm_object_part_text_set(pMainView->select_bar, "elm.text.title", buf); + evas_object_show(check); + } else { + edje_object_signal_emit(elm_layout_edje_get(pMainView->lyContent), "hide,back,btn", "user"); + edje_object_signal_emit(_EDJ(pMainView->lyContent), "elm,state,hide", "user"); + pMainView->bShowMenu = false ; + } } @@ -1469,45 +1896,63 @@ void ivug_main_view_resume(Ivug_MainView *pMainView) { IV_ASSERT(pMainView != NULL); - if (pMainView->slider == NULL) { - MSG_MAIN_HIGH("slider is NULL"); - return; - } + MSG_MAIN_HIGH("Main View Update"); - Media_Item *mitem = ivug_slider_get_item(pMainView->slider); + struct stat info = {0,}; + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); Media_Data *mdata = ivug_medialist_get_data(mitem); IV_ASSERT(mdata != NULL); - if (mdata->slide_type == SLIDE_TYPE_IMAGE || mdata->slide_type == SLIDE_TYPE_VIDEO ) - { - if(mdata->filepath && ecore_file_exists(mdata->filepath)) // Current file is not deleted - { + if (ivug_slider_new_get_mode(pMainView->pSliderNew) != SLIDER_MODE_SINGLE) { + ivug_medialist_del_update_callback(pMainView->mList); + } + + if (mdata->slide_type == SLIDE_TYPE_IMAGE || mdata->slide_type == SLIDE_TYPE_VIDEO) { + if (mdata->filepath && (stat(mdata->filepath, &info) == 0)) { MSG_MAIN_HIGH("Current filepath : %s", mdata->filepath); - } - else - { - /*if file is not exist ug terminated temporally */ + } else { MSG_MAIN_ERROR("Center file is not exist. stype=%d name=%s", mdata->slide_type, mdata->filepath); - DESTROY_ME(); - return ; + Media_Item *nxt_item = ivug_medialist_get_next(pMainView->mList, mitem); + if(nxt_item) { + ivug_medialist_set_current_item(pMainView->mList, nxt_item); + } else { + Media_Item *prv_item = ivug_medialist_get_prev(pMainView->mList, mitem); + if(prv_item) { + ivug_medialist_set_current_item(pMainView->mList, prv_item); + } else { + DESTROY_ME(); + return; + } + } + mitem = ivug_medialist_get_current_item(pMainView->mList); + mdata = ivug_medialist_get_data(mitem); } + } else { + MSG_MAIN_ERROR("Unhandled slide type : %d", mdata->slide_type); } - else + + if(ivug_medialist_need_update(pMainView->mList) == true) { - MSG_MAIN_ERROR("Unhandled slide type : %d", mdata->slide_type); +#ifdef USE_THUMBLIST + if (pMainView->thumbs ) + { + ivug_thumblist_clear_items(pMainView->thumbs); + } +#endif + mitem = ivug_medialist_reload(pMainView->mList, mitem); + ivug_main_view_start(pMainView, NULL); } + ivug_main_view_set_hide_timer(pMainView); + // When resume, menu bar will be appeared. if(!(pMainView->pNameView - || pMainView->pSetAsView - || pMainView->pCropView)) //child view is not exist + || pMainView->pCropView) && pMainView->mode != IVUG_MODE_SELECT && pMainView->mode != IVUG_MODE_EMAIL) //if child view is not exist { ivug_main_view_show_menu_bar(pMainView); } - - ivug_slider_resume(pMainView->slider); } void @@ -1515,22 +1960,21 @@ ivug_main_view_pause(Ivug_MainView *pMainView) { IV_ASSERT(pMainView != NULL); - if ( pMainView->ssHandle ) + if(ivug_slider_new_get_mode(pMainView->pSliderNew) != SLIDER_MODE_SINGLE) { - ivug_ss_stop(pMainView->ssHandle); - } - if (pMainView->slider) { - ivug_slider_pause(pMainView->slider); + ivug_medialist_set_update_callback(pMainView->mList); } - if(pMainView->bShowMenu == true) + if (pMainView->ssHandle ) { - ivug_main_view_del_hide_timer(pMainView); + ivug_ss_stop(pMainView->ssHandle); } + + ivug_main_view_del_hide_timer(pMainView); + // Stop photocam If AGIF } - void ivug_main_view_destroy(Ivug_MainView *pMainView) { @@ -1538,7 +1982,20 @@ ivug_main_view_destroy(Ivug_MainView *pMainView) MSG_MAIN_HIGH("ENTER : Main View Destroy. pMainView=0x%08x", pMainView); + ivug_main_view_del_hide_timer(pMainView); + if (pMainView->ssHandle) + { + MSG_MAIN_HIGH("image viewer end cause slide show ended"); + ivug_ss_delete(pMainView->ssHandle); + pMainView->ssHandle = NULL; + } + + if(pMainView->back_timer) + { + ecore_timer_del(pMainView->back_timer); + pMainView->back_timer = NULL; + } if (pMainView->popup_timer) { @@ -1546,16 +2003,34 @@ ivug_main_view_destroy(Ivug_MainView *pMainView) pMainView->popup_timer = NULL; } + if (pMainView->delete_idler) + { + ecore_idler_del(pMainView->delete_idler); + pMainView->delete_idler = NULL; + } + + if (pMainView->tagbuddy_idler ) + { + ecore_timer_del(pMainView->tagbuddy_idler); + pMainView->tagbuddy_idler = NULL; + } + + if (pMainView->ctx_popup) + { + evas_object_del(pMainView->ctx_popup); + pMainView->ctx_popup = NULL; + } + if (pMainView->popup) { evas_object_del(pMainView->popup); pMainView->popup = NULL; } - if(pMainView->ctx_popup) + if (pMainView->access_popup) { - evas_object_del(pMainView->ctx_popup); - pMainView->ctx_popup = NULL; + evas_object_del(pMainView->access_popup); + pMainView->access_popup = NULL; } if (pMainView->ext_ug) @@ -1565,16 +2040,17 @@ ivug_main_view_destroy(Ivug_MainView *pMainView) pMainView->ext_ug = NULL; } - if (pMainView->exit_timer) + if(pMainView->ext_svc) { - ecore_timer_del(pMainView->exit_timer); - pMainView->exit_timer = NULL; + app_control_send_terminate_request(pMainView->ext_svc); + app_control_destroy(pMainView->ext_svc); + pMainView->ext_svc = NULL; } - if ( pMainView->zoom_slider ) + if (pMainView->exit_timer) { - evas_object_del(pMainView->zoom_slider); - pMainView->zoom_slider = NULL; + ecore_timer_del(pMainView->exit_timer); + pMainView->exit_timer = NULL; } MSG_MAIN_HIGH("Unregister system notifications"); @@ -1588,12 +2064,7 @@ ivug_main_view_destroy(Ivug_MainView *pMainView) if(pMainView->album_name) { free(pMainView->album_name); - } - - if(pMainView->area_obj) - { - evas_object_del(pMainView->area_obj); - pMainView->area_obj = NULL; + pMainView->album_name = NULL; } // Who remove medialist????? @@ -1607,88 +2078,123 @@ ivug_main_view_destroy(Ivug_MainView *pMainView) return ; } -void ivug_main_view_set_hide_timer(Ivug_MainView *pMainView) +void ivug_main_view_reload(Ivug_MainView *pMainView) { - IV_ASSERT(pMainView != NULL); - - return; + Media_Data *pData = NULL; + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); + pData = ivug_medialist_get_data(mitem); + + if (pData->slide_type == SLIDE_TYPE_VIDEO ) + elm_photocam_file_set(pMainView->photocam, pData->thumbnail_path); + else + { + elm_photocam_file_set(pMainView->photocam, NULL); + elm_photocam_file_set(pMainView->photocam, pData->filepath); + } + ivug_slider_update_icon_layer(pMainView->pSliderNew); + } -void ivug_main_view_del_hide_timer(Ivug_MainView *pMainView) +void _ivug_main_view_set_hide_timer(Ivug_MainView *pMainView, const char *func, int line) { IV_ASSERT(pMainView != NULL); - return; -} + if (pMainView->mode == IVUG_MODE_DISPLAY + || pMainView->mode == IVUG_MODE_SAVE + || pMainView->mode == IVUG_MODE_SETAS) { -void -ivug_main_view_show_menu_bar(Ivug_MainView *pMainView) -{ - MSG_MAIN_HIGH("Show Menu"); - if (NULL == pMainView) { return; } - pMainView->bShowMenu = true; - evas_object_show(pMainView->ctrl_bar); + MSG_MAIN_HIGH("Set Menu Timer. Cnt=%d, %s(%d)", pMainView->hide_count, func, line); - _update_main_view(pMainView); + pMainView->hide_count++; -#ifdef HIDE_INDICATOR - elm_win_indicator_mode_set(ug_get_window(), ELM_WIN_INDICATOR_HIDE); -#else - if(gIsDesktopMode() == false) - { - elm_win_indicator_mode_set((Evas_Object *)ug_get_window(), ELM_WIN_INDICATOR_SHOW); + if (pMainView->hide_count < 0) { + // hide timer has stack structure, del > del > set(not really setted) > set (really setted) + return ; } -#endif -// edje_object_signal_emit(_EDJ(pMainView->layout), "mainview,show,menu", "elm"); - edje_object_signal_emit(_EDJ(pMainView->empty_layout), "elm,state,show", "user"); - elm_naviframe_item_title_visible_set(pMainView->navi_it, EINA_TRUE); - elm_object_item_signal_emit(pMainView->navi_it, "elm,state,toolbar,open", ""); - - ivug_slider_set_menu_visibility(pMainView->slider, EINA_TRUE); + if (pMainView->bShowMenu == EINA_TRUE) { + if (pMainView->hide_timer) { + ecore_timer_del(pMainView->hide_timer); + pMainView->hide_timer = NULL; + } + pMainView->hide_timer = ecore_timer_add(MENUBAR_TIMEOUT_SEC, _on_hide_timer_expired, (void *)pMainView); + } else { + MSG_MAIN_WARN("Called set_hide_timer. when Menu is invisible. %s(%d)", func, line); + } +} -#ifdef TEST_MOUSE_EVENT - Eina_List *l = const_cast(evas_object_clipees_get(pMainView->navi_bar)); +void _ivug_main_view_del_hide_timer(Ivug_MainView *pMainView, const char *func, int line) +{ + IV_ASSERT(pMainView != NULL); - MSG_MAIN_HIGH("Clipper clips %i objects", eina_list_count(l)); + MSG_MAIN_HIGH("Remove Hide Timer. Cnt=%d, %s(%d)", pMainView->hide_count, func, line); - void *obj; - Eina_List *l1; + pMainView->hide_count--; - EINA_LIST_FOREACH(l, l1, obj) + if(pMainView->hide_timer) { - MSG_MAIN_HIGH("Object Type : %s", evas_object_name_get((Evas_Object *)obj)); + ecore_timer_del(pMainView->hide_timer); + pMainView->hide_timer = NULL; + } +} + +void +ivug_main_view_show_menu_bar(Ivug_MainView *pMainView) +{ + MSG_MAIN_HIGH("Show Menu"); + if (NULL == pMainView) { + MSG_MAIN_WARN("pMainView is NULL"); + return; } - Evas_Object *above; - Evas_Object *below; + if (pMainView->bShowMenu == true ) { + MSG_MAIN_WARN("Menu is Already shown"); + return; + } + + pMainView->bShowMenu = true; - above = evas_object_above_get(pMainView->navi_bar); - MSG_MAIN_HIGH("Navi Above : 0x%08x %s %s", above, evas_object_name_get(above), evas_object_type_get(above)); + _update_main_view(pMainView); - below = evas_object_below_get(pMainView->navi_bar); - MSG_MAIN_HIGH("Navi Below : 0x%08x %s %s", below, evas_object_name_get(below), evas_object_type_get(below)); +#ifdef USE_THUMBLIST + if (pMainView->thumbs) { + Media_Item *mItem = ivug_medialist_get_current_item(pMainView->mList); - above = evas_object_above_get(pMainView->slider); - MSG_MAIN_HIGH("Slider Above : 0x%08x %s %s", above, evas_object_name_get(above), evas_object_type_get(above)); + Image_Object *img = NULL; + img = ivug_thumblist_find_item_by_data(pMainView->thumbs, mItem); // Find thumb item of new image,. - below = evas_object_below_get(pMainView->slider); - MSG_MAIN_HIGH("Slider Below : 0x%08x %s %s", below, evas_object_name_get(below), evas_object_type_get(below)); + if (img != NULL) { + if (ivug_thumblist_get_selected_item(pMainView->thumbs) != img) { // Duplicate check but should check in here. + pMainView->bSetThmByUser = true; + ivug_thumblist_select_item(pMainView->thumbs, img); + // If old item & new item is same, `selected item' callback is not called. then bSetThmByUser remains as true. + } + } + } #endif - ivug_main_view_set_hide_timer(pMainView); + edje_object_signal_emit(_EDJ(pMainView->lyContent), "elm,state,show", "user"); + edje_object_signal_emit(elm_layout_edje_get(pMainView->lyContent), "show,back,btn", "user"); + ivug_main_view_set_hide_timer(pMainView); } void ivug_main_view_hide_menu_bar(Ivug_MainView *pMainView) { MSG_MAIN_HIGH("Hide Menu"); + if (NULL == pMainView) { + MSG_MAIN_WARN("pMainView is NULL"); + return; + } + + if (pMainView->bShowMenu == false ) { + MSG_MAIN_WARN("Menu is Already hidden"); return; } @@ -1696,20 +2202,7 @@ ivug_main_view_hide_menu_bar(Ivug_MainView *pMainView) pMainView->bShowMenu = false; - elm_object_disabled_set(pMainView->ctrl_bar, EINA_TRUE); - - edje_object_signal_emit(_EDJ(pMainView->empty_layout), "elm,state,hide", "user"); - - elm_win_indicator_mode_set((Evas_Object *)ug_get_window(), ELM_WIN_INDICATOR_HIDE); - -// edje_object_signal_emit(_EDJ(pMainView->layout), "mainview,hide,menu","elm"); - elm_naviframe_item_title_visible_set(pMainView->navi_it, EINA_FALSE); - elm_object_item_signal_emit(pMainView->navi_it, "elm,state,toolbar,close", ""); - - // zoom icon - _hide_zoom_icon(pMainView); - - ivug_slider_set_menu_visibility(pMainView->slider, EINA_FALSE); - + edje_object_signal_emit(_EDJ(pMainView->lyContent), "elm,state,hide", "user"); + edje_object_signal_emit(elm_layout_edje_get(pMainView->lyContent), "hide,back,btn", "user"); } diff --git a/main/src/view/ivug-name-view.c b/main/src/view/ivug-name-view.c index 73285f8..2dd9e3e 100755 --- a/main/src/view/ivug-name-view.c +++ b/main/src/view/ivug-name-view.c @@ -1,465 +1,462 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ivug-common.h" +* Copyright (c) 2000-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 "ivug-common.h" #include "ivug-name-view.h" #include "ivug-popup.h" - #include "ivug-media.h" - +#include "ivug-vibration.h" #include "ivug-util.h" +#include "ivug-language-mgr.h" +#include -static void -_on_timeout_response(void *data, Evas_Object *obj, void *event_info) +#undef LOG_LVL +#define LOG_LVL DBG_MSG_LVL_HIGH + +#undef LOG_CAT +#define LOG_CAT "IV-NAME-VIEW" + +#define IVUG_POPUP_EDJ_NAME EDJ_PATH"/ivug-popup.edj" + +struct _Ivug_NameView { - IV_ASSERT(data != NULL); + Evas_Object *layout; + Evas_Object *scroller; - Ivug_NameView *pNameView = (Ivug_NameView *)data; + Evas_Object *navibar; + Elm_Object_Item *navi_it; - if ( pNameView->fnresponse ) - { - (pNameView->fnresponse)(NAME_VIEW_RESPONSE_CANCEL, NULL, pNameView->clientdata); - } + //use popup + Evas_Object *popup; - //destroy after pop and transit ended - //ivug_name_view_destroy(pNameView); -} + Evas_Object *entry; + Evas_Object *btn_done; + + char *guide_txt; + char *init_txt; + +#ifdef USE_MAXLENGTH_VIBE + vibration_h haptic_handle; +#endif + + FNResponse fnresponse; + void *clientdata; + + ivug_name_mode mode; + + char *filter_txt; + char *ivTemp_entry; -static void _on_resized(void *data, Evas *e, Evas_Object *obj, void *event_info) + Eina_Bool bAllowNull; + +}; + +static void +_on_timeout_response_reset(void *data, Evas_Object *obj, void *event_info) { - IV_ASSERT(data != NULL); + MSG_ASSERT(data != NULL); Ivug_NameView *pNameView = (Ivug_NameView *)data; - Elm_Object_Item *navi_it = elm_naviframe_top_item_get(pNameView->navibar); + ecore_imf_context_input_panel_show(elm_entry_imf_context_get(pNameView->entry)); - if(pNameView->sip_show == true) - { - int rot = gGetRotationDegree(); - if(rot == 90 || rot == 270) - { - elm_naviframe_item_title_visible_set(navi_it, EINA_FALSE); - } - else - { - elm_naviframe_item_title_visible_set(navi_it, EINA_TRUE); - } - } - else - { - elm_naviframe_item_title_visible_set(navi_it, EINA_TRUE); - } + elm_object_focus_set(pNameView->entry, EINA_TRUE); } static void _on_keypad_show(void *data, Evas_Object *obj, void *event_info) { - IV_ASSERT(data != NULL); + MSG_ASSERT(data != NULL); +#ifdef HIDE_TITLE_AT_LANDSCAPE Ivug_NameView *pNameView = (Ivug_NameView *)data; - pNameView->sip_show = true; - Elm_Object_Item *navi_it = elm_naviframe_top_item_get(pNameView->navibar); int rot = gGetRotationDegree(); - if(rot == 90 || rot == 270) - { - elm_naviframe_item_title_visible_set(navi_it, EINA_FALSE); + if (rot == 90 || rot == 270) { + elm_naviframe_item_title_enabled_set(navi_it, EINA_FALSE, EINA_FALSE); } +#endif } static void _on_keypad_hide(void *data, Evas_Object *obj, void *event_info) { - IV_ASSERT(data != NULL); + MSG_ASSERT(data != NULL); +#ifdef HIDE_TITLE_AT_LANDSCAPE Ivug_NameView *pNameView = (Ivug_NameView *)data; - pNameView->sip_show = false; - Elm_Object_Item *navi_it = elm_naviframe_top_item_get(pNameView->navibar); - elm_naviframe_item_title_visible_set(navi_it, EINA_TRUE); -} + elm_naviframe_item_title_enabled_set(navi_it, EINA_TRUE, EINA_FALSE); +#endif +} -static void -_on_invalid_name_timeout_response(void *data, Evas_Object *obj, void *event_info) +void _on_btn_more_clicked(void *data, Evas_Object *obj, void *event_info) { - IV_ASSERT(data != NULL); - - Ivug_NameView *pNameView = (Ivug_NameView *)data; - - ecore_imf_context_input_panel_show(elm_entry_imf_context_get(pNameView->entry)); } static void -_ivug_rename_view_enter_click_cb(void *data, Evas_Object *obj, void *event_info) +_ivug_rename_view_on_entry_actiavated(void *data, Evas_Object *obj, void *event_info) { - MSG_IMAGEVIEW_HIGH("inside ..."); Ivug_NameView *pNameView = (Ivug_NameView *)data; - IV_ASSERT(pNameView != NULL); + MSG_ASSERT(pNameView != NULL); - Evas_Object *entry = elm_object_part_content_get(pNameView->editfield, "elm.icon.entry"); + MSG_HIGH("Entry Activated callback pNameView(0x%08x)", pNameView); - char *name = elm_entry_markup_to_utf8 ( elm_entry_entry_get(entry) ); + if (pNameView->mode == NAME_VIEW_MODE_MULTI_LINE) { + MSG_HIGH("DEBUG ME. When is called?"); + return; + } + + Evas_Object *entry = pNameView->entry; - MSG_IMAGEVIEW_HIGH("name = %s", name); + char *name = elm_entry_markup_to_utf8(elm_entry_entry_get(entry)); - if(name) - { + MSG_HIGH("name = %s", name); + + if (name) { char *new_name = NULL; new_name = ivug_strip_string(name); - if(new_name == NULL) - { - MSG_IMAGEVIEW_ERROR( "ivug_strip_string failed"); + if (new_name == NULL) { + MSG_ERROR("ivug_strip_string failed"); ecore_imf_context_input_panel_hide(elm_entry_imf_context_get(entry)); - ivug_timeout_popup_show(pNameView->layout, _on_timeout_response, pNameView, IDS_ERROR, IDS_ENTRY_IS_EMPTY); + ivug_timeout_popup_show(pNameView->layout, _on_timeout_response_reset, pNameView, IDS_ERROR, IDS_ENTRY_IS_EMPTY); free (name); return; } - if ( pNameView->fnresponse ) - { - (pNameView->fnresponse)(NAME_VIEW_RESPONSE_OK, new_name, pNameView->clientdata); + if (pNameView->fnresponse) { + (pNameView->fnresponse)(pNameView, NAME_VIEW_RESPONSE_OK, new_name, pNameView->clientdata); } free(name); - //destroy after pop and transit ended - //ivug_name_view_destroy(pNameView); - } - else - { + /* destroy after pop and transit ended */ + /* ivug_name_view_destroy(pNameView); */ + } else { ecore_imf_context_input_panel_hide(elm_entry_imf_context_get(entry)); } } -void -_ivug_name_view_maxlength_reached(void *data, Evas_Object *obj, void *event_info) +static void +_ivug_rename_view_on_entry_clicked(void *data, Evas_Object *obj, void *event_info) { Ivug_NameView *pNameView = (Ivug_NameView *)data; - IV_ASSERT(pNameView != NULL); + MSG_ASSERT(pNameView != NULL); + + elm_entry_select_none(pNameView->entry); - //todo : show popup + MSG_HIGH("Entry Clicked callback pNameView(0x%08x)", pNameView); + return; } static void -_ivug_name_view_done_cb(void *data, Evas_Object* obj, void* event_info ) +_ivug_name_view_maxlength_reached(void *data, Evas_Object *obj, void *event_info) { - MSG_IMAGEVIEW_HIGH( "pNameView Done "); Ivug_NameView *pNameView = (Ivug_NameView *)data; - IV_ASSERT(pNameView != NULL); - - Evas_Object *entry = elm_object_part_content_get(pNameView->editfield, "elm.icon.entry"); - - char *name = elm_entry_markup_to_utf8 ( elm_entry_entry_get(entry) ); + MSG_ASSERT(pNameView != NULL); - MSG_IMAGEVIEW_HIGH("name = %s", name); - - if(name) - { - char *new_name = NULL; - new_name = ivug_strip_string(name); - if(new_name == NULL) - { - MSG_IMAGEVIEW_ERROR( "ivug_strip_string failed"); - ecore_imf_context_input_panel_hide(elm_entry_imf_context_get(entry)); - ivug_timeout_popup_show(pNameView->layout, _on_timeout_response, pNameView, IDS_ERROR, IDS_ENTRY_IS_EMPTY); - free (name); +#ifdef USE_MAXLENGTH_VIBE + if (pNameView->haptic_handle == INVALID_HAPTIC_HANDLE) { + pNameView->haptic_handle = ivug_vibration_create(); + if (pNameView->haptic_handle == INVALID_HAPTIC_HANDLE) { + MSG_ERROR("ivug_vibration_create failed"); return; } + } else { + ivug_vibration_stop(pNameView->haptic_handle); + } - if ( pNameView->fnresponse ) - { - (pNameView->fnresponse)(NAME_VIEW_RESPONSE_OK, new_name, pNameView->clientdata); - } + ivug_vibration_play(pNameView->haptic_handle ,VIBRATION_DURATION); +#else + char message[50] = {0,}; + int ret = -1; + snprintf(message, 50, GET_STR(IDS_MAX_CHAR_LENGTH_REACHED), MAX_CHAR_LEN); - free(name); + ret = notification_status_message_post(message); + if (ret != NOTIFICATION_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("notification_status_message_post() ERROR [0x%x]", ret); } - - //destroy after pop and transit ended - //ivug_name_view_destroy(pNameView); +#endif } static void -_ivug_name_view_cancel_cb(void *data, Evas_Object *obj, void *event_info) +_ivug_name_view_callback_long_clicked_cb(void *data, Evas_Object *obj, void *event_info) { - MSG_IMAGEVIEW_HIGH("pNameView Back"); Ivug_NameView *pNameView = (Ivug_NameView *)data; - IV_ASSERT(pNameView != NULL); + MSG_ASSERT(pNameView != NULL); - if(pNameView->sip_show == true) - { - ecore_imf_context_input_panel_hide(elm_entry_imf_context_get(pNameView->entry)); - } - else - { - if ( pNameView->fnresponse ) - { - (pNameView->fnresponse)(NAME_VIEW_RESPONSE_CANCEL, NULL, pNameView->clientdata); - } + evas_object_smart_callback_del(pNameView->entry, "clicked", (Evas_Smart_Cb) + _ivug_rename_view_on_entry_clicked); - //destroy after pop and transit ended - //ivug_name_view_destroy(pNameView); -} + return; } -static void _ivug_name_view_on_entry_changed(void *data, Evas_Object *obj, void *event_info) +static void +_ivug_name_view_save_cb(void *data, Evas_Object* obj, void* event_info) { + MSG_HIGH("pNameView Saving "); Ivug_NameView *pNameView = (Ivug_NameView *)data; - IV_ASSERT(pNameView != NULL); - - if (elm_object_focus_get(obj)) - { - if (elm_entry_is_empty(obj)) - elm_object_signal_emit(pNameView->editfield, "elm,state,eraser,hide", ""); - else - elm_object_signal_emit(pNameView->editfield, "elm,state,eraser,show", ""); - } + MSG_ASSERT(pNameView != NULL); - Evas_Object *entry; + Evas_Object *entry = pNameView->entry; - entry = elm_object_part_content_get(pNameView->editfield, "elm.icon.entry"); + char *name = elm_entry_markup_to_utf8(elm_entry_entry_get(entry)); - char *content = elm_entry_markup_to_utf8 ( elm_entry_entry_get(entry) ); + MSG_HIGH("name = %s", name); - if (strlen(content) == 0) - { - MSG_IMAGEVIEW_HIGH("ISF1 : %s", content); - elm_object_part_text_set(pNameView->entry, "elm.guide", IDS_ENTER_NAME); - //elm_object_disabled_set(pNameView->btn_done, EINA_TRUE); - } - else if(ivug_validate_file_name(content) == false) - { - MSG_IMAGEVIEW_HIGH("invalid char ISF : %s", content); - char *new_str = strdup(content); - if (new_str) { - if (strlen(content) > 0) - new_str[strlen(content) - 1] = '\0'; - elm_entry_entry_set(pNameView->entry, new_str); - elm_entry_cursor_end_set(pNameView->entry); - free(new_str); - new_str = NULL; + if (name) { + char *new_name = NULL; + new_name = ivug_strip_string(name); + if (new_name == NULL) { + MSG_ERROR("ivug_strip_string failed"); + elm_object_focus_set(entry, EINA_FALSE); + ivug_timeout_popup_show(pNameView->layout, _on_timeout_response_reset, pNameView, IDS_ERROR, IDS_ENTRY_IS_EMPTY); + free (name); + return; } - ecore_imf_context_input_panel_hide(elm_entry_imf_context_get(pNameView->entry)); - ivug_timeout_popup_show(pNameView->layout, _on_invalid_name_timeout_response, - pNameView, NULL, IDS_INVALID_NAME); - } - else - { - MSG_IMAGEVIEW_HIGH("ISF : %s", content); - elm_object_part_text_set(pNameView->entry, "elm.guide", IDS_NULL); - elm_object_disabled_set(pNameView->btn_done, EINA_FALSE); - } - free(content ); + if (pNameView->fnresponse) { + (pNameView->fnresponse)(pNameView, NAME_VIEW_RESPONSE_OK, new_name, pNameView->clientdata); + } -} + free(name); + } -static void _ivug_name_view_on_entry_changed_user(void *data, Evas_Object *obj, void *event_info) -{ - MSG_IMAGEVIEW_HIGH("Entry changed by user"); + /* destroy after pop and transit ended */ + /* ivug_name_view_destroy(pNameView); */ } -static void _ivug_name_view_on_entry_preedit_changed(void *data, Evas_Object *obj, void *event_info) +static void +_ivug_name_view_cancel_cb(void *data, Evas_Object* obj, void* event_info) { - MSG_IMAGEVIEW_HIGH("_ivug_name_view_on_entry_preedit_changed"); + Ivug_NameView *pNameView = (Ivug_NameView *)data; + MSG_ASSERT(pNameView != NULL); - _ivug_name_view_on_entry_changed(data, obj, event_info); -} + MSG_HIGH("Name view(0x%08x) Cancel callback!", pNameView); -static void _ivug_name_view_on_entry_focused(void *data, Evas_Object *obj, void *event_info) -{ - MSG_IMAGEVIEW_HIGH("_ivug_name_view_on_entry_focused"); - if (!elm_entry_is_empty(obj)) - elm_object_signal_emit(data, "elm,state,eraser,show", ""); - elm_object_signal_emit(data, "elm,state,rename,hide", ""); + ecore_imf_context_input_panel_hide(elm_entry_imf_context_get(pNameView->entry)); + + if (pNameView->fnresponse) { + (pNameView->fnresponse)(pNameView, NAME_VIEW_RESPONSE_CANCEL, NULL, pNameView->clientdata); + } + + if (pNameView->popup) { + evas_object_del(pNameView->popup); + pNameView->popup = NULL; + } + if (pNameView->ivTemp_entry) { + free(pNameView->ivTemp_entry); + pNameView->ivTemp_entry = NULL; + } } -static void _ivug_name_view_on_entry_unfocused(void *data, Evas_Object *obj, void *event_info) +static bool _ivug_validate_text(const char *text, const char *filter) { - MSG_IMAGEVIEW_HIGH("_ivug_name_view_on_entry_unfocused"); + if (!text) + return false; - elm_object_signal_emit(data, "elm,state,eraser,hide", ""); - elm_object_signal_emit(data, "elm,state,rename,show", ""); -} + if (filter == NULL) + return true; + const char *tmp = text; -static void -_ivug_name_view_eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source) -{ - elm_object_focus_set(data, EINA_TRUE); // After button is clicked, entry should get focus again. - elm_entry_entry_set(data, ""); + /* hidden property check */ + if (strncmp(tmp, ".", strlen(".")) == 0) { + return false; + } + + /* check bad character */ + while (*tmp != '\0') { + if (strchr(filter, *tmp) != NULL) { + MSG_ERROR("Invalid text=%s char=%c", text, *tmp); + return false; + } + tmp++; + } + return true; } -static Evas_Object *_ivug_name_view_editfield_create(void *data, Evas_Object *obj) +static void _ivug_name_view_on_entry_changed(void *data, Evas_Object *obj, void *event_info) { Ivug_NameView *pNameView = (Ivug_NameView *)data; + MSG_ASSERT(pNameView != NULL); - Evas_Object *editfield = elm_layout_add(obj); - elm_layout_theme_set(editfield, "layout", "item/editfield", "default"); + Evas_Object *entry = pNameView->entry; - Evas_Object *entry = elm_entry_add(editfield); - elm_entry_single_line_set(entry, EINA_TRUE); - elm_entry_scrollable_set(entry, EINA_TRUE); - elm_object_part_text_set(entry, "elm.guide", IDS_ENTER_NAME); + char *content = elm_entry_markup_to_utf8(elm_entry_entry_get(entry)); - evas_object_smart_callback_add(entry, "activated", _ivug_rename_view_enter_click_cb, pNameView); - evas_object_smart_callback_add(entry, "changed", _ivug_name_view_on_entry_changed, pNameView); - evas_object_smart_callback_add(entry, "preedit,changed", _ivug_name_view_on_entry_preedit_changed, pNameView); - evas_object_smart_callback_add(entry, "changed,user", _ivug_name_view_on_entry_changed_user, pNameView); - evas_object_smart_callback_add(entry, "focused", _ivug_name_view_on_entry_focused, editfield); - evas_object_smart_callback_add(entry, "unfocused", _ivug_name_view_on_entry_unfocused, editfield); + if (!content) { + return; + } - elm_object_part_content_set(editfield, "elm.icon.entry", entry); + if (strlen(content) == 0) { + MSG_HIGH("Input string is NULL"); + ivug_elm_object_part_text_set(gGetLanguageHandle(), pNameView->entry, "elm.guide", pNameView->guide_txt); - //MSG_IMAGEVIEW_HIGH("entry = %s", elm_entry_entry_get(entry)); + if (pNameView->bAllowNull == EINA_FALSE) { + elm_object_disabled_set(pNameView->btn_done, EINA_TRUE); + } + } else if (_ivug_validate_text(content, pNameView->filter_txt) == false) { + MSG_HIGH("invalid char ISF : %s", content); + int position = elm_entry_cursor_pos_get(pNameView->entry); + elm_entry_entry_set(pNameView->entry, elm_entry_utf8_to_markup(pNameView->ivTemp_entry)); + elm_entry_cursor_begin_set(pNameView->entry); + elm_entry_cursor_pos_set(pNameView->entry, position - 1); + if (content) { + free(content); + content = NULL; + } + content = strdup(pNameView->ivTemp_entry); + int ret = notification_status_message_post(GET_STR(IDS_INVALID_NAME)); + if (ret != NOTIFICATION_ERROR_NONE) { + MSG_IMAGEVIEW_ERROR("notification_status_message_post() ERROR [0x%x]", ret); + } - Evas_Object *button = elm_button_add(editfield); - elm_object_style_set(button, "editfield_clear"); // Make "X" marked button by changing style. - elm_object_part_content_set(editfield, "elm.icon.eraser", button); // Add eraser button to current editfield layout. - evas_object_smart_callback_add(button, "clicked", _ivug_name_view_eraser_clicked_cb, entry); + ivug_name_view_show_imf(pNameView); + } else { + MSG_HIGH("ISF: %s", content); + ivug_elm_object_part_text_set(gGetLanguageHandle(), pNameView->entry, "elm.guide", IDS_NULL); + char *new_name = ivug_strip_string(content); - pNameView->entry = entry; + if ((pNameView->init_txt && strcmp(pNameView->init_txt, content) == 0) || new_name == NULL) { + elm_object_disabled_set(pNameView->btn_done, EINA_TRUE); + } else { + elm_object_disabled_set(pNameView->btn_done, EINA_FALSE); + } + } + if (pNameView->ivTemp_entry) { + free(pNameView->ivTemp_entry); + pNameView->ivTemp_entry = NULL; + } + pNameView->ivTemp_entry = content; +} - pNameView->editfield = editfield; +static void _ivug_name_view_on_entry_changed_user(void *data, Evas_Object *obj, void *event_info) +{ + MSG_HIGH("Entry changed by user"); +} - return pNameView->editfield; +static void _ivug_name_view_on_entry_preedit_changed(void *data, Evas_Object *obj, void *event_info) +{ + MSG_HIGH("_ivug_name_view_on_entry_preedit_changed"); + _ivug_name_view_on_entry_changed(data, obj, event_info); } -static Evas_Object *_ivug_name_view_create_content(Ivug_NameView *pNameView, Evas_Object *parent) + +static Evas_Object *_ivug_name_view_editfield_create(Ivug_NameView *pNameView) { - ivug_retvm_if(!pNameView, NULL, "pNameView is NULL"); - ivug_retvm_if(!parent, NULL, "parent is NULL"); + Evas_Object *editfield = NULL; + + if (pNameView->mode == NAME_VIEW_MODE_SINGLE_LINE) { + editfield = elm_entry_add(pNameView->layout); + elm_entry_single_line_set(editfield, EINA_TRUE); + elm_entry_scrollable_set(editfield, EINA_TRUE); + } else { + editfield = elm_entry_add(pNameView->layout); + } + + elm_entry_select_none(pNameView->entry); - Eina_Bool ret = EINA_FALSE; + evas_object_smart_callback_add(editfield, "activated", _ivug_rename_view_on_entry_actiavated, pNameView); + evas_object_smart_callback_add(editfield, "clicked", _ivug_rename_view_on_entry_clicked, pNameView); + evas_object_smart_callback_add(editfield, "changed", _ivug_name_view_on_entry_changed, pNameView); + evas_object_smart_callback_add(editfield, "preedit,changed", _ivug_name_view_on_entry_preedit_changed, pNameView); + evas_object_smart_callback_add(editfield, "changed,user", _ivug_name_view_on_entry_changed_user, pNameView); + evas_object_smart_callback_add(editfield, "maxlength,reached", (Evas_Smart_Cb)_ivug_name_view_maxlength_reached, pNameView); + evas_object_smart_callback_add(editfield, "longpressed", (Evas_Smart_Cb)_ivug_name_view_callback_long_clicked_cb, pNameView); - Evas_Object *content_lay = elm_layout_add(parent); - evas_object_size_hint_weight_set(content_lay, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_fill_set(content_lay, EVAS_HINT_FILL, EVAS_HINT_FILL ); - ret = elm_layout_file_set(content_lay, EDJ_PATH"/ivug-name-view.edj", "name_view"); - MSG_IMAGEVIEW_HIGH("ret is %d", ret); - ivug_retvm_if(ret == EINA_FALSE, NULL, "elm_layout_file_set ailed"); + evas_object_size_hint_weight_set(editfield, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(editfield, EVAS_HINT_FILL, EVAS_HINT_FILL); - Evas_Object *editfield = _ivug_name_view_editfield_create(pNameView, content_lay); - elm_object_part_content_set(content_lay, "entry_part", editfield); + elm_entry_cnp_mode_set(editfield, ELM_CNP_MODE_PLAINTEXT); - evas_object_show(editfield); + return editfield; - return content_lay; } Ivug_NameView * -ivug_name_view_create(Evas_Object *parent, const char *title) +ivug_name_view_create(Evas_Object *parent, ivug_name_mode mode) { - MSG_IMAGEVIEW_HIGH( "... "); + MSG_HIGH("NameView Create"); - IV_ASSERT(parent != NULL); + MSG_ASSERT(parent != NULL); Ivug_NameView *pNameView = calloc(1, sizeof(Ivug_NameView)); - if ( pNameView == NULL) - { - MSG_IMAGEVIEW_ERROR("Cannot allocated memory"); + if (pNameView == NULL) { + MSG_ERROR("Cannot allocated memory"); return NULL; } - MSG_IMAGEVIEW_HIGH( "Add Name View creation"); +#ifdef USE_MAXLENGTH_VIBE + pNameView->haptic_handle = INVALID_HAPTIC_HANDLE; +#endif - pNameView->layout = ivug_default_layout_add(parent); + pNameView->popup = elm_popup_add(parent); - if ( pNameView->layout == NULL) - { - MSG_IMAGEVIEW_ERROR("Cannot create layout"); + elm_object_domain_translatable_part_text_set(pNameView->popup, "title,text", "sys_string", IDS_RENAME); + /* Create view base layout */ + pNameView->layout = ivug_layout_add2(pNameView->popup, IVUG_POPUP_EDJ_NAME, "popup_input_text"); + evas_object_name_set(pNameView->layout, "NameBase"); + if (pNameView->layout == NULL) { + MSG_ERROR("Cannot create layout"); free(pNameView); return NULL; } - pNameView->bg = ivug_bg_add(pNameView->layout, IVUG_DEFAULT_BG_COLOR, IVUG_DEFAULT_BG_COLOR, IVUG_DEFAULT_BG_COLOR); - - if ( pNameView->bg == NULL) - { - MSG_IMAGEVIEW_ERROR("Cannot create bg"); - free(pNameView); - return NULL; - } - - elm_object_part_content_set(pNameView->layout, "elm.swallow.bg", pNameView->bg); - - Evas_Object *navi_bar; - navi_bar = elm_naviframe_add(pNameView->layout); - - if ( navi_bar == NULL) - { - MSG_IMAGEVIEW_ERROR("Cannot create navigation bar"); - free(pNameView); - return NULL; - } - - //using default naviframe + /* Create layout & edit field */ + pNameView->entry = _ivug_name_view_editfield_create(pNameView); + evas_object_name_set(pNameView->entry, "Entry"); + evas_object_show(pNameView->entry); - elm_object_part_content_set(pNameView->layout, "elm.swallow.content", navi_bar ); - evas_object_show(navi_bar); + evas_object_data_set(pNameView->entry, "entry data", pNameView); - pNameView->navibar = navi_bar; + if (mode == NAME_VIEW_MODE_SINGLE_LINE) { + elm_object_part_content_set(pNameView->layout, "elm.swallow.content", pNameView->entry); - pNameView->content = _ivug_name_view_create_content(pNameView, navi_bar); - if(pNameView->content == NULL) - { - MSG_IMAGEVIEW_ERROR("Cannot create navigation bar"); - free(pNameView); - return NULL; + elm_object_content_set(pNameView->popup, pNameView->layout); } - Evas_Object *cancel_button, *done_button; + Evas_Object *btn_cancel = ivug_button_add(pNameView->popup, "popup_button/default", + gGetLanguageHandle(), IDS_CANCEL, NULL, _ivug_name_view_cancel_cb, pNameView); + elm_object_part_content_set(pNameView->popup, "button1", btn_cancel); - cancel_button = ivug_button_add(navi_bar, "naviframe/end_btn/default", NULL, NULL, _ivug_name_view_cancel_cb, pNameView ); + Evas_Object *btn_done = ivug_button_add(pNameView->popup, "popup_button/default", + gGetLanguageHandle(), IDS_RENAME_BUTTON, NULL, _ivug_name_view_save_cb, pNameView); + elm_object_part_content_set(pNameView->popup, "button2", btn_done); - done_button = ivug_button_add(navi_bar, "naviframe/toolbar/default", IDS_DONE, NULL, _ivug_name_view_done_cb, pNameView ); + elm_object_disabled_set(btn_done, EINA_TRUE); - pNameView->btn_done = done_button; + pNameView->btn_done = btn_done; - //elm_object_disabled_set(done_button, EINA_TRUE); + eext_object_event_callback_add(pNameView->popup, EEXT_CALLBACK_BACK, _ivug_name_view_cancel_cb, pNameView); - Elm_Object_Item *navi_it = NULL; - navi_it = elm_naviframe_item_push(pNameView->navibar, title, cancel_button, NULL, pNameView->content, NULL); - - Evas_Object *conformant = ug_get_conformant(); - - evas_object_smart_callback_add(conformant, "virtualkeypad,state,on", _on_keypad_show, pNameView); - evas_object_smart_callback_add(conformant, "virtualkeypad,state,off", _on_keypad_hide, pNameView); - evas_object_smart_callback_add(conformant, "clipboard,state,on", _on_keypad_show, pNameView); - evas_object_smart_callback_add(conformant, "clipboard,state,off", _on_keypad_hide, pNameView); - - evas_object_event_callback_add(pNameView->content, EVAS_CALLBACK_RESIZE, _on_resized, (void *)pNameView); - - elm_object_signal_emit(conformant, "elm,state,indicator,nooverlap", ""); - - //ivug_name_view_set_focus(pNameView); - - elm_object_item_part_content_set(navi_it, "toolbar_button1", done_button); - //elm_object_item_part_content_set(navi_it, "title_toolbar_button1", done_button); - //elm_object_item_part_content_set(navi_it, "title_prev_btn", cancel_button); - //elm_object_item_signal_emit(navi_it, "elm,state,sip,shown", ""); + evas_object_show(pNameView->popup); + MSG_HIGH("Created NameView. Obj=0x%08x", pNameView->layout); return pNameView; } @@ -469,36 +466,38 @@ ivug_name_view_destroy(Ivug_NameView *pNameView) { ivug_ret_if(pNameView == NULL); - MSG_IMAGEVIEW_HIGH( "Destroy Name View"); + MSG_HIGH("Destroy Name View"); - if(pNameView->entry) - { - evas_object_del(pNameView->entry); - pNameView->entry = NULL; +#ifdef USE_MAXLENGTH_VIBE + if (pNameView->haptic_handle != INVALID_HAPTIC_HANDLE) { + ivug_vibration_stop(pNameView->haptic_handle); + ivug_vibration_delete(pNameView->haptic_handle); + + pNameView->haptic_handle = INVALID_HAPTIC_HANDLE; } +#endif - if(pNameView->editfield) - { - evas_object_del(pNameView->editfield); - pNameView->editfield = NULL; + if (pNameView->navibar) { + evas_object_del(pNameView->navibar); + pNameView->navibar = NULL; } - if(pNameView->content) - { - evas_object_del(pNameView->content); - pNameView->content = NULL; + if (pNameView->guide_txt) { + free(pNameView->guide_txt); } - if(pNameView->navibar) - { - evas_object_del(pNameView->navibar); - pNameView->navibar = NULL; + if (pNameView->init_txt) { + free(pNameView->init_txt); + pNameView->init_txt = NULL; } - if(pNameView->layout) - { - evas_object_del(pNameView->layout); - pNameView->layout = NULL; + if (pNameView->popup) { + evas_object_del(pNameView->popup); + pNameView->popup = NULL; + } + + if (pNameView->filter_txt) { + free(pNameView->filter_txt); } Evas_Object *conformant = ug_get_conformant(); @@ -511,78 +510,147 @@ ivug_name_view_destroy(Ivug_NameView *pNameView) free(pNameView); pNameView = NULL; - MSG_IMAGEVIEW_HIGH("Name view removed"); + MSG_HIGH("Name view removed"); } Evas_Object * ivug_name_view_object_get(Ivug_NameView *pNameView) { - IV_ASSERT(pNameView != NULL); + MSG_ASSERT(pNameView != NULL); return pNameView->layout; - } void ivug_name_view_set_response_callback(Ivug_NameView *pNameView, FNResponse resp, void *data) { - IV_ASSERT(pNameView != NULL); + MSG_ASSERT(pNameView != NULL); - if ( pNameView->fnresponse != NULL ) - { - MSG_IMAGEVIEW_WARN("Old response callback is overwritten"); + if (pNameView->fnresponse != NULL) { + MSG_WARN("Old response callback is overwritten"); } pNameView->fnresponse = resp; pNameView->clientdata = data; - } + void ivug_name_view_set_title(Ivug_NameView *pNameView, const char *title) { - IV_ASSERT(pNameView!=NULL); - - Elm_Object_Item *navi_it; + MSG_ASSERT(pNameView != NULL); - navi_it = elm_naviframe_top_item_get(pNameView->navibar); + elm_object_item_part_text_set(pNameView->navi_it, "elm.text.title", title); - elm_object_item_part_text_set(navi_it, "elm.text.title", title); + char *domain = ivug_language_mgr_get_text_domain(title); + elm_object_item_domain_text_translatable_set(pNameView->navi_it, domain, EINA_TRUE); } void -ivug_name_view_set_entry(Ivug_NameView *pNameView, const char *str) +ivug_name_view_set_text(Ivug_NameView *pNameView, const char *str) { - IV_ASSERT(pNameView!=NULL); + MSG_ASSERT(pNameView != NULL); + + MSG_HIGH("Set Text : %s", str); + + char *markup = elm_entry_utf8_to_markup(str); - elm_entry_entry_set(pNameView->entry, str); + if (markup != NULL) { + pNameView->init_txt = strdup(markup); + } + + elm_entry_entry_set(pNameView->entry, markup); + elm_entry_select_all(pNameView->entry); + elm_object_focus_set(pNameView->entry, EINA_TRUE); elm_entry_cursor_end_set(pNameView->entry); + + if (markup) { + free(markup); + markup = NULL; + } } void ivug_name_view_set_focus(Ivug_NameView *pNameView) { + MSG_ASSERT(pNameView != NULL); + + MSG_HIGH("Set Focus on entry. pNameView(0x%08x)", pNameView); + elm_entry_cursor_end_set(pNameView->entry); evas_object_show(pNameView->entry); + elm_object_focus_set(pNameView->entry, EINA_TRUE); // show keypad } void ivug_name_view_set_max_length(Ivug_NameView *pNameView, int max_len) { - IV_ASSERT(pNameView!=NULL); + MSG_ASSERT(pNameView != NULL); - MSG_IMAGEVIEW_HIGH("ivug_name_view_set_max_length to %d", max_len); + MSG_HIGH("ivug_name_view_set_max_length to %d", max_len); Evas_Object *entry = pNameView->entry; static Elm_Entry_Filter_Limit_Size limit_filter_data; - limit_filter_data.max_char_count = 0; - limit_filter_data.max_byte_count = max_len; + limit_filter_data.max_char_count = MAX_CHAR_LEN; elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &limit_filter_data); evas_object_smart_callback_add(entry, "maxlength,reached", _ivug_name_view_maxlength_reached, (void *) pNameView); } +void +ivug_name_view_set_guide_text(Ivug_NameView *pNameView, const char *text_id) +{ + MSG_ASSERT(pNameView != NULL); + + MSG_HIGH("ivug_name_view_set_guide_text %s", text_id); + + Evas_Object *entry = pNameView->entry; + + if (pNameView->guide_txt) { + free(pNameView->guide_txt); + } + + pNameView->guide_txt = strdup(text_id); + + ivug_elm_object_part_text_set(gGetLanguageHandle(), entry, "elm.guide", pNameView->guide_txt); +} + +void +ivug_name_view_set_filter_text(Ivug_NameView *pNameView, const char *filter_text) +{ + MSG_ASSERT(pNameView != NULL); + + MSG_HIGH("ivug_name_view_set_guide_text %s", filter_text); + + if (pNameView->filter_txt) + free(pNameView->filter_txt); + + pNameView->filter_txt = strdup(filter_text); +} + + +void ivug_name_view_allow_null_set(Ivug_NameView *pNameView, Eina_Bool bNullAllowed) +{ + MSG_ASSERT(pNameView != NULL); + + pNameView->bAllowNull = bNullAllowed; + + if (pNameView->bAllowNull == EINA_TRUE) { + elm_object_disabled_set(pNameView->btn_done, EINA_FALSE); + } +} + +void ivug_name_view_show_imf(Ivug_NameView *pNameView) +{ + MSG_ASSERT(pNameView != NULL); + + if (pNameView->entry) { + evas_object_show(pNameView->entry); + elm_object_focus_set(pNameView->entry, EINA_TRUE); + } +} + diff --git a/main/src/view/ivug-photocam.cpp b/main/src/view/ivug-photocam.cpp new file mode 100755 index 0000000..bf2473d --- /dev/null +++ b/main/src/view/ivug-photocam.cpp @@ -0,0 +1,680 @@ +/* +* Copyright (c) 2000-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 "ivug-main-view.h" +#include "ivug-photocam.h" +#include "ivug-main-view-priv.h" +#include "ivug-main-view-toolbar.h" + +#define ABS(x) ((x) < 0 ? -(x) : (x)) +#define PC_MOVE_INTERVAL_TIME 0.02f + +#undef LOG_LVL +#define LOG_LVL (DBG_MSG_LVL_HIGH | DBG_MSG_LVL_DEBUG) + +#undef LOG_CAT +#define LOG_CAT "IV-PHOTOCAM" + +/*initialize the values on finger touch to the screen*/ +void _on_slider_mouse_down (void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + IV_ASSERT(data != NULL); + Ivug_MainView *pMainView = (Ivug_MainView *)data; + Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down *) event_info; + pMainView->prev_mouse_point = 0; + pMainView->last_prev_mouse_point = ev->output.x; + pMainView->is_moved = false; + ivug_set_photocam_reset(pMainView->pSliderNew); + MSG_MAIN_HIGH("mouse down (%d,%d)", ev->output.x, ev->output.y); +} +/*Move the photocam images along with the finger*/ +void _on_slider_mouse_moved (void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + IV_ASSERT(data != NULL); + Ivug_MainView *pMainView = (Ivug_MainView *)data; + Evas_Event_Mouse_Move *ev = (Evas_Event_Mouse_Move *) event_info; + MSG_MAIN_LOW("mouse moved current(%d,%d) prev (%d,%d)", ev->cur.output.x, ev->cur.output.y,ev->prev.output.x, ev->prev.output.y); + int bx=0; + int by=0; + int bw=0; + int bh=0; + + int count= -1; + int currentindex = -1; + if (pMainView->slide_state == true) { + MSG_MAIN_HIGH("Sliding is happening"); + return ;//Do not accept the flick event if transition is not completed + } + + Evas_Object *sn_layout = ivug_slider_new_get_layout(pMainView->pSliderNew); + + if (pMainView->cur_mitem && ivug_isslide_enabled(pMainView->pSliderNew)) { + count = ivug_medialist_get_count(pMainView->mList); + Media_Data *pData = ivug_medialist_get_data(pMainView->cur_mitem); + currentindex = pData->index; + } + + if (pMainView->prev_mouse_point != 0 && currentindex != -1 && count != -1 && ivug_isslide_enabled(pMainView->pSliderNew) && pMainView->bmultitouchsliding == false) { + if (pMainView->currentphotocam == PHOTOCAM_0) { + evas_object_geometry_get(pMainView->photocam0, &bx, &by, &bw, &bh); + } else if(pMainView->currentphotocam == PHOTOCAM_1) { + evas_object_geometry_get(pMainView->photocam, &bx, &by, &bw, &bh); + } else if(pMainView->currentphotocam == PHOTOCAM_2) { + evas_object_geometry_get(pMainView->photocam2, &bx, &by, &bw, &bh); + } + + MSG_HIGH("current index = %d , diff %d",currentindex, ev->cur.output.x - pMainView->prev_mouse_point); + if ((ev->cur.output.x - pMainView->prev_mouse_point < 0 && ( currentindex + 1 < count + || (currentindex + 1 == count && bx > 0 ) ) ) || ( ev->cur.output.x - pMainView->prev_mouse_point > 0 + && (currentindex > 0 ))) { + pMainView->is_moved = true; + + int diffX = pMainView->last_prev_mouse_point - ev->cur.output.x ; + if (pMainView->is_play_Icon == true && (diffX > 10 || diffX < -10)) { + pMainView->is_play_Icon = false; + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "hide,icon", "video_play_icon"); + } + + ivug_slider_set_current_Photocam(pMainView->pSliderNew,pMainView->currentphotocam); + ivug_slider_set_Photocam_moved(pMainView->pSliderNew,pMainView->is_moved); + if (pMainView->currentphotocam == PHOTOCAM_0) { + evas_object_geometry_get(pMainView->photocam0, &bx, &by, &bw, &bh); + MSG_HIGH("_on_slider_mouse_moved current x,y %d,%d",bx,by); + evas_object_move(pMainView->photocam0,bx+(ev->cur.output.x - pMainView->prev_mouse_point ) ,by); + if (currentindex+1 != count) { + evas_object_geometry_get(pMainView->photocam, &bx, &by, &bw, &bh); + evas_object_move(pMainView->photocam,bx+(ev->cur.output.x - pMainView->prev_mouse_point ) ,by); + } + + if (currentindex != 0) { + evas_object_geometry_get(pMainView->photocam2, &bx, &by, &bw, &bh); + evas_object_move(pMainView->photocam2,bx+(ev->cur.output.x - pMainView->prev_mouse_point ) ,by); + } + } else if (pMainView->currentphotocam == PHOTOCAM_1) { + evas_object_geometry_get(pMainView->photocam, &bx, &by, &bw, &bh); + MSG_HIGH("_on_slider_mouse_moved current x,y %d,%d",bx,by); + evas_object_move(pMainView->photocam,bx+(ev->cur.output.x - pMainView->prev_mouse_point ) ,by); + if (currentindex+1 != count) { + evas_object_geometry_get(pMainView->photocam2, &bx, &by, &bw, &bh); + evas_object_move(pMainView->photocam2,bx+(ev->cur.output.x - pMainView->prev_mouse_point ) ,by); + } + + if (currentindex != 0) { + evas_object_geometry_get(pMainView->photocam0, &bx, &by, &bw, &bh); + evas_object_move(pMainView->photocam0,bx+(ev->cur.output.x - pMainView->prev_mouse_point ) ,by); + } + } else if (pMainView->currentphotocam == PHOTOCAM_2) { + evas_object_geometry_get(pMainView->photocam2, &bx, &by, &bw, &bh); + MSG_HIGH("_on_slider_mouse_moved current x,y %d,%d",bx,by); + evas_object_move(pMainView->photocam2,bx+(ev->cur.output.x - pMainView->prev_mouse_point ) ,by); + if (currentindex+1 != count) { + evas_object_geometry_get(pMainView->photocam0, &bx, &by, &bw, &bh); + evas_object_move(pMainView->photocam0,bx+(ev->cur.output.x - pMainView->prev_mouse_point ) ,by); + } + + if (currentindex != 0) { + evas_object_geometry_get(pMainView->photocam, &bx, &by, &bw, &bh); + evas_object_move(pMainView->photocam,bx+(ev->cur.output.x - pMainView->prev_mouse_point ) ,by); + } + } + } + /* + * Below condition check if the last + * item in the folder is video and when + * slide left slightly video play icon disappear + * and again come back at original position + * then video play icon should appear + */ + Media_Data *pData = ivug_medialist_get_data(pMainView->cur_mitem); + if (( pMainView->last_prev_mouse_point - ev->cur.output.x > -10 ) && ( pMainView->is_play_Icon == false ) && ( currentindex + 1 == count ) && ( pData->slide_type == SLIDE_TYPE_VIDEO )){ + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "show,icon", "video_play_icon"); + pMainView->is_play_Icon = true; + } + } + + pMainView->prev_mouse_point = ev->cur.output.x; + // pMainView->last_prev_mouse_point = ev->prev.output.x; +} + +void update_check(Ivug_MainView *pMainView) +{ + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); + Media_Data *mdata = ivug_medialist_get_data(mitem); + Eina_List *l = NULL; + void *data = NULL; + char **files = NULL; + int i = 0 ; + int check = 0; + + files = (char **)malloc(sizeof(char *) * pMainView->total_selected); + if (!files) { + MSG_MAIN_WARN("failed to allocate memory"); + return; + } + + if (pMainView->selected_path_list) { + EINA_LIST_FOREACH(pMainView->selected_path_list, l, data) { + files[i] = strdup((char *)data); + MSG_MAIN_HIGH("file is %s",files[i]); + if (strcmp(mdata->filepath,files[i])==0) { + evas_object_color_set(pMainView->check,255,255,255,255); + elm_check_state_set(pMainView->check,EINA_TRUE); + check = 1; + } + i++; + } + if (check == 0) { + evas_object_color_set(pMainView->check,128,138,137,255); + elm_check_state_set(pMainView->check,EINA_FALSE); + } + } + free(files); + + char buf[64] = {0,}; + snprintf(buf, 64, GET_STR(IDS_PD_SELECTED), pMainView->total_selected); + elm_layout_text_set(pMainView->select_bar, "elm.text.title", buf); +} +/*Do the respective operation on releasing the finger from the screen*/ +void _on_slider_mouse_up (void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + IV_ASSERT(data != NULL); + Ivug_MainView *pMainView = (Ivug_MainView *)data; + Evas_Event_Mouse_Up *ev = (Evas_Event_Mouse_Up *) event_info; + MSG_MAIN_HIGH("mouse up (%d,%d)", ev->output.x, ev->output.y); + if (pMainView->slide_state == true || ivug_isphotocam_reset(pMainView->pSliderNew)) { + MSG_MAIN_HIGH("Sliding is happening"); + return ;//Do not accept the flick event if transition is not completed + } + int count= -1; + int currentindex = -1; + pMainView->prevphotocam = pMainView->currentphotocam; + + if (pMainView->is_moved && ivug_isslide_enabled(pMainView->pSliderNew)) { + + if (pMainView->cur_mitem) { + count = ivug_medialist_get_count(pMainView->mList); + Media_Data *pData = ivug_medialist_get_data(pMainView->cur_mitem); + currentindex = pData->index; + MSG_MAIN_HIGH(" _main_view_eventbox_flick_left_cb currentindex = %d count =%d ",currentindex,count); + } + + int diffX = pMainView->last_prev_mouse_point - ev->output.x ; + + if (diffX > 10) { + //left flick code + + if (count != -1 && currentindex != -1 && currentindex+1 < count) { + if (pMainView->currentphotocam == PHOTOCAM_1) { + pMainView->currentphotocam = PHOTOCAM_2; + } else if (pMainView->currentphotocam == PHOTOCAM_2) { + pMainView->currentphotocam = PHOTOCAM_0; + } else if (pMainView->currentphotocam == PHOTOCAM_0) { + pMainView->currentphotocam = PHOTOCAM_1; + } + + MSG_MAIN_HIGH ("prevphotocam = %d current photocam %d",pMainView->prevphotocam, pMainView->currentphotocam); + pMainView->cur_mitem = ivug_medialist_get_next(pMainView->mList, pMainView->cur_mitem); + ivug_medialist_set_current_item(pMainView->mList, pMainView->cur_mitem); + + // Update Main View. + if (pMainView->bShowMenu == true) { + PERF_CHECK_BEGIN(LVL5, "Update main view"); + _update_main_view(pMainView); + PERF_CHECK_END(LVL5, "Update main view"); + } + ivug_medialist_get_data(pMainView->cur_mitem); + + if (pMainView->slide_move_timer) { + ecore_timer_del(pMainView->slide_move_timer); + pMainView->slide_move_timer = NULL; + } + + pMainView->slide_move_timer = ecore_timer_add(PC_MOVE_INTERVAL_TIME,_ivug_left_move_interval,pMainView); + pMainView->slide_state = true;//set it to true until the tranition completes. +#ifdef USE_THUMBLIST + if (pMainView->thumbs) { + Media_Item *mItem = ivug_medialist_get_current_item(pMainView->mList); + + Image_Object *img = NULL; + img = ivug_thumblist_find_item_by_data(pMainView->thumbs, mItem); // Find thumb item of new image,. + if (img != NULL) { + pMainView->bSetThmByUser = true; + ivug_thumblist_select_item(pMainView->thumbs, img); + } + } +#endif + } + } + else if (diffX < (-10)) { + // right flick code + + if (currentindex != -1 && currentindex > 0) { + if (pMainView->currentphotocam == PHOTOCAM_1) { + pMainView->currentphotocam = PHOTOCAM_0; + } else if (pMainView->currentphotocam == PHOTOCAM_2) { + pMainView->currentphotocam = PHOTOCAM_1; + } else if (pMainView->currentphotocam == PHOTOCAM_0) { + pMainView->currentphotocam = PHOTOCAM_2; + } + + pMainView->cur_mitem = ivug_medialist_get_prev(pMainView->mList, pMainView->cur_mitem); + ivug_medialist_set_current_item(pMainView->mList, pMainView->cur_mitem); + + // Update Main View. + if (pMainView->bShowMenu == true) { + PERF_CHECK_BEGIN(LVL5, "Update main view"); + _update_main_view(pMainView); + PERF_CHECK_END(LVL5, "Update main view"); + } + + ivug_medialist_get_data(pMainView->cur_mitem); + + if (pMainView->slide_move_timer) { + ecore_timer_del(pMainView->slide_move_timer); + pMainView->slide_move_timer = NULL; + } + + pMainView->slide_move_timer = ecore_timer_add(PC_MOVE_INTERVAL_TIME,_ivug_right_move_interval,pMainView); + pMainView->slide_state = true;//set it to true until the tranition completes. +#ifdef USE_THUMBLIST + if (pMainView->thumbs) { + Media_Item *mItem = ivug_medialist_get_current_item(pMainView->mList); + + Image_Object *img = NULL; + img = ivug_thumblist_find_item_by_data(pMainView->thumbs, mItem); // Find thumb item of new image,. + if (img != NULL) { + pMainView->bSetThmByUser = true; + ivug_thumblist_select_item(pMainView->thumbs, img); + } + } +#endif + } + } + } + pMainView->prev_mouse_point = 0; + pMainView->last_prev_mouse_point = 0; + pMainView->is_moved = false; + return; +} + +/* slide the image on flick left */ +Eina_Bool _ivug_left_move_interval(void *data) +{ + Ivug_MainView *pMainView = (Ivug_MainView *)data; + bool movepossible = false; + update_check(pMainView); + Evas_Object *sn_layout = ivug_slider_new_get_layout(pMainView->pSliderNew); + + ivug_disable_gesture(pMainView->pSliderNew); + + if (pMainView->prevphotocam == PHOTOCAM_1) { + elm_photocam_zoom_mode_set(pMainView->photocam, ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT); + movepossible = _main_view_object_move_(pMainView, pMainView->photocam, PC_POSITION_LEFT); + movepossible = _main_view_object_move_(pMainView, pMainView->photocam2, PC_POSITION_CENTER); + } else if (pMainView->prevphotocam == PHOTOCAM_2) { + elm_photocam_zoom_mode_set(pMainView->photocam2, ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT); + movepossible = _main_view_object_move_(pMainView, pMainView->photocam2, PC_POSITION_LEFT); + movepossible = _main_view_object_move_(pMainView, pMainView->photocam0, PC_POSITION_CENTER); + } else if (pMainView->prevphotocam == PHOTOCAM_0) { + elm_photocam_zoom_mode_set(pMainView->photocam0, ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT); + movepossible = _main_view_object_move_(pMainView, pMainView->photocam0, PC_POSITION_LEFT); + movepossible = _main_view_object_move_(pMainView, pMainView->photocam, PC_POSITION_CENTER); + } + + if (!movepossible) { + MSG_MAIN_HIGH("left_transit_done signal triggered"); + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "left_transit_done", "imageview_area"); + Media_Item *next_mitem = ivug_medialist_get_next(pMainView->mList, pMainView->cur_mitem); + + if(next_mitem){ + Media_Data *pData = ivug_medialist_get_data(next_mitem); + + if (pData->slide_type == SLIDE_TYPE_IMAGE) { + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "hide,icon", "video_play_icon"); + pMainView->is_play_Icon = false; + } + else{ + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "show,icon", "video_play_icon"); + pMainView->is_play_Icon = true; + } + } + pMainView->slide_move_timer = NULL; + return ECORE_CALLBACK_CANCEL; + } + + return ECORE_CALLBACK_RENEW; +} + +/* slide the image on flick right */ +Eina_Bool _ivug_right_move_interval(void *data) +{ + + MSG_MAIN_HIGH("_ivug_right_move_interval"); + Ivug_MainView *pMainView = (Ivug_MainView *)data; + bool movepossible = false; + update_check(pMainView); + Evas_Object *sn_layout = ivug_slider_new_get_layout(pMainView->pSliderNew); + + ivug_disable_gesture(pMainView->pSliderNew); + + if (pMainView->prevphotocam == PHOTOCAM_1) { + elm_photocam_zoom_mode_set(pMainView->photocam, ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT); + movepossible = _main_view_object_move_(pMainView, pMainView->photocam, PC_POSITION_RIGHT); + movepossible = _main_view_object_move_(pMainView, pMainView->photocam0, PC_POSITION_CENTER); + } else if (pMainView->prevphotocam == PHOTOCAM_2) { + elm_photocam_zoom_mode_set(pMainView->photocam2, ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT); + movepossible = _main_view_object_move_(pMainView, pMainView->photocam2, PC_POSITION_RIGHT); + movepossible = _main_view_object_move_(pMainView, pMainView->photocam, PC_POSITION_CENTER); + } else if (pMainView->prevphotocam == PHOTOCAM_0) { + elm_photocam_zoom_mode_set(pMainView->photocam0, ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT); + movepossible = _main_view_object_move_(pMainView, pMainView->photocam0, PC_POSITION_RIGHT); + movepossible = _main_view_object_move_(pMainView, pMainView->photocam2, PC_POSITION_CENTER); + } + + if (!movepossible) { + MSG_MAIN_HIGH("right_transit_done signal triggered"); + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "right_transit_done", "imageview_area"); + Media_Item *prev_mitem = ivug_medialist_get_prev(pMainView->mList, pMainView->cur_mitem); + + if(prev_mitem){ + Media_Data *pmData = ivug_medialist_get_data(prev_mitem); + + if (pmData->slide_type == SLIDE_TYPE_IMAGE) { + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "hide,icon", "video_play_icon"); + pMainView->is_play_Icon = false; + } + else{ + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "show,icon", "video_play_icon"); + pMainView->is_play_Icon = true; + } + } + + pMainView->slide_move_timer = NULL; + return ECORE_CALLBACK_CANCEL; + } + + return ECORE_CALLBACK_RENEW; +} + +/* Move the image until image fits the screen*/ +bool _main_view_object_move_ (Ivug_MainView *pMainView, Evas_Object *obj, int photocampos) +{ + int bx,by,bw,bh; + evas_object_geometry_get(obj, &bx, &by, &bw, &bh); + Evas_Object *win = (Evas_Object *)ug_get_window(); + int wx, wy, ww, wh; + evas_object_geometry_get(win, &wx, &wy, &ww, &wh); + + MSG_MAIN_LOW("_main_view_object_move_ enter,ww =%d wh = %d",ww,wh); + int pixelmovx = 15; + int pixelmovy; + if (pMainView->mode == IVUG_MODE_SELECT) { + pixelmovy = by; + } else { + pixelmovy = 0; + } + + if( photocampos == PC_POSITION_LEFT) //left -240 + { + int rem= ww - ABS(bx); + int rempixels = rem % pixelmovx; + int count = rem / pixelmovx; + if(count >0 ) + { + evas_object_move(obj,bx-pixelmovx,pixelmovy); + evas_object_geometry_get(obj, &bx, &by, &bw, &bh); + } + evas_object_move(obj,bx-rempixels,pixelmovy); + if(count == 0 ) + return false; + } + else if( photocampos == PC_POSITION_CENTER) //centre 0 + { + int rem = ABS(bx); + int rempixels = rem % pixelmovx; + int count = rem / pixelmovx; + if(count >0 ) + { + if( bx > 0 ) + evas_object_move(obj,bx-pixelmovx,pixelmovy); + else + evas_object_move(obj,bx+pixelmovx,pixelmovy); + evas_object_geometry_get(obj, &bx, &by, &bw, &bh); + } + if( bx > 0 ) + evas_object_move(obj,bx-rempixels,pixelmovy); + else + evas_object_move(obj,bx+rempixels,pixelmovy); + if(count == 0 ) + return false; + + } + else if( photocampos == PC_POSITION_RIGHT) //right 240 + { + int rem= ww - ABS(bx); + int rempixels = rem % pixelmovx; + int count = rem / pixelmovx; + if(count >0 ) + { + evas_object_move(obj,bx+pixelmovx,pixelmovy); + evas_object_geometry_get(obj, &bx, &by, &bw, &bh); + } + evas_object_move(obj,bx+rempixels,pixelmovy); + if(count == 0 ) + return false; + } + return true; +} + +/* When the left transition is completed Rearrange the photocam images*/ +void +_ivug_main_view_left_transit_by_item_complete_cb(void *data, Evas_Object * obj, const char *emission, const char *source) +{ + MSG_MAIN_HIGH("emission: %s, source: %s", emission, source); + Ivug_MainView *pMainView = (Ivug_MainView *)data; + Evas_Object *sn_layout = ivug_slider_new_get_layout(pMainView->pSliderNew); + + ivug_enable_gesture(pMainView->pSliderNew); + + if(pMainView->prevphotocam == PHOTOCAM_1) { + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "set_stop", "imageview_area_temp2"); + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "set_left", "imageview_area"); + + } else if(pMainView->prevphotocam == PHOTOCAM_2) { + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "set_stop", "imageview_area_temp0"); + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "set_left", "imageview_area_temp2"); + + } else if(pMainView->prevphotocam == PHOTOCAM_0) { + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "set_stop", "imageview_area"); + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "set_left", "imageview_area_temp0"); + } + + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); + if (mitem) { + Media_Data *mData = ivug_medialist_get_data(mitem); + + if (mData->slide_type == SLIDE_TYPE_IMAGE) { + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "hide,icon", "video_play_icon"); + pMainView->is_play_Icon = false; + } else { + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "show,icon", "video_play_icon"); + pMainView->is_play_Icon = true; + } + } + + if(pMainView->currentphotocam == PHOTOCAM_2) { + MSG_MAIN_HIGH("TC currentphotocam == 2"); + ivug_slider_new_set_photocam(pMainView->pSliderNew,pMainView->photocam2); + const char *prev_iva = "imageview_area"; + const char *next_iva = "imageview_area_temp0"; + ivug_set_prev_next_photocam_images(pMainView, &pMainView->photocam,&pMainView->photocam0,prev_iva,next_iva); + } + if(pMainView->currentphotocam == PHOTOCAM_0) { + MSG_MAIN_HIGH("TR currentphotocam == 0"); + ivug_slider_new_set_photocam(pMainView->pSliderNew,pMainView->photocam0); + const char *prev_iva = "imageview_area_temp2"; + const char *next_iva = "imageview_area"; + ivug_set_prev_next_photocam_images(pMainView, &pMainView->photocam2,&pMainView->photocam,prev_iva,next_iva); + } + if(pMainView->currentphotocam == PHOTOCAM_1) { + MSG_MAIN_HIGH("TR currentphotocam == 1"); + ivug_slider_new_set_photocam(pMainView->pSliderNew,pMainView->photocam); + const char *prev_iva = "imageview_area_temp0"; + const char *next_iva = "imageview_area_temp2"; + ivug_set_prev_next_photocam_images(pMainView, &pMainView->photocam0,&pMainView->photocam2,prev_iva,next_iva); + } + pMainView->slide_state = false;//Transition is completed. +} + +/* When the right transition is completed Rearrange the photocam images*/ +void +_ivug_main_view_right_transit_by_item_complete_cb(void *data, Evas_Object * obj, const char *emission, const char *source) +{ + MSG_MAIN_HIGH("emission: %s, source: %s", emission, source); + Ivug_MainView *pMainView = (Ivug_MainView *)data; + Evas_Object *sn_layout = ivug_slider_new_get_layout(pMainView->pSliderNew); + + ivug_enable_gesture(pMainView->pSliderNew); + + if(pMainView->prevphotocam == PHOTOCAM_1) { + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "set_stop", "imageview_area_temp0"); + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "set_right", "imageview_area"); + } else if(pMainView->prevphotocam == PHOTOCAM_2) { + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "set_stop", "imageview_area"); + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "set_right", "imageview_area_temp2"); + } else if(pMainView->prevphotocam == PHOTOCAM_0) { + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "set_stop", "imageview_area_temp2"); + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "set_right", "imageview_area_temp0"); + } + + Media_Item *mitem = ivug_medialist_get_current_item(pMainView->mList); + if(mitem){ + Media_Data *mData = ivug_medialist_get_data(mitem); + + if (mData->slide_type == SLIDE_TYPE_IMAGE) { + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "hide,icon", "video_play_icon"); + pMainView->is_play_Icon = false; + } else { + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "show,icon", "video_play_icon"); + pMainView->is_play_Icon = true; + } + } + + if(pMainView->currentphotocam == PHOTOCAM_2) { + ivug_slider_new_set_photocam(pMainView->pSliderNew,pMainView->photocam2); + const char *prev_iva = "imageview_area"; + const char *next_iva = "imageview_area_temp0"; + ivug_set_prev_next_photocam_images(pMainView, &pMainView->photocam,&pMainView->photocam0,prev_iva,next_iva); + } + if(pMainView->currentphotocam == PHOTOCAM_0) { + ivug_slider_new_set_photocam(pMainView->pSliderNew,pMainView->photocam0); + const char *prev_iva = "imageview_area_temp2"; + const char *next_iva = "imageview_area"; + ivug_set_prev_next_photocam_images(pMainView, &pMainView->photocam2,&pMainView->photocam,prev_iva,next_iva); + } + if(pMainView->currentphotocam == PHOTOCAM_1) { + ivug_slider_new_set_photocam(pMainView->pSliderNew,pMainView->photocam); + const char *prev_iva = "imageview_area_temp0"; + const char *next_iva = "imageview_area_temp2"; + ivug_set_prev_next_photocam_images(pMainView, &pMainView->photocam0,&pMainView->photocam2,prev_iva,next_iva); + } + pMainView->slide_state = false;//Transition is completed. +} + +/* Used to create a new photocam image*/ +void ivug_create_new_photocam_image(void *data, Evas_Object **cur_pc, const char *cur_iva) +{ + MSG_MAIN_HIGH(" ivug_create_new_photocam_image"); + Ivug_MainView *pMainView = (Ivug_MainView *)data; + Evas_Object *sn_layout = ivug_slider_new_get_layout(pMainView->pSliderNew); + *cur_pc = elm_photocam_add(sn_layout); + elm_photocam_gesture_enabled_set(*cur_pc,EINA_TRUE); + evas_object_size_hint_expand_set(*cur_pc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(*cur_pc, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_object_part_content_set(sn_layout, cur_iva, *cur_pc); + elm_photocam_zoom_mode_set(*cur_pc, ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT); + elm_photocam_paused_set(*cur_pc, EINA_TRUE); + evas_object_size_hint_weight_set(*cur_pc, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + +} + +/*Make the previous and next photocam images ready for smooth movement of images*/ +void ivug_set_prev_next_photocam_images(void *data, Evas_Object **prev_pc,Evas_Object **next_pc, const char *prev_iva,const char *next_iva) +{ + MSG_MAIN_HIGH(" ivug_main_view_set_prev_next_photocam_images"); + Ivug_MainView *pMainView = (Ivug_MainView *)data; + Evas_Object *sn_layout = ivug_slider_new_get_layout(pMainView->pSliderNew); + Evas_Load_Error err = EVAS_LOAD_ERROR_NONE; + + Media_Item *prev_mitem = ivug_medialist_get_prev(pMainView->mList, pMainView->cur_mitem); + + // Update Main View. + if (pMainView->bShowMenu == true) { + PERF_CHECK_BEGIN(LVL5, "Update main view"); + _update_main_view(pMainView); + PERF_CHECK_END(LVL5, "Update main view"); + } + if (prev_mitem) { + Media_Data *pmData = ivug_medialist_get_data(prev_mitem); + if ((*prev_pc) == NULL) { + ivug_create_new_photocam_image(pMainView, prev_pc, prev_iva); + } + + if (pmData->slide_type == SLIDE_TYPE_VIDEO ) { + elm_photocam_file_set(*prev_pc, pmData->thumbnail_path); + } else { + err = elm_photocam_file_set(*prev_pc, pmData->filepath); + + if (EVAS_LOAD_ERROR_NONE != err) { + MSG_HIGH("Loading default Thumbnail"); + elm_photocam_file_set(*prev_pc, DEFAULT_THUMBNAIL); + } + } + evas_object_show(*prev_pc); + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "set_left", prev_iva); + } + + Media_Item *next_mitem = ivug_medialist_get_next(pMainView->mList, pMainView->cur_mitem); + + // Update Main View. + if (pMainView->bShowMenu == true) { + PERF_CHECK_BEGIN(LVL5, "Update main view"); + _update_main_view(pMainView); + PERF_CHECK_END(LVL5, "Update main view"); + } + if (next_mitem) { + Media_Data *pmData = ivug_medialist_get_data(next_mitem); + if ((*next_pc) == NULL) { + ivug_create_new_photocam_image(pMainView, next_pc, next_iva); + } + + if (pmData->slide_type == SLIDE_TYPE_VIDEO) { + elm_photocam_file_set(*next_pc, pmData->thumbnail_path); + } else { + err = elm_photocam_file_set(*next_pc, pmData->filepath); + + if (EVAS_LOAD_ERROR_NONE != err) { + MSG_HIGH("Loading default Thumbnail"); + elm_photocam_file_set(*next_pc, DEFAULT_THUMBNAIL); + } + } + evas_object_show(*next_pc); + edje_object_signal_emit(elm_layout_edje_get(sn_layout), "set_right",next_iva); + } +} diff --git a/main/src/view/ivug-photocam.h b/main/src/view/ivug-photocam.h new file mode 100755 index 0000000..d106ee8 --- /dev/null +++ b/main/src/view/ivug-photocam.h @@ -0,0 +1,56 @@ +/* +* Copyright (c) 2000-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 __IVUG_PHOTOCAM_H__ +#define __IVUG_PHOTOCAM_H__ + +#include "ivug-common.h" +#include "ivug-parameter.h" +#include "ivug-medialist.h" + +#include "ivug-thumblist.h" +#include "Evas.h" +enum +{ + PC_POSITION_LEFT = 0, + PC_POSITION_CENTER , + PC_POSITION_RIGHT , +}; +#ifdef __cplusplus +extern "C" { +#endif + +/* + Photocam images +*/ +void _on_slider_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info); + void _on_slider_mouse_down (void *data, Evas *e, Evas_Object *obj, void *event_info); + void _on_slider_mouse_moved (void *data, Evas *e, Evas_Object *obj, void *event_info); + Eina_Bool _ivug_left_move_interval(void *data); + Eina_Bool _ivug_right_move_interval(void *data); + bool _main_view_object_move_ (Ivug_MainView *pMainView, Evas_Object *obj, int photocampos); + void _ivug_main_view_left_transit_by_item_complete_cb(void *data, Evas_Object * obj, const char *emission, const char *source); +void _ivug_main_view_right_transit_by_item_complete_cb(void *data, Evas_Object * obj, const char *emission, const char *source); +void ivug_create_new_photocam_image(void *data, Evas_Object **cur_pc, const char *cur_iva); +void update_check(Ivug_MainView *pMainView); +void ivug_set_prev_next_photocam_images(void *data, Evas_Object **prev_pc,Evas_Object **next_pc, const char *prev_iva,const char *next_iva); + +#ifdef __cplusplus +} +#endif + +#endif //__IVUG_PHOTOCAM_H__ diff --git a/main/src/view/ivug-setas-view-callerid.cpp b/main/src/view/ivug-setas-view-callerid.cpp deleted file mode 100755 index 58f51c2..0000000 --- a/main/src/view/ivug-setas-view-callerid.cpp +++ /dev/null @@ -1,637 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ivug-define.h" - -#include "ivug-setas-view-callerid.h" -#include "ivug-setas-view.h" - -#include "ivug-selectioninfo.h" - -#include "ivug-image.h" -#include "ivug-drm-common.h" -#include "EFLUtil.h" -#include "ivug-scissorbox.h" - -#include "ivug-db.h" - -#define EDJ_PATH PREFIX"/res/edje/"PACKAGE - -#define SETAS_EDJ_FILE EDJ_PATH"/ivug-setas.edj" - -#define CLICK_TIME_MAX (500) // click time. -#define CLICK_WIDTH_MIN (elm_config_finger_size_get() >> 1) //click width, if mouse move under this value and under click time, it is click. -#define CLICK_INTERVAL_TIME 0.15 - -/* it is temp define, because scroll, scroll,anim,end is called earlyer. - So find bound of scissor box again after SETAS_INTERVAL_TIME */ -#define SETAS_INTERVAL_TIME 0.1 -#define SETAS_INTERVAL_TIME_FIRST_LOAD 0.3 - -#define CROP_BOX_INTERVAL_TIME 0.3 - -typedef struct { - Evas_Object *layout; - Evas_Object *notify; - Evas_Object *notify_area; - Evas_Object *photocam; - - Evas_Object *contents_area; - - Evas_Object *gesture; - - Evas_Object *btn_ok; - - bool bShowMenu; // Current state for button's visibility - - char *filepath; - char *drm_filepath; - - Evas_Coord_Rectangle rect; - - int prev_x; - int prev_y; - int prev_w; - int prev_h; - - struct { - Evas_Object *box; - double ratio; - - Eina_Bool bAspectPreserve; - } crop; - - Ecore_Timer *box_timer; - -} TSetAsData; - -#define SETAS_DATA(obj) \ - (TSetAsData *)evas_object_data_get((Evas_Object *)(obj), "pSetAsData") - -static void _on_moved(void *data, Evas *e, Evas_Object *obj, void *event_info); -static void _on_resized(void *data, Evas *e, Evas_Object *obj, void *event_info); - -static void _put_scissorbox_default(TSetAsData *pSetAsData) -{ - Evas_Object *image = ivug_image_internal_image_get(pSetAsData->photocam); - - int image_w = 0; - int image_h = 0; - double ratio = pSetAsData->crop.ratio; - Evas_Coord_Rectangle rect = {0,}; - - ivug_image_image_size_get(pSetAsData->photocam, &image_w, &image_h); // Get original image size. - - /*int degree = ivug_image_rotate_get(pSetAsData->photocam); - if(degree == 90 || degree == 270) //rotated - { - int temp = image_w; - image_w = image_h; - image_h = temp; - }*/ - - int lcd_x, lcd_y, lcd_w, lcd_h; - - evas_object_geometry_get(pSetAsData->contents_area, &lcd_x, &lcd_y, &lcd_w, &lcd_h); - MSG_SETAS_HIGH("lcd_x=%d, lcd_y=%d, lcd_w=%d, lcd_h=%d", lcd_x, lcd_y, lcd_w, lcd_h); - - int px, py, pw, ph; - ivug_image_region_get(pSetAsData->photocam, &px, &py, &pw, &ph); - - px = (lcd_w - pw) / 2; // do not use previous px, px is invalid because transition effect - - MSG_SETAS_WARN("region XYWH(%d,%d,%d,%d)", px, py, pw, ph); - - int ix, iy, iw, ih; - - if ( image_w > image_h ) // Landscape image - { - if(ratio > 1.0) // height is larger - { - iw = image_h / (2 * ratio); - ih = image_h / 2; - } - else - { - iw = image_h / 2; - ih = (image_h * ratio) / 2; - } - } - else - { - if(ratio > 1.0) // height is larger - { - iw = image_w / (2 * ratio); - ih = image_w / 2; - } - else - { - iw = image_w / 2; - ih = (image_w * ratio) / 2; - } - } - - ix = (image_w - iw)/2; - iy = (image_h - ih)/2; - - - rect.x = (double)ix * pw / image_w + px; - rect.y = (double)iy * ph / image_h + py; - - rect.w = (double)iw * pw / image_w; - rect.h = (double)ih * ph / image_h; - - MSG_SETAS_WARN("Zoom Put Box in LCD XYWH(%d,%d,%d,%d)", - rect.x, rect.y, rect.w, rect.h); - - ivug_scissorbox_region_set(pSetAsData->crop.box, rect.x, rect.y, rect.w, rect.h); - - ivug_scissorbox_attach(pSetAsData->crop.box, image); // Attach to photocam - - ivug_scissorbox_boundary_set(pSetAsData->crop.box, px, py, pw, ph); - - pSetAsData->prev_x = px; //lcd_x is wrong because transition effect - pSetAsData->prev_y = py; - pSetAsData->prev_w = pw; - pSetAsData->prev_h = ph; -} - -static Eina_Bool _put_scissorbox_timer_cb(void *data) -{ - TSetAsData *pSetAsData = SETAS_DATA(data); - - pSetAsData->box_timer = NULL; - - _put_scissorbox_default(pSetAsData); - - elm_object_disabled_set(pSetAsData->btn_ok, EINA_FALSE); - - return ECORE_CALLBACK_CANCEL; -} - - -static void -_on_btn_ok_clicked(void *data, Evas_Object *obj, void *event_info) -{ - TSetAsData *pSetAsData = SETAS_DATA(data); - IV_ASSERT(pSetAsData != NULL); - - MSG_SETAS_HIGH("OK button clicked"); - evas_object_smart_callback_call(pSetAsData->layout, "ok,clicked", NULL); - - evas_object_event_callback_del_full(pSetAsData->layout, EVAS_CALLBACK_MOVE, _on_moved, pSetAsData->layout); - evas_object_event_callback_del_full(pSetAsData->layout, EVAS_CALLBACK_RESIZE, _on_resized, pSetAsData->layout); - - if ( pSetAsData->crop.box ) - { - evas_object_del(pSetAsData->crop.box); - pSetAsData->crop.box = NULL; - } - -} - -static void -_on_photocam_loaded(void *data, Evas_Object *obj, void *event_info) -{ - TSetAsData *pSetAsData = SETAS_DATA(data); - MSG_SETAS_HIGH("Photocam preloaded"); - -#if 0 - typedef enum _Evas_Load_Error - { - EVAS_LOAD_ERROR_NONE = 0, /**< No error on load */ - EVAS_LOAD_ERROR_GENERIC = 1, /**< A non-specific error occurred */ - EVAS_LOAD_ERROR_DOES_NOT_EXIST = 2, /**< File (or file path) does not exist */ - EVAS_LOAD_ERROR_PERMISSION_DENIED = 3, /**< Permission deinied to an existing file (or path) */ - EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED = 4, /**< Allocation of resources failure prevented load */ - EVAS_LOAD_ERROR_CORRUPT_FILE = 5, /**< File corrupt (but was detected as a known format) */ - EVAS_LOAD_ERROR_UNKNOWN_FORMAT = 6 /**< File is not a known format */ - } Evas_Load_Error; /**< Load error you can get from loading of files - see evas_load_error_str() too */ -#endif - - Evas_Load_Error error = static_cast((int)event_info); - - if ( error != EVAS_LOAD_ERROR_NONE ) - { - MSG_SETAS_ERROR("Error occured during decoding. Error=%d", error); - - if ( error == EVAS_LOAD_ERROR_UNKNOWN_FORMAT ) - { - evas_object_smart_callback_call(pSetAsData->layout, "load,failed", (void *)SETAS_ERROR_TYPE_UNKNOWN_FORMAT); - } - else if ( error == EVAS_LOAD_ERROR_PERMISSION_DENIED ) - { - evas_object_smart_callback_call(pSetAsData->layout, "load,failed", (void *)SETAS_ERROR_TYPE_PERMISSION_DENIED); - } - else - { - evas_object_smart_callback_call(pSetAsData->layout, "load,failed", (void *)SETAS_ERROR_TYPE_INVALID_FILE); - } - - return; - } - - MSG_SETAS_HIGH("Photocam loaded."); - - pSetAsData->box_timer = ecore_timer_add(CROP_BOX_INTERVAL_TIME, _put_scissorbox_timer_cb, (void *)pSetAsData->layout); - - evas_object_smart_callback_call(pSetAsData->layout, "loaded", NULL); - - pSetAsData->notify_area = const_cast(edje_object_part_object_get(_EDJ(pSetAsData->layout), - "setasview.contents.swallow.notify")); - - pSetAsData->notify = ivug_notify_static_create(pSetAsData->notify_area, IDS_CALLER_ID_NOTIFY, NOTIFY_ALIGN_BOTTOM); -} - - -static void _on_moved(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ -// TSetAsData *pSetAsData = SETAS_DATA(data); - -} - -static void _on_resized(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - TSetAsData *pSetAsData = SETAS_DATA(data); - /////////////////////////////////////////////////////////////////// - int org_x, org_y, org_w, org_h; - - MSG_SETAS_MED("prev_x=%d, prev_y=%d, prev_w=%d, prev_h=%d", pSetAsData->prev_x, pSetAsData->prev_y, pSetAsData->prev_w, pSetAsData->prev_h); - - org_x = pSetAsData->prev_x; - org_y = pSetAsData->prev_y; - org_w = pSetAsData->prev_w; - org_h = pSetAsData->prev_h; - - if(org_w == 0 || org_h == 0) - return; - - int org_sx, org_sy, org_sw, org_sh; - ivug_scissorbox_region_get(pSetAsData->crop.box, &org_sx, &org_sy, &org_sw, &org_sh); - - MSG_SETAS_MED("org_sx=%d, org_sy=%d, org_sw=%d, org_sh=%d", org_sx, org_sy, org_sw, org_sh); - - int dx = org_sx-org_x; - int dy = org_sy-org_y; - - int lcd_x, lcd_y, lcd_w, lcd_h; - - evas_object_geometry_get(pSetAsData->contents_area, &lcd_x, &lcd_y, &lcd_w, &lcd_h); - MSG_SETAS_MED("lcd_x=%d, lcd_y=%d, lcd_w=%d, lcd_h=%d", lcd_x, lcd_y, lcd_w, lcd_h); - - int ph, pw; - - int img_w, img_h; - int ext_w, ext_h; - - img_w = org_w; - img_h = org_h; - ext_w = lcd_w; - ext_h = lcd_h; - - ph = (img_h * ext_w) / img_w; - - if (ph > ext_h) - { - pw = (img_w * ext_h) / img_h; - ph = ext_h; - } - else - { - pw = ext_w; - } - - double zoom = 0.0; - - if ( img_w > img_h) - { - zoom = (double)pw / img_w; - } - else - { - zoom = (double)ph / img_h; - } - - int sx, sy, sw, sh; - - sw = org_sw*zoom; - sh = org_sh*zoom; - dx *= zoom; - dy *= zoom; - - sx = lcd_x + (ext_w-img_w*zoom)/2 + dx; - sy = lcd_y + (ext_h-img_h*zoom)/2 + dy; - - - int bound_x, bound_y, bound_w, bound_h; - - bound_x = lcd_x+(ext_w-img_w*zoom)/2; - bound_y = lcd_y+(ext_h-img_h*zoom)/2; - bound_w = img_w*zoom; - bound_h = img_h*zoom; - - ivug_scissorbox_boundary_set(pSetAsData->crop.box, bound_x, bound_y, bound_w, bound_h); - - /////////////////////////////////////////////////////////////////// - - MSG_SETAS_MED("sx=%d, sy=%d, sw=%d, sh=%d", sx, sy, sw, sh); - - ivug_scissorbox_region_set(pSetAsData->crop.box, sx, sy, sw, sh); - - pSetAsData->prev_x = bound_x; - pSetAsData->prev_y = bound_y; - pSetAsData->prev_w = bound_w; - pSetAsData->prev_h = bound_h; - - MSG_SETAS_MED("prev_x=%d, prev_y=%d, prev_w=%d, prev_h=%d", pSetAsData->prev_x, pSetAsData->prev_y, pSetAsData->prev_w, pSetAsData->prev_h); -} - -static Evas_Event_Flags _finger_tap_end(void *data , void *event_info) -{ - Elm_Gesture_Taps_Info *p = (Elm_Gesture_Taps_Info *) event_info; - - MSG_SETAS_HIGH("Finger tab end. evt=%d", p->timestamp); - - if ( p->n != 1 ) return EVAS_EVENT_FLAG_NONE; - - TSetAsData *pSetAsData = (TSetAsData *)data; - IV_ASSERT(pSetAsData != NULL); - - if(pSetAsData->bShowMenu) - { - MSG_SETAS_HIGH("Hide"); - elm_win_indicator_mode_set((Evas_Object*)ug_get_window(), ELM_WIN_INDICATOR_HIDE); - evas_object_hide(pSetAsData->notify); - } - else - { - MSG_SETAS_HIGH("Show"); - if(gIsDesktopMode() == false) - { - elm_win_indicator_mode_set((Evas_Object *)ug_get_window(), ELM_WIN_INDICATOR_SHOW); - } - evas_object_show(pSetAsData->notify); - } - - pSetAsData->bShowMenu = !pSetAsData->bShowMenu; - - return EVAS_EVENT_FLAG_NONE; -} - -void _add_gesture_layer(Evas_Object *parent, TSetAsData *pSetAsData) -{ - IV_ASSERT(pSetAsData != NULL); - - Evas_Object *gesture = pSetAsData->gesture; - - gesture = elm_gesture_layer_add(parent); - elm_gesture_layer_hold_events_set(gesture, EINA_FALSE); - - elm_gesture_layer_cb_set(gesture, ELM_GESTURE_N_TAPS, ELM_GESTURE_STATE_END, _finger_tap_end, (void *)pSetAsData); - - if ( elm_gesture_layer_attach(gesture, pSetAsData->photocam) == EINA_FALSE) - { - MSG_SETAS_ERROR("Cannot attach event rect"); - } - - evas_object_name_set(gesture, "CallerID:Getsture"); -} - -Evas_Object *_ivug_setas_callerid_create_layout(Evas_Object *parent) -{ - TSetAsData *pSetAsData = (TSetAsData *)calloc(1, sizeof(TSetAsData)); - - if ( pSetAsData == NULL ) - { - MSG_SETAS_ERROR("Cannot alloc pSetasData"); - return NULL; - } - - Evas_Object *photocam = NULL; - - pSetAsData->layout = ivug_layout_add2(parent, SETAS_EDJ_FILE, "setas_view"); - if ( pSetAsData->layout == NULL ) - { - MSG_SETAS_ERROR("Cannot create layout."); - goto error; - } - - MSG_SETAS_HIGH("Create setas layout"); - pSetAsData->contents_area = ivug_default_layout_add(parent); - evas_object_name_set(pSetAsData->contents_area, "contets_area"); - if ( pSetAsData->contents_area == NULL ) - { - MSG_SETAS_ERROR("Cannot create contets_area."); - } - - elm_object_part_content_set(pSetAsData->layout, "setasview.contents.swallow", pSetAsData->contents_area); - - pSetAsData->crop.box = ivug_scissorbox_add(pSetAsData->contents_area); - - if ( pSetAsData->crop.box == NULL ) - { - MSG_SETAS_ERROR("Cannot create layout."); - goto error; - } - - evas_object_smart_member_add(pSetAsData->crop.box, pSetAsData->layout); - - photocam = ivug_image_create(pSetAsData->layout); - ivug_image_animated_set(photocam, EINA_FALSE); // Show first frame only when AGIF - ivug_image_hold_set(photocam , EINA_TRUE); // Disable mouse events - - evas_object_name_set(photocam, "setas_photocam"); - - pSetAsData->photocam = photocam; - - evas_object_smart_callback_add(photocam, "loaded", _on_photocam_loaded, (void *)pSetAsData->layout); - elm_object_part_content_set(pSetAsData->layout, "setasview.photocam", photocam); - evas_object_show(photocam); - - pSetAsData->bShowMenu = true; - //_add_gesture_layer(pSetAsData->layout, pSetAsData); - - evas_object_data_set(pSetAsData->layout, "pSetAsData", pSetAsData); - evas_object_event_callback_add(pSetAsData->layout, EVAS_CALLBACK_MOVE, _on_moved, pSetAsData->layout); - evas_object_event_callback_add(pSetAsData->layout, EVAS_CALLBACK_RESIZE, _on_resized, pSetAsData->layout); - - return pSetAsData->layout; - -error: - if ( pSetAsData->crop.box ) - evas_object_del(pSetAsData->crop.box); - - if ( pSetAsData->layout ) - evas_object_del(pSetAsData->layout); - - if ( pSetAsData ) - free(pSetAsData); - - return NULL; -} - -Evas_Object *_ivug_setas_callerid_delete_layout(Evas_Object *obj) -{ - TSetAsData *pSetAsData = SETAS_DATA(obj); - IV_ASSERT(pSetAsData != NULL); - - if(pSetAsData->box_timer) - { - ecore_timer_del(pSetAsData->box_timer); - pSetAsData->box_timer = NULL; - } - - if(pSetAsData->photocam) - { - MSG_SETAS_HIGH("Removing photocam"); - evas_object_del(pSetAsData->photocam); - pSetAsData->photocam = NULL; - } - - if(pSetAsData->notify) - { - evas_object_del(pSetAsData->notify); - pSetAsData->notify = NULL; - } - - if(pSetAsData->contents_area) - { - evas_object_del(pSetAsData->contents_area); - pSetAsData->contents_area = NULL; - } - - if(pSetAsData->layout) - { - evas_object_event_callback_del_full(pSetAsData->layout, EVAS_CALLBACK_MOVE, _on_moved, pSetAsData->layout); - evas_object_event_callback_del_full(pSetAsData->layout, EVAS_CALLBACK_RESIZE, _on_resized, pSetAsData->layout); - evas_object_del(pSetAsData->layout); - pSetAsData->layout = NULL; - } - - if(pSetAsData->crop.box) - { - evas_object_del(pSetAsData->crop.box); - pSetAsData->crop.box = NULL; - } - if(pSetAsData->filepath) - { - free(pSetAsData->filepath); - pSetAsData->filepath = NULL; - } - - if(pSetAsData->drm_filepath) - { - ivug_remove_file(pSetAsData->drm_filepath); - free(pSetAsData->drm_filepath); - pSetAsData->drm_filepath = NULL; - } - - if(pSetAsData->btn_ok) - { - evas_object_del(pSetAsData->btn_ok); - pSetAsData->btn_ok = NULL; - } - - free(pSetAsData); - - return NULL; -} - -bool _ivug_setas_callerid_load_file(Evas_Object *obj, const char *filepath) -{ - TSetAsData *pSetAsData = SETAS_DATA(obj); - - MSG_SETAS_HIGH("Load image file : %s", filepath); - - pSetAsData->filepath = strdup(filepath); - - Evas_Load_Error error = EVAS_LOAD_ERROR_NONE; - error = ivug_image_file_set(pSetAsData->photocam, filepath, "noAnim"); - - if ( error != EVAS_LOAD_ERROR_NONE ) - { - MSG_SETAS_ERROR("FileSet Error=%d", error); - - if ( error == EVAS_LOAD_ERROR_UNKNOWN_FORMAT ) - { - evas_object_smart_callback_call(pSetAsData->layout, "load,failed", (void *)SETAS_ERROR_TYPE_UNKNOWN_FORMAT); - return false; - } - else if ( error == EVAS_LOAD_ERROR_PERMISSION_DENIED ) - { - evas_object_smart_callback_call(pSetAsData->layout, "load,failed", (void *)SETAS_ERROR_TYPE_PERMISSION_DENIED); - return false; - } - else - { - evas_object_smart_callback_call(pSetAsData->layout, "load,failed", (void *)SETAS_ERROR_TYPE_INVALID_FILE); - return false; - } - - return false; - } - - return true; -} - -Evas_Object *_ivug_setas_callerid_internal_image_get(Evas_Object *obj) -{ - TSetAsData *pSetAsData = SETAS_DATA(obj); - - MSG_SETAS_HIGH("Internal image get!"); - - return pSetAsData->photocam; -} - -bool _ivug_setas_callerid_select_region_get(Evas_Object *obj, int *x, int *y, int *w, int *h) -{ - TSetAsData *pSetAsData = SETAS_DATA(obj); - - if ( pSetAsData->crop.box == NULL) - { - return false; - } - - ivug_scissorbox_region_get(pSetAsData->crop.box, x, y, w, h); - - return true; -} - - -void _ivug_setas_callerid_aspect_ratio_set(Evas_Object *obj, double ratio) -{ - TSetAsData *pSetAsData = SETAS_DATA(obj); - - pSetAsData->crop.bAspectPreserve = TRUE; - pSetAsData->crop.ratio = ratio; - - ivug_scissorbox_ratio_fix( pSetAsData->crop.box, EINA_TRUE); -} - -void _ivug_setas_callerid_create_menu(Evas_Object *obj, Evas_Object *navi_bar) -{ - TSetAsData *pSetAsData = SETAS_DATA(obj); - - pSetAsData->btn_ok = ivug_button_add(navi_bar, "naviframe/toolbar/default", - IDS_SAVE, NULL, _on_btn_ok_clicked, (void *)pSetAsData->layout); - - Elm_Object_Item *navi_it = elm_naviframe_top_item_get(navi_bar); - elm_object_item_part_content_set(navi_it, "toolbar_button1", pSetAsData->btn_ok); - - elm_object_disabled_set(pSetAsData->btn_ok, EINA_TRUE); -} - diff --git a/main/src/view/ivug-setas-view-callerid.h b/main/src/view/ivug-setas-view-callerid.h deleted file mode 100755 index 4219f7c..0000000 --- a/main/src/view/ivug-setas-view-callerid.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 __IVUG_SETAS_CALLERID_H__ -#define __IVUG_SETAS_CALLERID_H__ - -#include "ivug-common.h" - -// This functions are used for Crop(AUL) and CallerID(UG) - -#ifdef __cplusplus -extern "C" { -#endif - - -/* - "load,failed" - Image decoding error - "ok,clicked" - Button "OK" clicked - "cancel,clicked" - Button "Cancel" clicked -*/ -Evas_Object *_ivug_setas_callerid_create_layout(Evas_Object *parent); - -Evas_Object *_ivug_setas_callerid_delete_layout(Evas_Object *obj); - -bool _ivug_setas_callerid_load_file(Evas_Object *obj, const char *filepath); - -Evas_Object *_ivug_setas_callerid_internal_image_get(Evas_Object *obj); - -bool _ivug_setas_callerid_select_region_get(Evas_Object *obj, int *x, int *y, int *w, int *h); - -void _ivug_setas_callerid_aspect_ratio_set(Evas_Object *obj, double ratio); - -void _ivug_setas_callerid_create_menu(Evas_Object *obj, Evas_Object *navi_bar); - -#ifdef __cplusplus -} -#endif - - -#endif //__IVUG_SETAS_CALLERID_H__ diff --git a/main/src/view/ivug-setas-view-wallpaper.cpp b/main/src/view/ivug-setas-view-wallpaper.cpp deleted file mode 100755 index 3f821a2..0000000 --- a/main/src/view/ivug-setas-view-wallpaper.cpp +++ /dev/null @@ -1,310 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ivug-define.h" - -#include "ivug-setas-view-wallpaper.h" -#include "ivug-setas-view.h" - -#include "ivug-file-info.h" -#include "ivug-image.h" -#include "ivug-drm-common.h" -#include "EFLUtil.h" -#include "ivug-selectioninfo.h" - -#define EDJ_PATH PREFIX"/res/edje/"PACKAGE - -#define SETAS_EDJ_FILE EDJ_PATH"/ivug-setas.edj" - -#define CLICK_TIME_MAX (500) // click time. -#define CLICK_WIDTH_MIN (elm_config_finger_size_get() >> 1) //click width, if mouse move under this value and under click time, it is click. -#define CLICK_INTERVAL_TIME 0.15 - -/* it is temp define, because scroll, scroll,anim,end is called earlyer. - So find bound of scissor box again after SETAS_INTERVAL_TIME */ -#define SETAS_INTERVAL_TIME 0.1 -#define SETAS_INTERVAL_TIME_FIRST_LOAD 0.3 - -typedef struct { - Evas_Object *layout; - Evas_Object *photocam; - Evas_Object *notify; - - Evas_Object *contents_area; - - Evas_Object *btn_ok; - - bool bShowMenu; // Current state for button's visibility - char *drm_filepath; -} TSetAsData; - -#define SETAS_DATA(obj) \ - (TSetAsData *)evas_object_data_get((Evas_Object *)(obj), "pSetAsData") - -static void -_on_btn_ok_clicked(void *data, Evas_Object *obj, void *event_info) -{ - TSetAsData *pSetAsData = SETAS_DATA(data); - IV_ASSERT(pSetAsData != NULL); - - MSG_SETAS_HIGH("OK button clicked"); - - evas_object_smart_callback_call(pSetAsData->layout, "ok,clicked", NULL); -} - -static void -_on_photocam_loaded(void *data, Evas_Object *obj, void *event_info) -{ - TSetAsData *pSetAsData = SETAS_DATA(data); - MSG_SETAS_HIGH("Photocam preloaded"); -#if 0 - typedef enum _Evas_Load_Error - { - EVAS_LOAD_ERROR_NONE = 0, /**< No error on load */ - EVAS_LOAD_ERROR_GENERIC = 1, /**< A non-specific error occurred */ - EVAS_LOAD_ERROR_DOES_NOT_EXIST = 2, /**< File (or file path) does not exist */ - EVAS_LOAD_ERROR_PERMISSION_DENIED = 3, /**< Permission deinied to an existing file (or path) */ - EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED = 4, /**< Allocation of resources failure prevented load */ - EVAS_LOAD_ERROR_CORRUPT_FILE = 5, /**< File corrupt (but was detected as a known format) */ - EVAS_LOAD_ERROR_UNKNOWN_FORMAT = 6 /**< File is not a known format */ - } Evas_Load_Error; /**< Load error you can get from loading of files - see evas_load_error_str() too */ -#endif - - Evas_Load_Error error = static_cast((int)event_info); - - if ( error != EVAS_LOAD_ERROR_NONE ) - { - MSG_SETAS_ERROR("Error occured during decoding. Error=%d", error); - - if ( error == EVAS_LOAD_ERROR_UNKNOWN_FORMAT ) - { - evas_object_smart_callback_call(pSetAsData->layout, "load,failed", (void *)SETAS_ERROR_TYPE_UNKNOWN_FORMAT); - } - else if ( error == EVAS_LOAD_ERROR_PERMISSION_DENIED ) - { - evas_object_smart_callback_call(pSetAsData->layout, "load,failed", (void *)SETAS_ERROR_TYPE_PERMISSION_DENIED); - } - else - { - evas_object_smart_callback_call(pSetAsData->layout, "load,failed", (void *)SETAS_ERROR_TYPE_INVALID_FILE); - } - - return; - } - - MSG_SETAS_HIGH("Photocam loaded."); - - elm_object_disabled_set(pSetAsData->btn_ok, EINA_FALSE); - - evas_object_smart_callback_call(pSetAsData->layout, "loaded", NULL); -} - - -static void _on_moved(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ -// TSetAsData *pSetAsData = SETAS_DATA(data); - -} - -static void _on_resized(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ -// TSetAsData *pSetAsData = SETAS_DATA(data); - -} - -static void -_on_bg_clicked(void *data, Evas_Object* obj, const char *emission, const char *source ) -{ - MSG_SETAS_HIGH("BG Clicked"); - - TSetAsData *pSetAsData = SETAS_DATA(data); - - MSG_SETAS_HIGH("Bar flag is = %d", pSetAsData->bShowMenu); - if(pSetAsData->bShowMenu == true) - { - pSetAsData->bShowMenu = false; - } - else - { - pSetAsData->bShowMenu = true; - } -} - -Evas_Object *_ivug_setas_create_layout(Evas_Object *parent) -{ - TSetAsData *pSetAsData = (TSetAsData *)calloc(1, sizeof(TSetAsData)); - - if ( pSetAsData == NULL ) - { - MSG_SETAS_ERROR("Cannot alloc pSetasData"); - return NULL; - } - - pSetAsData->layout = ivug_layout_add2(parent , SETAS_EDJ_FILE, "setas_view"); - evas_object_name_set(pSetAsData->layout, "setas_layout"); - if ( pSetAsData->layout == NULL ) - { - MSG_SETAS_ERROR("Cannot create layout."); - free(pSetAsData); - return NULL; - } - evas_object_event_callback_add(pSetAsData->layout, EVAS_CALLBACK_MOVE, _on_moved, pSetAsData->layout); - evas_object_event_callback_add(pSetAsData->layout, EVAS_CALLBACK_RESIZE, _on_resized, pSetAsData->layout); - - Evas_Object *photocam; - photocam = ivug_image_create(pSetAsData->layout); - ivug_image_animated_set(photocam, EINA_FALSE); // Show first frame only when AGIF - evas_object_name_set(photocam, "setas_photocam"); - - evas_object_smart_callback_add(photocam, "loaded", _on_photocam_loaded, (void *)pSetAsData->layout); - elm_object_part_content_set(pSetAsData->layout, "setasview.photocam", photocam); - - evas_object_show(photocam); - - pSetAsData->photocam = photocam; - - edje_object_signal_callback_add(_EDJ(pSetAsData->layout), - "setasview,bg,clicked", "edc", - _on_bg_clicked, - (void *)pSetAsData->layout); - - pSetAsData->bShowMenu = true; - - MSG_SETAS_HIGH("Create setas layout"); - evas_object_data_set(pSetAsData->layout, "pSetAsData", pSetAsData); - - pSetAsData->contents_area = ivug_default_layout_add(parent); - evas_object_name_set(pSetAsData->contents_area, "contets_area"); - if ( pSetAsData->contents_area == NULL ) - { - MSG_SETAS_ERROR("Cannot create contets_area."); - } - - elm_object_part_content_set(pSetAsData->layout, "setasview.contents", pSetAsData->contents_area); - - pSetAsData->notify = ivug_notify_static_create(pSetAsData->contents_area, IDS_WALLPAPER_NOTIFY, NOTIFY_ALIGN_BOTTOM); - - evas_object_show(pSetAsData->layout); - return pSetAsData->layout; -} - -Evas_Object *_ivug_setas_delete_layout(Evas_Object *obj) -{ - TSetAsData *pSetAsData = SETAS_DATA(obj); - IV_ASSERT(pSetAsData != NULL); - - if(pSetAsData->photocam) - { - MSG_SETAS_HIGH("Removing photocam"); - evas_object_del(pSetAsData->photocam); - pSetAsData->photocam = NULL; - } - - if(pSetAsData->notify) - { - evas_object_del(pSetAsData->notify); - pSetAsData->notify = NULL; - } - - if(pSetAsData->contents_area) - { - evas_object_del(pSetAsData->contents_area); - pSetAsData->contents_area = NULL; - } - - if(pSetAsData->layout) - { - evas_object_event_callback_del_full(pSetAsData->layout, EVAS_CALLBACK_MOVE, _on_moved, pSetAsData->layout); - evas_object_event_callback_del_full(pSetAsData->layout, EVAS_CALLBACK_RESIZE, _on_resized, pSetAsData->layout); - evas_object_del(pSetAsData->layout); - pSetAsData->layout = NULL; - } - - if(pSetAsData->drm_filepath) - { - ivug_remove_file(pSetAsData->drm_filepath); - free(pSetAsData->drm_filepath); - pSetAsData->drm_filepath = NULL; - } - - if(pSetAsData->btn_ok) - { - evas_object_del(pSetAsData->btn_ok); - pSetAsData->btn_ok = NULL; - } - - free(pSetAsData); - - return NULL; -} - -bool _ivug_setas_load_file(Evas_Object *obj, const char *filepath) -{ - TSetAsData *pSetAsData = SETAS_DATA(obj); - - MSG_SETAS_HIGH("Load image file : %s", filepath); - - Evas_Load_Error error = EVAS_LOAD_ERROR_NONE; - error = ivug_image_file_set(pSetAsData->photocam, filepath, "noAnim"); - - if ( error != EVAS_LOAD_ERROR_NONE ) - { - MSG_SETAS_ERROR("FileSet Error=%d", error); - - if ( error == EVAS_LOAD_ERROR_UNKNOWN_FORMAT ) - { - evas_object_smart_callback_call(pSetAsData->layout, "load,failed", (void *)SETAS_ERROR_TYPE_UNKNOWN_FORMAT); - return false; - } - else if ( error == EVAS_LOAD_ERROR_PERMISSION_DENIED ) - { - evas_object_smart_callback_call(pSetAsData->layout, "load,failed", (void *)SETAS_ERROR_TYPE_PERMISSION_DENIED); - return false; - } - else - { - evas_object_smart_callback_call(pSetAsData->layout, "load,failed", (void *)SETAS_ERROR_TYPE_INVALID_FILE); - return false; - } - - return false; - } - - return true; -} - -Evas_Object *_ivug_setas_internal_image_get(Evas_Object *obj) -{ - TSetAsData *pSetAsData = SETAS_DATA(obj); - - return pSetAsData->photocam; -} - -void _ivug_setas_view_create_menu(Evas_Object *obj, Evas_Object *navi_bar) -{ - TSetAsData *pSetAsData = SETAS_DATA(obj); - - pSetAsData->btn_ok = ivug_button_add(navi_bar, "naviframe/toolbar/default", - IDS_SAVE, NULL, _on_btn_ok_clicked, (void *)pSetAsData->layout); - - Elm_Object_Item *navi_it = elm_naviframe_top_item_get(navi_bar); - elm_object_item_part_content_set(navi_it, "toolbar_button1", pSetAsData->btn_ok); - - elm_object_disabled_set(pSetAsData->btn_ok, EINA_TRUE); -} - diff --git a/main/src/view/ivug-setas-view-wallpaper.h b/main/src/view/ivug-setas-view-wallpaper.h deleted file mode 100755 index 66d801c..0000000 --- a/main/src/view/ivug-setas-view-wallpaper.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 __IVUG_SETAS_WALLPAPER_H__ -#define __IVUG_SETAS_WALLPAPER_H__ - -#include "ivug-common.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -/* - "load,failed" - Image decoding error - "ok,clicked" - Button "OK" clicked - "cancel,clicked" - Button "Cancel" clicked -*/ -Evas_Object *_ivug_setas_create_layout(Evas_Object *parent); -Evas_Object *_ivug_setas_delete_layout(Evas_Object *obj); - -bool _ivug_setas_load_file(Evas_Object *obj, const char *filepath); - -Evas_Object *_ivug_setas_internal_image_get(Evas_Object *obj); - -void _ivug_setas_view_create_menu(Evas_Object *obj, Evas_Object *navi_bar); - -#ifdef __cplusplus -} -#endif - - -#endif //__IVUG_SETAS_WALLPAPER_H__ diff --git a/main/src/view/ivug-setas-view.c b/main/src/view/ivug-setas-view.c deleted file mode 100755 index c4ebec4..0000000 --- a/main/src/view/ivug-setas-view.c +++ /dev/null @@ -1,786 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ivug-common.h" -#include "ivug-parameter.h" - -#include "ivug-ext-ug.h" -#include "ivug-setas-view.h" -#include "ivug-setas-view-wallpaper.h" -#include "ivug-setas-view-callerid.h" -#include "ivug-setas.h" - -#include "ivug-listpopup.h" - - -#define EDJ_PATH PREFIX"/res/edje/"PACKAGE - -#define TRANSITION_EFFECT - -#define IVUG_RESULT_BUNDLE_KEY_ERROR "Error" -#define IVUG_RESULT_BUNDLE_VALUE_NOT_SUPPORTED "not_supported_file_type" - -/* - Caller ID image -*/ -#define SET_AS_CALL_ID_PATH DATA_PATH"/.callerid.jpg" - -#define SET_AS_VIDEO_CALL_ID_PATH DATA_PATH"/.videocallid.jpg" - -/* - Image displays when incomming call is recevied. -*/ -#define SET_AS_CALL_ID_LCD_PATH DATA_PATH"/.callerid_lcd.jpg" - -//set as -enum { - IVUG_SET_AS_TYPE_HOME = 0x00, - IVUG_SET_AS_TYPE_LOCK, - IVUG_SET_AS_TYPE_BOTH, - IVUG_SET_AS_TYPE_CALLER_ID, - IVUG_SET_AS_TYPE_MAX, -}; - - -static void _OnOK(Ivug_SetAsView *pSetAsView); -static void _OnCancel(Ivug_SetAsView *pSetAsView); -static Evas_Object*_show_exit_popup( Evas_Object *parent, const char *title, const char *desc, void *data); -static void _send_result(ui_gadget_h ug, const char *key1, const char *val1, const char *key2, const char *val2); -static void _send_result2(ui_gadget_h ug, const char *key1, const char *val1, - const char *key2, const char *val2, const char *key3, const char *val3); - - -static void -_on_msg_load_failed(void *data, Evas_Object *obj, void *event_info) -{ - Ivug_SetAsView *pSetAsView = (Ivug_SetAsView *) data; - - SetAs_Error error = (SetAs_Error)event_info; - - const char *szMsg = NULL; - - switch(error) - { - case SETAS_ERROR_TYPE_INVALID_FILE: - szMsg = IDS_INVALID_IMAGE_FILE; - break; - case SETAS_ERROR_TYPE_PERMISSION_DENIED: - szMsg = IDS_PERMISSION_DENIED; - break; - case SETAS_ERROR_TYPE_UNKNOWN_FORMAT: - szMsg = "Unknown format"; - break; - case SETAS_ERROR_TYPE_GENERAL: - default: - szMsg = IDS_FAILED; - break; - } - - MSG_SETAS_ERROR("Load failed : %s", szMsg); - - _show_exit_popup(obj, IDS_ERROR, szMsg, (void *)pSetAsView ); - - if ( pSetAsView->Mode != IVUG_SETAS_NORMAL ) - { - MSG_SETAS_ERROR("Send error message to ug caller app"); - _send_result(gGetUGHandle(), IVUG_RESULT_BUNDLE_KEY_ERROR, IVUG_RESULT_BUNDLE_VALUE_NOT_SUPPORTED, NULL, NULL); - } -} - - -static void -_on_msg_ok_clicked(void *data, Evas_Object *obj, void *event_info) -{ - MSG_SETAS_HIGH("ok clicked"); - - Ivug_SetAsView *pSetAsView = (Ivug_SetAsView *) data; - - _OnOK(pSetAsView); -} - - -static void -_on_msg_cancel_clicked(void *data, Evas_Object *obj, void *event_info) -{ - MSG_SETAS_HIGH("cancel clicked"); - - Ivug_SetAsView *pSetAsView = (Ivug_SetAsView *) data; - - _OnCancel(pSetAsView); -} - - -static void -_ivug_setas_view_remove(Ivug_SetAsView *pSetAsView) -{ - IV_ASSERT(pSetAsView != NULL); - -#if 0 - if(pSetAsView->select_box) - { - evas_object_del(pSetAsView->select_box); - pSetAsView->select_box = NULL; - } -#endif - - if(pSetAsView->Mode != IVUG_SETAS_NORMAL) - { - MSG_SETAS_HIGH("Start destroy ug"); - if ( pSetAsView->content) - { - if(pSetAsView->Type == IVUG_CTRLBAR_SET_SCREEN_CALLERID - || pSetAsView->Type == IVUG_CTRLBAR_SET_SCREEN_VIDEO_CALL_ID) - { - _ivug_setas_callerid_delete_layout(pSetAsView->content); - } - else - { - _ivug_setas_delete_layout(pSetAsView->content); - } - pSetAsView->content = NULL; - } - ug_destroy_me(gGetUGHandle()); - return; - } - - MSG_SETAS_HIGH( "destroy data"); - - evas_object_smart_callback_call(pSetAsView->content, "destroy", pSetAsView); -} - - -static void -_ivug_setas_view_response_cb( void *data, Evas_Object *obj, void *event_info ) -{ - MSG_SETAS_HIGH( "response callback=%d",(int)event_info); -// Ivug_SetAsView *pSetAsView = (Ivug_SetAsView *)data; - - evas_object_hide(obj); // popup - evas_object_del(obj); - - _ivug_setas_view_remove((Ivug_SetAsView *)data); -} - - -static Evas_Object* -_show_exit_popup( Evas_Object *parent, const char *title, const char *desc, void *data) -{ - MSG_SETAS_HIGH( "title: %s, desc %s", title, desc); - - Evas_Object* style1_popup = elm_popup_add(parent); - evas_object_size_hint_weight_set(style1_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_popup_timeout_set(style1_popup, (double)2.0); - elm_object_text_set(style1_popup, desc); - elm_object_part_text_set(style1_popup, "title,text", title); - - evas_object_smart_callback_add(style1_popup, "timeout", _ivug_setas_view_response_cb, data); - - evas_object_show(style1_popup); - evas_object_layer_set(style1_popup, EVAS_LAYER_MAX); - - return style1_popup; -} - -static void -_send_result(ui_gadget_h ug, const char *key1, const char *val1, const char *key2, const char *val2) -{ - ivug_ret_if(!ug); - - service_h service; - service_create(&service); - if(key1 && val1) - { - MSG_SETAS_HIGH("Bundle 1 : [%s = %s]", key1, val1); - service_add_extra_data(service, key1, val1); - } - - if(key2 && val2) - { - MSG_SETAS_HIGH("Bundle 2 : [%s = %s]", key2, val2); - service_add_extra_data(service, key2, val2); - } - - ug_send_result(ug, service); - service_destroy(service); -} - -static void -_send_result2(ui_gadget_h ug, const char *key1, const char *val1, - const char *key2, const char *val2, const char *key3, const char *val3) -{ - ivug_ret_if(!ug); - - service_h service; - service_create(&service); - if(key1 && val1) - { - MSG_SETAS_HIGH("Bundle 1 : [%s = %s]", key1, val1); - service_add_extra_data(service, key1, val1); - } - - if(key2 && val2) - { - MSG_SETAS_HIGH("Bundle 2 : [%s = %s]", key2, val2); - service_add_extra_data(service, key2, val2); - } - - if(key3 && val3) - { - MSG_SETAS_HIGH("Bundle 3 : [%s = %s]", key3, val3); - service_add_extra_data(service, key3, val3); - } - - ug_send_result(ug, service); - service_destroy(service); -} - -static void _on_setas_homescreen(Ivug_SetAsView *pSetAsView) -{ - const char *homescreen_path = NULL; - - if(pSetAsView->Mode == IVUG_SETAS_NORMAL || pSetAsView->Mode == IVUG_SETAS_UG) - { - homescreen_path = IVUG_HOME_SCREEN_PATH; - } - else - { - homescreen_path = IVUG_APPSVC_HOME_SCREEN_PATH; - } - -// Save to Image - Evas_Coord_Rectangle box_rect; - evas_object_geometry_get(pSetAsView->content, &(box_rect.x), &(box_rect.y), &(box_rect.w), &(box_rect.h)); - - MSG_SETAS_HIGH("Rect XYWH(%d,%d,%d,%d)", box_rect.x, box_rect.y, box_rect.w , box_rect.h); - - Eina_Bool ret = EINA_FALSE; - - ret = _ivug_setas_save_home_screen(_ivug_setas_internal_image_get( pSetAsView->content) ,&box_rect, homescreen_path); - - if ( ret == false ) - { - MSG_SETAS_ERROR("Error occured. when setAS. %s", homescreen_path); - _show_exit_popup(pSetAsView->content, IDS_HOME_SCREEN_WALLPAPER, IDS_FAILED, (void *)pSetAsView); - return; - } - - if(pSetAsView->Mode != IVUG_SETAS_CROP) - { - ret = ivug_config_set_homescreen_image(homescreen_path); - if(ret == true) - { - _show_exit_popup(pSetAsView->content, IDS_HOME_SCREEN_WALLPAPER, IDS_SUCCESS, (void *)pSetAsView); - _send_result(gGetUGHandle(), "homescreen_path", homescreen_path, NULL, NULL); - - MSG_SETAS_HIGH("Set Home screen: %s", homescreen_path); - } - else - { - _show_exit_popup(pSetAsView->content, IDS_HOME_SCREEN_WALLPAPER, IDS_FAILED, (void *)pSetAsView); - } - } - else // IVUG_SETAS_CROP - { - _show_exit_popup(pSetAsView->content, IDS_HOME_SCREEN_WALLPAPER, IDS_SUCCESS, (void *)pSetAsView); - _send_result(gGetUGHandle(), "crop_image_path", homescreen_path, - "http://tizen.org/appcontrol/data/selected", homescreen_path); - - MSG_SETAS_HIGH("Set Home screen: %s", homescreen_path); - } -} - - -static void _on_setas_lockscreen(Ivug_SetAsView *pSetAsView) -{ - MSG_SETAS_HIGH("Change Lock Screen"); - - char* lockscreen_path = IVUG_LOCK_SCREEN_PATH; - -// Save to Image - Evas_Coord_Rectangle box_rect; - evas_object_geometry_get(pSetAsView->content, &(box_rect.x), &(box_rect.y), &(box_rect.w), &(box_rect.h) ); - - MSG_SETAS_HIGH("Rect XYWH(%d,%d,%d,%d)", box_rect.x, box_rect.y, box_rect.w , box_rect.h); - - Eina_Bool ret = EINA_FALSE; - - ret = _ivug_setas_save_lock_screen(_ivug_setas_internal_image_get( pSetAsView->content) ,&box_rect, lockscreen_path); - - if ( ret == false ) - { - MSG_SETAS_ERROR("Error occured. when setAS. %s", lockscreen_path); - } - - //Set the lock screen - if(pSetAsView->Mode != IVUG_SETAS_CROP) - { - ret = ivug_config_set_lockscreen_image(lockscreen_path); - } - - if(ret == EINA_TRUE) - { - _show_exit_popup(pSetAsView->content, IDS_LOCK_SCREEN_WALLPAPER, IDS_SUCCESS, pSetAsView); - _send_result(gGetUGHandle(), "lockscreen_path", lockscreen_path, NULL, NULL); - - MSG_SETAS_HIGH("Set Lock screen: %s", lockscreen_path); - } - else - { - _show_exit_popup(pSetAsView->content, IDS_LOCK_SCREEN_WALLPAPER, IDS_FAILED, pSetAsView); - } - -} - - -static void _on_setas_bothscreen(Ivug_SetAsView *pSetAsView) -{ - MSG_SETAS_HIGH("Change Home & Lock Screen"); - -// Set homescreen image - const char* homescreen_path = IVUG_HOME_SCREEN_PATH; - const char* lockscreen_path = IVUG_LOCK_SCREEN_PATH; - - Evas_Coord_Rectangle box_rect; - evas_object_geometry_get(pSetAsView->content, &(box_rect.x), &(box_rect.y), &(box_rect.w), &(box_rect.h) ); - - MSG_SETAS_HIGH("Rect XYWH(%d,%d,%d,%d)", box_rect.x, box_rect.y, box_rect.w , box_rect.h); - - Eina_Bool ret = EINA_FALSE; - - ret = _ivug_setas_save_homenlock_screen(_ivug_setas_internal_image_get( pSetAsView->content),&box_rect, homescreen_path, lockscreen_path); - - char *title = elm_entry_utf8_to_markup(IDS_HOME_AND_LOCK_SCREENS); - - ret = ivug_config_set_homescreen_image(homescreen_path); - - if ( ret == false) - { - _show_exit_popup(pSetAsView->content, title, IDS_FAILED, pSetAsView); - } - else - { - ret = ivug_config_set_lockscreen_image(lockscreen_path); - if ( ret == false) - { - _show_exit_popup(pSetAsView->content, title, IDS_FAILED, pSetAsView); - } - else - { - _show_exit_popup(pSetAsView->content, title, IDS_SUCCESS, pSetAsView); - } - - } - - MSG_SETAS_HIGH("Set Home&Lock screen: %s %s", homescreen_path, lockscreen_path); - free(title); - - if(pSetAsView->Mode != IVUG_SETAS_NORMAL) - { - if(ret == EINA_TRUE) - { - _send_result(gGetUGHandle(), "homescreen_path", homescreen_path, "lockscreen_path", lockscreen_path); - } - } -} - - -static void _on_setas_callerid(Ivug_SetAsView *pSetAsView) -{ - MSG_SETAS_HIGH("Set Caller Image"); - -// Save to Image - Evas_Coord_Rectangle box_rect; - evas_object_geometry_get(pSetAsView->content, &(box_rect.x), &(box_rect.y), &(box_rect.w), &(box_rect.h) ); - - MSG_SETAS_HIGH("Conetent area XYWH(%d,%d,%d,%d)", box_rect.x, box_rect.y, box_rect.w , box_rect.h); - -// LCD Image - Evas_Object *image = NULL; - - image = _ivug_setas_callerid_internal_image_get( pSetAsView->content); - - Eina_Bool ret = EINA_FALSE; - - char *title = elm_entry_utf8_to_markup(IDS_CALLER_IMAGE); - - ret = _ivug_setas_save_cropimage(image, &box_rect, SET_AS_CALL_ID_LCD_PATH); - if ( ret == false ) - { - MSG_SETAS_ERROR("Error occured. when setAS1. %s", SET_AS_CALL_ID_LCD_PATH); - _show_exit_popup(pSetAsView->content, title, IDS_FAILED, pSetAsView); - free(title); - return; - } - -// Cropped Image - _ivug_setas_callerid_select_region_get(pSetAsView->content, &(box_rect.x), &(box_rect.y), &(box_rect.w), &(box_rect.h)); - - MSG_SETAS_HIGH("Cropped rect XYWH(%d,%d,%d,%d)", box_rect.x, box_rect.y, box_rect.w , box_rect.h); - - ret = _ivug_setas_save_cropimage(image ,&box_rect, SET_AS_CALL_ID_PATH); - if ( ret == false ) - { - MSG_SETAS_ERROR("Error occured. when setAS2. %s", SET_AS_CALL_ID_PATH); - _show_exit_popup(pSetAsView->content, title, IDS_FAILED, pSetAsView); - free(title); - return; - } - - if(pSetAsView->Mode != IVUG_SETAS_NORMAL) - { - //_send_result(gGetUGHandle(), "crop_image_path", SET_AS_CALL_ID_PATH, "image_path", SET_AS_CALL_ID_LCD_PATH); - _send_result2(gGetUGHandle(), "crop_image_path", SET_AS_CALL_ID_PATH, - "image_path", SET_AS_CALL_ID_LCD_PATH, "http://tizen.org/appcontrol/data/selected", SET_AS_CALL_ID_PATH); - _show_exit_popup(pSetAsView->content, title, IDS_SUCCESS, pSetAsView); - } - - free(title); - -} - -static void _on_setas_video_call_id(Ivug_SetAsView *pSetAsView) -{ - MSG_SETAS_HIGH("Set Caller Image"); - -// Save to Image - Evas_Coord_Rectangle box_rect; - -// LCD Image - Evas_Object *image = NULL; - - image = _ivug_setas_callerid_internal_image_get(pSetAsView->content); - - Eina_Bool ret = EINA_FALSE; - - char *title = elm_entry_utf8_to_markup(IDS_CALLER_IMAGE); - -// Cropped Image - _ivug_setas_callerid_select_region_get(pSetAsView->content, &(box_rect.x), &(box_rect.y), &(box_rect.w), &(box_rect.h)); - - MSG_SETAS_HIGH("Cropped rect XYWH(%d,%d,%d,%d)", box_rect.x, box_rect.y, box_rect.w , box_rect.h); - - ret = _ivug_setas_save_cropimage(image, &box_rect, SET_AS_VIDEO_CALL_ID_PATH); - if ( ret == false ) - { - MSG_SETAS_ERROR("Error occured. when setAS2. %s", SET_AS_VIDEO_CALL_ID_PATH); - _show_exit_popup(pSetAsView->content, title, IDS_FAILED, pSetAsView); - free(title); - return; - } - - if(pSetAsView->Mode != IVUG_SETAS_NORMAL) - { - _send_result(gGetUGHandle(), "crop_image_path", SET_AS_VIDEO_CALL_ID_PATH, - "http://tizen.org/appcontrol/data/selected", SET_AS_VIDEO_CALL_ID_PATH); - } - - _show_exit_popup(pSetAsView->content, title, IDS_SUCCESS, pSetAsView); - - free(title); - -} - - -static void -_on_type_popup_selected(void *data, Evas_Object *obj, void *event_info) -{ - IV_ASSERT(data != NULL); - - Ivug_SetAsView *pSetAsView = (Ivug_SetAsView *) data; - Ivug_ListPopup_Item *item = event_info; - - if ( item == NULL ) // Cancel is selected - { - MSG_SETAS_HIGH("Cancel is selected"); - evas_object_del(pSetAsView->genlist_popup); - pSetAsView->genlist_popup = NULL; - - return; - } - - const char *label = ivug_listpopup_item_get_data(item); - MSG_SETAS_HIGH("Create SetAsView. name= %s", label); - - if ( strcmp(IDS_HOME_SCREEN, label) == 0 ) - { - _on_setas_homescreen(pSetAsView); - } - else if ( strcmp(IDS_LOCK_SCREEN, label) == 0 ) - { - _on_setas_lockscreen(pSetAsView); - } - else if ( strcmp(IDS_HOME_AND_LOCK_SCREENS, label) == 0 ) - { - _on_setas_bothscreen(pSetAsView); - } - else - { - MSG_SETAS_ERROR("Unknown Set as type : %s", label); - } - - evas_object_del(pSetAsView->genlist_popup); - pSetAsView->genlist_popup = NULL; -} - - -static void _dismissed_cb(void *data, Evas_Object *obj, void *event_info) -{ - IV_ASSERT(data != NULL); - - MSG_SETAS_HIGH("Popup dissmissed"); - - Ivug_SetAsView *pSetAsView = (Ivug_SetAsView *) data; - - if(pSetAsView->genlist_popup) - { - evas_object_del(pSetAsView->genlist_popup); - pSetAsView->genlist_popup = NULL; - } -} - - -static void -_OnOK(Ivug_SetAsView *pSetAsView) -{ - MSG_SETAS_HIGH("On Btn Done clicked"); - - Evas_Object *obj; - - switch(pSetAsView->Type) - { - case IVUG_CTRLBAR_SET_SCREEN_UNDEFINED: - MSG_SETAS_HIGH("Create setas wallpaper popup"); - - obj = ivug_listpopup_add(pSetAsView->content); - - evas_object_smart_callback_add(obj, "popup,dismissed", _dismissed_cb, pSetAsView); - evas_object_smart_callback_add(obj, "popup,selected", _on_type_popup_selected, pSetAsView); - - ivug_listpopup_item_append(obj, NULL,IDS_HOME_SCREEN, IDS_HOME_SCREEN); - ivug_listpopup_item_append(obj, NULL,IDS_LOCK_SCREEN, IDS_LOCK_SCREEN); - ivug_listpopup_item_append(obj, NULL,IDS_HOME_AND_LOCK_SCREENS, IDS_HOME_AND_LOCK_SCREENS); - - ivug_listpopup_title_set(obj, IDS_SET_AS); - - ivug_listpopup_button_set(obj, IDS_CLOSE); - - ivug_listpopup_popup_show(obj); - - - pSetAsView->genlist_popup = obj; - - break; - - case IVUG_CTRLBAR_SET_SCREEN_HOME: - _on_setas_homescreen(pSetAsView); - break; - case IVUG_CTRLBAR_SET_SCREEN_LOCK: - _on_setas_lockscreen(pSetAsView); - break; - case IVUG_CTRLBAR_SET_SCREEN_BOTH: - _on_setas_bothscreen(pSetAsView); - break; - case IVUG_CTRLBAR_SET_SCREEN_CALLERID: - _on_setas_callerid(pSetAsView); - break; - case IVUG_CTRLBAR_SET_SCREEN_VIDEO_CALL_ID: - _on_setas_video_call_id(pSetAsView); - break; - default: - MSG_SETAS_ERROR("Unknown Set as type : %d", pSetAsView->Type); - break; - } - -} - -static void -_OnCancel(Ivug_SetAsView *pSetAsView) -{ - MSG_SETAS_HIGH("On Btn cancel clicked"); - - _ivug_setas_view_remove(pSetAsView); -} - -static void _on_setas_show(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - MSG_SETAS_HIGH("SetAs show"); -} - -static void _on_setas_hide(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - MSG_SETAS_HIGH("SetAs hide"); -} - -Ivug_SetAsView * -ivug_setas_view_screen_create(Evas_Object *parent, ivug_setas_mode mode, ivug_set_screen_type screen_type) -{ - Ivug_SetAsView *pSetAsView = NULL; - - MSG_SETAS_HIGH("Setas View creates"); - - pSetAsView = (Ivug_SetAsView *)calloc(1, sizeof(Ivug_SetAsView)); - - pSetAsView->Mode = mode; - pSetAsView->Type = screen_type; - - pSetAsView->content = _ivug_setas_create_layout(parent); - - evas_object_smart_callback_add(pSetAsView->content, "load,failed", _on_msg_load_failed, pSetAsView); - evas_object_smart_callback_add(pSetAsView->content, "download,failed", _on_msg_load_failed, pSetAsView); - evas_object_smart_callback_add(pSetAsView->content, "ok,clicked", _on_msg_ok_clicked, pSetAsView); - evas_object_smart_callback_add(pSetAsView->content, "cancel,clicked", _on_msg_cancel_clicked, pSetAsView); - - evas_object_event_callback_add(pSetAsView->content, EVAS_CALLBACK_SHOW, _on_setas_show, pSetAsView); - evas_object_event_callback_add(pSetAsView->content, EVAS_CALLBACK_HIDE, _on_setas_hide, pSetAsView); - - return pSetAsView; -} - -Ivug_SetAsView * -ivug_setas_view_callerid_ug_create(Evas_Object *parent, const char* filepath, ivug_setas_mode mode, int output_width, int output_height) -{ - Ivug_SetAsView *pSetAsView = NULL; - - MSG_SETAS_HIGH("CallerID UG creates. ImgOut(%d,%d)", output_width, output_height); - - pSetAsView = (Ivug_SetAsView *)calloc(1, sizeof(Ivug_SetAsView)); - - pSetAsView->Mode = mode; - pSetAsView->Type = IVUG_CTRLBAR_SET_SCREEN_CALLERID; // Means that aspect ration should be preserved - - pSetAsView->content = _ivug_setas_callerid_create_layout(parent); - - evas_object_smart_callback_add(pSetAsView->content, "load,failed", _on_msg_load_failed, pSetAsView); - evas_object_smart_callback_add(pSetAsView->content, "download,failed", _on_msg_load_failed, pSetAsView); - evas_object_smart_callback_add(pSetAsView->content, "ok,clicked", _on_msg_ok_clicked, pSetAsView); - evas_object_smart_callback_add(pSetAsView->content, "cancel,clicked", _on_msg_cancel_clicked, pSetAsView); - - evas_object_event_callback_add(pSetAsView->content, EVAS_CALLBACK_SHOW, _on_setas_show, pSetAsView); - evas_object_event_callback_add(pSetAsView->content, EVAS_CALLBACK_HIDE, _on_setas_hide, pSetAsView); - - _ivug_setas_callerid_aspect_ratio_set(pSetAsView->content, (double)output_height/output_width); - - return pSetAsView; -} - -Ivug_SetAsView * -ivug_setas_view_video_call_id_ug_create(Evas_Object *parent, const char* filepath, ivug_setas_mode mode, int output_width, int output_height) -{ - Ivug_SetAsView *pSetAsView = NULL; - - MSG_SETAS_HIGH("CallerID UG creates. ImgOut(%d,%d)", output_width, output_height); - - pSetAsView = (Ivug_SetAsView *)calloc(1, sizeof(Ivug_SetAsView)); - - pSetAsView->Mode = mode; - pSetAsView->Type = IVUG_CTRLBAR_SET_SCREEN_VIDEO_CALL_ID; // Means that aspect ration should be preserved - - pSetAsView->content = _ivug_setas_callerid_create_layout(parent); - - evas_object_smart_callback_add(pSetAsView->content, "load,failed", _on_msg_load_failed, pSetAsView); - evas_object_smart_callback_add(pSetAsView->content, "download,failed", _on_msg_load_failed, pSetAsView); - evas_object_smart_callback_add(pSetAsView->content, "ok,clicked", _on_msg_ok_clicked, pSetAsView); - evas_object_smart_callback_add(pSetAsView->content, "cancel,clicked", _on_msg_cancel_clicked, pSetAsView); - - evas_object_event_callback_add(pSetAsView->content, EVAS_CALLBACK_SHOW, _on_setas_show, pSetAsView); - evas_object_event_callback_add(pSetAsView->content, EVAS_CALLBACK_HIDE, _on_setas_hide, pSetAsView); - - _ivug_setas_callerid_aspect_ratio_set(pSetAsView->content , (double)output_height/output_width); - - return pSetAsView; -} - - -Evas_Object * -ivug_setas_view_object_get(Ivug_SetAsView *pSetAsView) -{ - IV_ASSERT(pSetAsView != NULL); - - return pSetAsView->content; -} - -void -ivug_setas_view_destroy(Ivug_SetAsView *pSetAsView) -{ - MSG_SETAS_HIGH("Removing SetAs VIew"); - IV_ASSERT(pSetAsView != NULL); - - if ( pSetAsView->content) - { - if(pSetAsView->Type == IVUG_CTRLBAR_SET_SCREEN_CALLERID - || pSetAsView->Type == IVUG_CTRLBAR_SET_SCREEN_VIDEO_CALL_ID) - { - _ivug_setas_callerid_delete_layout(pSetAsView->content); - } - else - { - _ivug_setas_delete_layout(pSetAsView->content); - } - //evas_object_del(pSetAsView->content); - pSetAsView->content = NULL; - } - - if ( pSetAsView->ly_effect) - { - evas_object_del(pSetAsView->ly_effect); - pSetAsView->ly_effect = NULL; - } - - if ( pSetAsView->filename ) - { - free(pSetAsView->filename); - pSetAsView->filename = NULL; - } - - free(pSetAsView); - pSetAsView = NULL; -} - -void ivug_setas_view_create_menu(Ivug_SetAsView *pSetAsView, Evas_Object *navi_bar, ivug_set_screen_type type) -{ - if(type == IVUG_CTRLBAR_SET_SCREEN_CALLERID - || type == IVUG_CTRLBAR_SET_SCREEN_VIDEO_CALL_ID) - { - _ivug_setas_callerid_create_menu(pSetAsView->content, navi_bar); - } - else - { - _ivug_setas_view_create_menu(pSetAsView->content, navi_bar); - } -} - -void ivug_setas_view_load_file(Ivug_SetAsView *pSetAsView, const char* filepath, ivug_set_screen_type type) -{ - MSG_SETAS_HIGH("ivug_setas_view_load_file %s", filepath); - - if(type == IVUG_CTRLBAR_SET_SCREEN_CALLERID - || type == IVUG_CTRLBAR_SET_SCREEN_VIDEO_CALL_ID) - { - _ivug_setas_callerid_load_file(pSetAsView->content , filepath); - } - else - { - _ivug_setas_load_file(pSetAsView->content , filepath); - } -} - diff --git a/main/src/view/ivug-slideshow-view.cpp b/main/src/view/ivug-slideshow-view.cpp index 89fcbf7..cb3cc82 100755 --- a/main/src/view/ivug-slideshow-view.cpp +++ b/main/src/view/ivug-slideshow-view.cpp @@ -1,34 +1,37 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 "ivug-common.h" #include "ivug-parameter.h" #include "ivug-slideshow-view.h" -#include -#include -#include // Key event -#include // ug_send_result +#include +#include +#include #include "ivug-filter.h" #include "ivug-popup.h" +#include "ivug-language-mgr.h" + #include "EFLUtil.h" + #undef LOG_LVL #define LOG_LVL DBG_MSG_LVL_MED @@ -36,8 +39,6 @@ #define LOG_CAT "IV-SLIDESHOW" -#define IVUG_SS_EDJ EDJ_PATH"/ivug-slideshow-view.edj" - static void _on_slideshow_finished(void *data, Evas_Object *obj, void *event_info); @@ -47,25 +48,32 @@ _send_result(ui_gadget_h ug, const char *key1, const char *val1, const char *key { ivug_ret_if(!ug); - service_h service; - service_create(&service); + int ret = 0; + app_control_h service = NULL; + + ret = app_control_create(&service); + if (ret != APP_CONTROL_ERROR_NONE) { + MSG_SEC("app_control_create failed"); + return; + } - if(key1 && val1) + if (key1 && val1) { - MSG_HIGH("Bundle 1 : [%s = %s]", key1, val1); - service_add_extra_data(service, key1, val1); + MSG_SEC("Bundle 1 : [%s = %s]", key1, val1); + app_control_add_extra_data(service, key1, val1); } + if(key2 && val2) { - MSG_HIGH("Bundle 2 : [%s = %s]", key2, val2); - service_add_extra_data(service, key2, val2); + MSG_SEC("Bundle 2 : [%s = %s]", key2, val2); + app_control_add_extra_data(service, key2, val2); } + ug_send_result(gGetUGHandle(), service); - service_destroy(service); + app_control_destroy(service); } - static bool _destory_slideshow_and_ug(Ivug_SlideShowView *pSSView, int state, bool bMmc_out) @@ -74,74 +82,27 @@ static bool _destory_slideshow_and_ug(Ivug_SlideShowView *pSSView, evas_object_smart_callback_del_full(ivug_ss_object_get(pSSView->ssHandle), "slideshow,finished", _on_slideshow_finished, pSSView); - ivug_allow_lcd_off(); +// ivug_allow_lcd_off(); /* send msg to caller */ if(state == SLIDE_SHOW_STOPPED) { _send_result(gGetUGHandle(), "EXIT", "NORMAL", NULL, NULL); } - /*from gallery ablum*/ - - if (pSSView->ssHandle ) - { - MSG_HIGH("image viewer end cause slide show ended"); - ivug_ss_delete(pSSView->ssHandle); - } - pSSView->ssHandle = NULL; - - DESTROY_ME(); - return true; -} -static Eina_Bool __stop_slideshow_cb(void *data) -{ - Ivug_SlideShowView *pSSView = (Ivug_SlideShowView *)data; - if (pSSView && (pSSView->ssHandle)) { - if(pSSView->homekey_idler) - { - ecore_idler_del(pSSView->homekey_idler); - pSSView->homekey_idler = NULL; - } - ivug_ss_stop(pSSView->ssHandle); - } - return ECORE_CALLBACK_CANCEL; -} - -static Eina_Bool _on_key_down(void *user_data, int type, void *event) -{ - if (!user_data) { - MSG_IMAGEVIEW_ERROR("user data is NULL"); - return ECORE_CALLBACK_PASS_ON; - } - - Ivug_SlideShowView *pSSView = static_cast(user_data); - - Ecore_Event_Key *key_event = (Ecore_Event_Key *) event; - - if (!strcmp(key_event->keyname, KEY_END)) - { - MSG_IMAGEVIEW_HIGH("Bakc(End) key"); - } - else if (!strcmp(key_event->keyname, KEY_SELECT)) - { - MSG_IMAGEVIEW_HIGH("Home key"); - /*home key,we need to stop slideshow also*/ - if (pSSView->homekey_idler == NULL) { - pSSView->homekey_idler = ecore_idler_add(__stop_slideshow_cb, pSSView); - } - } - else if (!strcmp(key_event->keyname, KEY_POWER)) + /*from gallery ablum*/ + // when standalone, slideshow window have to be capture, so don't destroy here + if(pSSView->bStandAlone == false) { - MSG_IMAGEVIEW_HIGH("Power key"); - if ( pSSView->ssHandle ) + if (pSSView->ssHandle ) { - ivug_ss_stop(pSSView->ssHandle); + MSG_HIGH("image viewer end cause slide show ended"); + ivug_ss_delete(pSSView->ssHandle); } + pSSView->ssHandle = NULL; } - MSG_IMAGEVIEW_LOW("Key down : %s", key_event->keyname); - - return ECORE_CALLBACK_PASS_ON; + DESTROY_ME(); + return true; } static void @@ -153,29 +114,10 @@ _on_slideshow_finished(void *data, Evas_Object *obj, void *event_info) Ivug_SlideShowView *pSSView = static_cast(data); int ss_state = (int)event_info; - bool bDestoryed = false; - bDestoryed = _destory_slideshow_and_ug(pSSView, ss_state, false); + _destory_slideshow_and_ug(pSSView, ss_state, false); } -static void _on_resize(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - Ivug_SlideShowView *pSSView = static_cast(data); - IV_ASSERT(pSSView != NULL); - - Evas_Coord x,y,w,h; - evas_object_geometry_get(obj, &x, &y, &w, &h); - -/** -* during slideshow, after rotation, resize cb of slideshow obj cannot be invoked, - so invoke it manually -*/ - if(pSSView->ssHandle) - ivug_ss_resize(pSSView->ssHandle); - - MSG_HIGH("SlideshowView resized geomtery XYWH(%d,%d,%d,%d) Rotate=%d", x, y, w, h, gGetRotationDegree()); -} - -void _ivug_slideshow_view_on_mmc_state_changed(keynode_t* node, void *data) +void _ivug_slideshow_view_on_mmc_state_changed(void *data) { Ivug_SlideShowView *pSSView = static_cast(data); IV_ASSERT(pSSView != NULL); @@ -185,204 +127,26 @@ void _ivug_slideshow_view_on_mmc_state_changed(keynode_t* node, void *data) _destory_slideshow_and_ug(pSSView, SLIDE_SHOW_STOPPED, true); } -static char * _ivug_get_folder_name(char *filepath) -{ - char *folder = ecore_file_dir_get(filepath); - - char *name = NULL; - - name = strrchr(folder, '/'); - if ( (name != NULL) && ((name+1) != NULL) ) - { - return strdup(name + 1); - } - - return NULL; -} - - -bool -ivug_slideshow_view_set_list(Ivug_SlideShowView *pSSView, ivug_parameter *ivug_param) -{ - MSG_HIGH("Load media list."); - - IV_ASSERT(pSSView != NULL); - - PERF_CHECK_BEGIN(LVL2, "create media list"); - - Media_List *mlist = ivug_medialist_create(); - if (mlist == NULL) - { - MSG_ERROR("Creating media list failed"); - return false; - } - PERF_CHECK_END(LVL2, "create media list"); - - PERF_CHECK_BEGIN(LVL2, "create filter"); - - Filter_struct *filter = ivug_param_create_filter(ivug_param); - if (filter == NULL) - { - MSG_ERROR("Creating filter failed"); - ivug_medialist_del(mlist); - return false; - } - - PERF_CHECK_END(LVL2, "create filter"); - - Media_Item *current = NULL; - Media_Data *pData = NULL; - - { - PERF_CHECK_BEGIN(LVL2, "media list load"); - current = ivug_medialist_load(mlist, filter); - PERF_CHECK_END(LVL2, "media list load"); - } - - if(current == NULL) - { - MSG_ERROR("Media list load failed"); - goto LOAD_LIST_FAILED; - } - - pData = ivug_medialist_get_data(current); - if(pData == NULL) - { - MSG_ERROR("current data is NULL"); - goto LOAD_LIST_FAILED; - } - - if(pData->fileurl == NULL) - { - MSG_ERROR("current fileurl is NULL"); - goto LOAD_LIST_FAILED; - } - -#ifdef USE_RESCAN_FILE_PATH_AT_LIST - if(strncmp(pData->fileurl, ivug_param->filepath, strlen(pData->fileurl)) != 0) - { - current = ivug_medialist_find_item_by_filename(mlist, ivug_param->filepath); - if(current == NULL) - { - MSG_ERROR("Media list load failed, %s is not exist at list", ivug_param->filepath); - goto LOAD_LIST_FAILED; - } - } -#endif - - if(ivug_param->view_by == IVUG_VIEW_BY_ALL) - { - pSSView->album_name = strdup(IDS_ALL_ALBUMS); - } - else if(ivug_param->view_by == IVUG_VIEW_BY_FOLDER) - { - /* - media_handle m_handle = ivug_db_get_folder_handle(ecore_file_dir_get(ivug_param->filepath)); - if(m_handle == NULL) - { - MSG_IVUG_FATAL("View by Folder. but media handle is NULL" ); - return NULL; - } - - pMainView->album_name = ivug_db_get_folder_name(m_handle); - */ - pSSView->album_name = _ivug_get_folder_name(ivug_param->filepath); - if(pSSView->album_name == NULL) - { - pSSView->album_name = strdup(IDS_NO_NAME); - } - } - - pSSView->mList = mlist; - PERF_CHECK_BEGIN(LVL2, "media list set"); - - pSSView->ss_curItem = current; - - PERF_CHECK_END(LVL2, "media list set"); - - ivug_data_filter_delete(filter); - - return true; - -LOAD_LIST_FAILED: - - if(filter) - ivug_data_filter_delete(filter); - - if(mlist) - ivug_medialist_del(mlist); - - pSSView->mList = NULL; - return false; -} - -Ivug_SlideShowView * -ivug_slideshow_view_create(Evas_Object* parent, ivug_mode mode, ivug_view_by view_by) +void +ivug_slideshow_view_start(Ivug_SlideShowView *pSSView) { - IV_ASSERT(parent != NULL); - - MSG_HIGH("Creating slideshow view. Parent=0x%08x Mode=%d ViewBy=%d", parent, mode, view_by); - - PERF_CHECK_BEGIN(LVL2, "Create layout"); - -//create main view layout - Ivug_SlideShowView *pSSView = (Ivug_SlideShowView *)calloc(1, sizeof(Ivug_SlideShowView) ); IV_ASSERT(pSSView != NULL); -// Set default value - pSSView->parent = parent; - pSSView->view_by = view_by; + MSG_HIGH("Slide show running"); - Evas_Object *layout; - layout = elm_layout_add(parent); - if ( layout == NULL) //if failed + int sort_value = 0; + _ivug_ss_get_sort(&sort_value); + Media_Item *current = NULL; + if(sort_value == 1) { - MSG_ERROR("main layout create failed"); - free(pSSView); - return NULL; + current = ivug_medialist_get_last(pSSView->mList); } - - pSSView->layout = layout; - evas_object_name_set(pSSView->layout, "SlideShow Layout"); - -#if 0 - if (elm_layout_file_set(layout, IVUG_SS_EDJ, "ssview") == EINA_FALSE) + else if(sort_value == 0) { - MSG_MAIN_ERROR("edj loading fail, file=%s group=%s", IVUG_SS_EDJ, IVUG_SS_EDJ); - evas_object_del(layout); - free(pSSView); - return NULL; + current = pSSView->ss_curItem; } -#endif - evas_object_event_callback_add(pSSView->layout, EVAS_CALLBACK_RESIZE, _on_resize, pSSView); - pSSView->keydown_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _on_key_down, (void *)pSSView); - - MSG_HIGH("Main View Created"); - - return pSSView; -} - - -Evas_Object * -ivug_slideshow_view_object_get(Ivug_SlideShowView *pSSView) -{ - IV_ASSERT(pSSView != NULL); - - return pSSView->layout; -} - - -void -ivug_slideshow_view_start(Ivug_SlideShowView *pSSView) -{ - IV_ASSERT(pSSView != NULL); - - MSG_HIGH("Slide show running"); - - Media_Item *current = pSSView->ss_curItem; - - ivug_prohibit_lcd_off(); +// ivug_prohibit_lcd_off(); //ivug_main_view_hide_menu_bar(pMainView); pSSView->ssHandle = ivug_ss_create(pSSView->layout); @@ -390,10 +154,9 @@ ivug_slideshow_view_start(Ivug_SlideShowView *pSSView) // Register callback evas_object_smart_callback_add(ivug_ss_object_get(pSSView->ssHandle), "slideshow,finished", _on_slideshow_finished, pSSView); - elm_win_indicator_mode_set((Evas_Object *)ug_get_window(), ELM_WIN_INDICATOR_HIDE); + ivug_set_indicator_visibility(false); ivug_ss_start(pSSView->ssHandle, current, pSSView->mList, EINA_FALSE); - } @@ -405,27 +168,26 @@ ivug_slideshow_view_resume(Ivug_SlideShowView *pSSView) MSG_HIGH("Slideshow View Resumed"); - Media_Item *mitem = pSSView->ss_curItem; + Media_Item *mitem = pSSView->ss_curItem; // TODO: Check this!!!! Media_Data *mdata = ivug_medialist_get_data(mitem); IV_ASSERT(mdata != NULL); - if (mdata->slide_type == SLIDE_TYPE_IMAGE || mdata->slide_type == SLIDE_TYPE_VIDEO ) + if (mdata->slide_type == SLIDE_TYPE_IMAGE || mdata->slide_type == SLIDE_TYPE_VIDEO) { - if(mdata->filepath && ecore_file_exists(mdata->filepath)) // Current file is not deleted - { - MSG_HIGH("Current filepath : %s", mdata->filepath); - } - else + if (mdata->filepath && ivug_file_exists(mdata->filepath)) // Current file is not deleted { + if (pSSView->ssHandle) { + ivug_ss_resume(pSSView->ssHandle); + } + MSG_IMAGEVIEW_HIGH("Current filepath : %s", mdata->filepath); + } else { /*if file is not exist ug terminated temporally */ - MSG_ERROR("Center file is not exist. stype=%d name=%s", mdata->slide_type, mdata->filepath); + MSG_SEC("Center file is not exist. stype=%d name=%s", mdata->slide_type, mdata->filepath); DESTROY_ME(); return ; } - } - else - { + } else { MSG_ERROR("Unhandled slide type : %d", mdata->slide_type); } } @@ -436,9 +198,9 @@ ivug_slideshow_view_pause(Ivug_SlideShowView *pSSView) { IV_ASSERT(pSSView != NULL); - if ( pSSView->ssHandle ) - { - ivug_ss_stop(pSSView->ssHandle); + if (pSSView->ssHandle) { + MSG_IMAGEVIEW_HIGH("slidshow view pause"); + ivug_ss_pause(pSSView->ssHandle); } // Stop photocam If AGIF @@ -450,35 +212,43 @@ ivug_slideshow_view_destroy(Ivug_SlideShowView *pSSView) { IV_ASSERT(pSSView != NULL); - MSG_HIGH("ENTER : SlideShow View Destroy. pMainView=0x%08x", pSSView); + MSG_IMAGEVIEW_HIGH("ENTER : SlideShow View Destroy. pMainView=0x%08x", pSSView); + + int ret = DEVICE_ERROR_NONE; + ret = device_power_release_lock(POWER_LOCK_DISPLAY); + + if (ret != DEVICE_ERROR_NONE) { + MSG_ERROR("Display Release could not be processed."); + } + + MSG_IMAGEVIEW_HIGH("Unregister system notifications"); + if (pSSView->ssHandle) { + MSG_IMAGEVIEW_HIGH("image viewer end cause slide show ended"); + ivug_ss_delete(pSSView->ssHandle); + pSSView->ssHandle = NULL; + } MSG_HIGH("Unregister system notifications"); if (pSSView->layout) { evas_object_del(pSSView->layout); pSSView->layout = NULL; } - if(pSSView->keydown_handler) - { + if (pSSView->keydown_handler) { ecore_event_handler_del(pSSView->keydown_handler); pSSView->keydown_handler = NULL; } - if(pSSView->homekey_idler) - { - ecore_idler_del(pSSView->homekey_idler); - pSSView->homekey_idler = NULL; - } - if ( pSSView->mList ) - { + if (pSSView->mList) { MSG_MAIN_HIGH("Remove media list"); ivug_medialist_del(pSSView->mList); // ivug_medialist_del() is not working on destroy cb. pSSView->mList = NULL; } - if(pSSView->album_name) - { + + if (pSSView->album_name) { free(pSSView->album_name); pSSView->album_name = NULL; } + EFL::dump_obj(pSSView->parent, 0); free(pSSView); pSSView = NULL; diff --git a/main/src/view/ivug-smart-event-box.c b/main/src/view/ivug-smart-event-box.c new file mode 100755 index 0000000..d3e7ad2 --- /dev/null +++ b/main/src/view/ivug-smart-event-box.c @@ -0,0 +1,145 @@ +/* +* Copyright (c) 2000-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 "ivug-smart-event-box.h" +#include + +#include "ivug-common.h" +#include "ivug-parameter.h" + +#define IF_FREE(p) ({if (p) {free(p);p=NULL;}}) + +#ifndef ABS +#define ABS(x) ((x) < 0 ? -(x) : (x)) +#endif + +typedef struct _EventCallbackData_t +{ + void (*func)(void *); + void *data; +}EventCallbackData_t; + +typedef struct _IvugSmartEventBoxData_t +{ + Evas_Coord x, y, w, h; + Evas_Coord down_x; + Evas_Coord down_y; + + EventCallbackData_t cbs[IVUG_EVENT_MAX]; + +} IvugSmartEventBoxData_t; + + +static void +__mouse_down_cb(void *data, Evas * evas, Evas_Object * obj, void *event_info) +{ + Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down *) event_info; + IvugSmartEventBoxData_t *box_d = data; + box_d->down_x = ev->canvas.x; + box_d->down_y = ev->canvas.y; + + return; +} + +static void +__mouse_up_cb(void *data, Evas * evas, Evas_Object * obj, void *event_info) +{ + Evas_Coord minw = 0, minh = 0, diff_x = 0, diff_y = 0; + Evas_Event_Mouse_Up *mu = (Evas_Event_Mouse_Up *) event_info; + IvugSmartEventBoxData_t *box_d = data; + elm_coords_finger_size_adjust(1, &minw, 1, &minh); + + diff_x = box_d->down_x - mu->canvas.x; + diff_y = box_d->down_y - mu->canvas.y; + + if ((ABS(diff_x) > minw) || (ABS(diff_y) > minh)) + { // dragging + if (ABS(diff_y) > ABS(diff_x)) + { + if (diff_y < 0) //down + goto flick_down; + else //up + goto flick_up; + } + else + { + if (diff_x < 0) + { //right + goto flick_right; + } + else + { //left + goto flick_left; + } + } + } + + box_d->cbs[IVUG_EVENT_CLICK].func(box_d->cbs[IVUG_EVENT_CLICK].data); + return; + + flick_up: + return; + + flick_down: + return; + + flick_left: + box_d->cbs[IVUG_EVENT_LEFT].func(box_d->cbs[IVUG_EVENT_LEFT].data); + return; + + flick_right: + box_d->cbs[IVUG_EVENT_RIGHT].func(box_d->cbs[IVUG_EVENT_RIGHT].data); + return; +} + +static void +_ivug_smart_event_box_del_cb(void *data, Evas * e, Evas_Object * eo, void *event_info) +{ + IvugSmartEventBoxData_t *b_data= data; + IF_FREE(b_data); +} + +Evas_Object * +ivug_smart_event_box_add(Evas_Object * parent) +{ + IvugSmartEventBoxData_t *data = NULL; + Evas_Object *rect = evas_object_rectangle_add(evas_object_evas_get(parent)); + data = calloc(1, sizeof(IvugSmartEventBoxData_t)); + evas_object_data_set(rect, "obj_data", data); + //evas_object_size_hint_min_set(rect, 0, 15); + evas_object_color_set(rect, 0, 0, 0, 0); + evas_object_size_hint_fill_set(rect, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(rect, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(rect, EVAS_HINT_FILL, 0.0); + evas_object_event_callback_add(rect, EVAS_CALLBACK_DEL, _ivug_smart_event_box_del_cb, data); + evas_object_event_callback_add(rect, EVAS_CALLBACK_MOUSE_DOWN, __mouse_down_cb, data); + evas_object_event_callback_add(rect, EVAS_CALLBACK_MOUSE_UP, __mouse_up_cb, data); + return rect; +} + +void ivug_smart_event_box_callback_add(Evas_Object *event_box, IvugEventCallback_e event, void (*event_cb)(void *), void *user_data) +{ + IvugSmartEventBoxData_t *data = evas_object_data_get(event_box, "obj_data"); + + if (data != NULL) { + data->cbs[event].func= event_cb; + data->cbs[event].data = user_data; + } +} + + diff --git a/medialist/CMakeLists.txt b/medialist/CMakeLists.txt index 1b255fb..4deed5b 100755 --- a/medialist/CMakeLists.txt +++ b/medialist/CMakeLists.txt @@ -10,13 +10,15 @@ INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/include ${IVUG_SOURCE_COMMON_DIR}/include ${IVUG_SOURCE_FEATURE_DIR}/include + ${IVUG_SOURCE_RESOURCE_DIR}/include ) SET(SRCS - src/ivug-medialist.c + src/ivug-medialist.cpp src/ivug-mediadata.c src/ivug-data-list.c src/ivug-filter.c + src/ivug-mediainfo.cpp ) INCLUDE(FindPkgConfig) diff --git a/medialist/include/ivug-filter.h b/medialist/include/ivug-filter.h index 71bbd5c..e140310 100755 --- a/medialist/include/ivug-filter.h +++ b/medialist/include/ivug-filter.h @@ -1,30 +1,31 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_FILTER_H__ #define __IVUG_FILTER_H__ #include - #include "ivug-define.h" - typedef enum { FILTER_DB, FILTER_DIRECTORY, + FILTER_FILE_LIST, + FILTER_TYPE_MAX }filter_type_e; typedef struct _DB_Filter{ @@ -38,15 +39,17 @@ typedef struct _DB_Filter{ double min_latitude; } place; + struct { + long start; + long end; + } time; + int tag_id; UUID album_id; // Cluster id }; - } DB_Filter; - - typedef struct _Directory_Filter { const char *basedir; const char *current; // Center Item. @@ -61,11 +64,10 @@ typedef struct _Filter_struct{ char *filepath; Eina_List *selected_list; - + Eina_List *file_list; //union{ DB_Filter *db_filter; - Direcotry_Filter *dir_filter; //} }Filter_struct; @@ -79,7 +81,6 @@ Filter_struct *ivug_data_filter_copy(const Filter_struct *filter); void ivug_data_filter_delete(Filter_struct *filter); - #ifdef __cplusplus } #endif diff --git a/medialist/include/ivug-media.h b/medialist/include/ivug-media.h index 4f2ec76..1fc524b 100755 --- a/medialist/include/ivug-media.h +++ b/medialist/include/ivug-media.h @@ -1,24 +1,29 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_MEDIA_H__ #define __IVUG_MEDIA_H__ +#include "ivug-define.h" #include "ivug-datatypes.h" #include "ivug-db.h" +#include "ivug-filter.h" + +//#include "ivug-medialist.h" #include #include @@ -31,22 +36,47 @@ typedef enum { SLIDE_TYPE_UNKNOWN, // File is exists but it's type is unknown. } Media_Type; -// Meida_Data can be one in File, DB +// Meida_Data can be one in File, DB, PTP, DLNA + +typedef enum { + MIMAGE_TYPE_NORMAL, + MIMAGE_TYPE_SOUNDSCENE, + MIMAGE_TYPE_PANORAMA, + MIMAGE_TYPE_ANIMATED, + MIMAGE_TYPE_BESTSHOT, +} MImageType; + +typedef enum { + DATA_STATE_NONE, + DATA_STATE_READY, + DATA_STATE_WAIT, + DATA_STATE_LOADING, + DATA_STATE_LOADED, + DATA_STATE_NO_PERMISSION, + DATA_STATE_ERROR, + DATA_STATE_MAX +}Data_State; + +typedef struct _Media_Data Media_Data; + +/* Opaque pointer for media list. */ +typedef void Media_List; + +typedef void (*mdata_callback_t)(Media_Data *mdata, Data_State state, void *data); /* This struct represents data for slide. thumbnail_path is slide's thumbnail image path. - fileurl is saved item in media service. and drm. + fileurl is saved item in media service. filepath is local file path. if fileurl is http://.../test.jpg, filepath is NULL, when complete download filepath change to saved local file path. */ -typedef struct { +struct _Media_Data{ media_handle m_handle; int index; //Data - Media_Type slide_type; //image, video - bool bIsDRMContent; + Media_Type slide_type; //image, video, web image. UUID mediaID; // Unique Media ID @@ -54,11 +84,22 @@ typedef struct { char* fileurl; // file url. char* filepath; // file path in local file system. - char* drm_filepath; Ivug_DB_h *thumb_handle; -} Media_Data; + MImageType iType; // Only available for image + + Media_List *p_mList; //parent media list + + Data_State state; + Data_State thumbnail_state; + + mdata_callback_t thumbnail_callback; + void *thumb_cb_data; + + mdata_callback_t file_callback; + void *cb_data; +}; #ifdef __cplusplus extern "C" { @@ -67,10 +108,24 @@ extern "C" { bool ivug_mediadata_set_tag(Media_Data *data, const char *newtag); bool ivug_mediadata_set_favorite(Media_Data *data, bool bFavorite); +bool ivug_mediadata_get_favorite(Media_Data *data, bool *bFavorite); bool ivug_mediadata_delete(Media_Data * mdata); bool ivug_mediadata_free(Media_Data * mdata); +void ivug_mediadata_request_thumbnail(Media_Data *mdata, mdata_callback_t callback, void *data); + +void ivug_mediadata_request_file(Media_Data *mdata, mdata_callback_t callback, void *data); +void ivug_mediadata_cancel_request_file(Media_Data *mdata); + +const char* ivug_mediadata_get_filepath(Media_Data *mdata); +const char* ivug_mediadata_get_fileurl(Media_Data *mdata); +const char* ivug_mediadata_get_thumbnailpath(Media_Data *mdata); + +void ivug_mediadata_set_file_state(Media_Data *mdata, Data_State state); + +Data_State ivug_mediadata_get_file_state(Media_Data *mdata); +Data_State ivug_mediadata_get_thumbnail_state(Media_Data *mdata); #ifdef __cplusplus } diff --git a/medialist/include/ivug-medialist.h b/medialist/include/ivug-medialist.h index a215708..168b4c1 100755 --- a/medialist/include/ivug-medialist.h +++ b/medialist/include/ivug-medialist.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_MEDIALIST_H__ #define __IVUG_MEDIALIST_H__ @@ -23,12 +24,8 @@ #include "ivug-filter.h" - typedef void *Media_Item; -/* Opaque pointer for media list. */ -typedef void Media_List; - typedef bool (*ivug_medialist_cb)(Media_List *mList, void *data); #ifdef __cplusplus @@ -39,7 +36,8 @@ Media_List * ivug_medialist_create(); bool ivug_medialist_set_callback(Media_List *mList, ivug_medialist_cb callback, void *data); -Media_Item *ivug_medialist_load(Media_List *mList, const Filter_struct *filter); +Media_Item *ivug_medialist_load(Media_List *mList, Filter_struct *filter); +Media_Item *ivug_medialist_reload(Media_List *mList, Media_Item *current); void ivug_medialist_del(Media_List *mList); @@ -48,7 +46,6 @@ void ivug_medialist_del(Media_List *mList); */ int ivug_medialist_get_count(Media_List *mList); - /* Needed for displaying title. ex) Index/Total Count */ @@ -61,7 +58,7 @@ Media_Item *ivug_medialist_get_last(Media_List *mList); Media_Item *ivug_medialist_get_next(Media_List *mList, Media_Item *item); Media_Item *ivug_medialist_get_prev(Media_List *mList, Media_Item *item); -void ivug_medialist_delete_item(Media_List *mList, Media_Item *item); +void ivug_medialist_delete_item(Media_List *mList, Media_Item *item, bool deleteItem); Media_Data *ivug_medialist_get_data(const Media_Item *item); @@ -70,11 +67,36 @@ Media_Item *ivug_medialist_get_shuffle_item(Media_List *mList, Media_Item *item) Media_Item *ivug_medialist_find_item_by_index(Media_List *mList, int index); -Media_Item * ivug_medialist_find_item_by_filename(Media_List *mList, const char* filepath); +Media_Item *ivug_medialist_find_item_by_filename(Media_List *mList, const char* filepath); +Media_Item *ivug_medialist_find_item_by_uuid(Media_List *mList, UUID uuid); Media_Item *ivug_medialist_append_item(Media_List *mList, const char *filepath); Media_Item *ivug_medialist_prepend_item(Media_List *mList, const char *filepath); +void ivug_medialist_set_update_callback(Media_List *mList); +void ivug_medialist_del_update_callback(Media_List *mList); + +bool ivug_medialist_set_current_item(Media_List *mList, Media_Item *mitem); + +Media_Item * ivug_medialist_get_current_item(Media_List *mList); + +/* + Returns previously selected item +*/ +Media_Item * ivug_medialist_get_prev_item(Media_List *mList); + +bool ivug_medialist_need_update(Media_List *mList); + +void ivug_medialist_set_update_flag(Media_List *mList, bool flag); + +void ivug_media_list_free(Media_List *mList); + +Eina_List *ivug_medialist_get_burst_item_list(Media_List *mList, const char *burst_id); + +void ivug_medialist_del_burst_item_list(Eina_List *list); + +/* Return filter must be freed */ +Filter_struct * ivug_medialist_get_filter(Media_List *mList); #ifdef __cplusplus } diff --git a/medialist/src/ivug-data-list.c b/medialist/src/ivug-data-list.c index acad7b1..1bc674d 100755 --- a/medialist/src/ivug-data-list.c +++ b/medialist/src/ivug-data-list.c @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 "ivug-define.h" @@ -22,7 +23,9 @@ #include "ivug-debug.h" #include "ivug-media.h" #include "ivug-mediadata.h" -#include "ivug-medialist.h" +//#include "ivug-medialist.h" + +#include "ivug-file-info.h" #include "ivug-db.h" @@ -34,10 +37,11 @@ #include #include +//#include static char *_strerror_db(int error) { - switch(error) + switch (error) { case MEDIA_CONTENT_ERROR_INVALID_PARAMETER: return "Invalid parameter"; @@ -48,13 +52,27 @@ static char *_strerror_db(int error) default: { static char buf[40]; - sprintf(buf, "Error Code=%d", error); + snprintf(buf, 40, "Error Code=%d", error); return buf; } } } +static void _change_comma_to_dot(char *buffer) +{ + int len = strlen(buffer); + + int i; + + for (i=0; idb_filter; + + ivug_db_set_filter_offset(media_filter, start, end); + switch (filter->view_by) + { + case IVUG_VIEW_BY_FOLDER: + ret = media_folder_foreach_media_from_db(db_filter->album_id, + media_filter, _ivug_list_media_item_cb, item_list); + break; + + case IVUG_VIEW_BY_HIDDEN_FOLDER: + break; + + case IVUG_VIEW_BY_ALL: + ret = media_info_foreach_media_from_db(media_filter, _ivug_list_media_item_cb, item_list); + break; + + case IVUG_VIEW_BY_HIDDEN_ALL: + break; + + case IVUG_VIEW_BY_FAVORITES: + ret = media_info_foreach_media_from_db(media_filter, _ivug_list_media_item_cb, item_list); + break; + + case IVUG_VIEW_BY_TAG: + ret = media_tag_foreach_media_from_db(db_filter->tag_id, media_filter, + _ivug_list_media_item_cb, item_list); + break; + + case IVUG_VIEW_BY_PLACES: + ret = media_info_foreach_media_from_db(media_filter, _ivug_list_media_item_cb, item_list); + break; + + case IVUG_VIEW_BY_TIMELINE: + ret = media_info_foreach_media_from_db(media_filter, _ivug_list_media_item_cb, item_list); + break; + default: + MSG_SDATA_FATAL("Invalid View By=%d", filter->view_by); + return; + } + + if (ret != MEDIA_CONTENT_ERROR_NONE) + { + MSG_SDATA_ERROR("[%s] Error=%d VieBy=%d", __func__, ret, filter->view_by); + } + +} Eina_List * ivug_list_load_DB_items(const Filter_struct *filter, int stp, int endp) @@ -79,13 +148,18 @@ ivug_list_load_DB_items(const Filter_struct *filter, int stp, int endp) DB_Filter *db_filter = filter->db_filter; char *string = NULL; - int ret = MEDIA_CONTENT_ERROR_NONE; if (filter->view_by == IVUG_VIEW_BY_FILE) { Eina_List *list = NULL; Media_Data *mData = ivug_alloc_mediadata_from_filepath(db_filter->file_path); + if (mData == NULL) + { + MSG_SDATA_ERROR("mData is NULL"); + return NULL; + } + list = eina_list_append(list, mData); return list; } @@ -93,55 +167,42 @@ ivug_list_load_DB_items(const Filter_struct *filter, int stp, int endp) filter_handle media_filter = NULL; ivug_db_create_filter(&media_filter); - if(filter->view_by == IVUG_VIEW_BY_PLACES) + if (filter->view_by == IVUG_VIEW_BY_PLACES) { string = calloc(1, sizeof(char)*IVUG_MAX_CONDITION_LEN); - snprintf(string, IVUG_MAX_CONDITION_LEN, - "(MEDIA_LONGITUDE >= %f AND MEDIA_LONGITUDE <= %f AND MEDIA_LATITUDE >= %f AND MEDIA_LATITUDE <= %f)", - db_filter->place.min_longitude, db_filter->place.max_longitude, - db_filter->place.min_latitude, db_filter->place.max_latitude); - } - ivug_db_set_filter(media_filter, filter->view_by, filter->media_type, string); - ivug_db_set_filter_offset(media_filter, stp, endp); - - Eina_List *item_list = NULL; + if (string != NULL) { + snprintf(string, IVUG_MAX_CONDITION_LEN, + "(MEDIA_LONGITUDE >= %f AND MEDIA_LONGITUDE <= %f AND MEDIA_LATITUDE >= %f AND MEDIA_LATITUDE <= %f)", + db_filter->place.min_longitude, db_filter->place.max_longitude, + db_filter->place.min_latitude, db_filter->place.max_latitude); - switch(filter->view_by) + _change_comma_to_dot(string); + } + } + else if (filter->view_by == IVUG_VIEW_BY_TIMELINE) { - case IVUG_VIEW_BY_FOLDER: - ret = media_folder_foreach_media_from_db(db_filter->album_id, - media_filter, _ivug_list_media_item_cb, &item_list); - break; - - case IVUG_VIEW_BY_ALL: - ret = media_info_foreach_media_from_db(media_filter, _ivug_list_media_item_cb, &item_list); - break; + string = calloc(1, sizeof(char)*IVUG_MAX_CONDITION_LEN); + if (string != NULL) { + snprintf(string, IVUG_MAX_CONDITION_LEN, + "(MEDIA_TIMELINE BETWEEN %ld AND %ld)", + db_filter->time.start, db_filter->time.end); + } + } + ivug_db_set_filter(media_filter, filter->view_by, filter->media_type, string); - case IVUG_VIEW_BY_FAVORITES: - ret = media_info_foreach_media_from_db(media_filter, _ivug_list_media_item_cb, &item_list); - break; + Eina_List *item_list = NULL; - case IVUG_VIEW_BY_TAG: - ret = media_tag_foreach_media_from_db(db_filter->tag_id, media_filter, _ivug_list_media_item_cb, &item_list); - break; - case IVUG_VIEW_BY_PLACES: - ret = media_info_foreach_media_from_db(media_filter, _ivug_list_media_item_cb, &item_list); - break; + _load_list_db(filter, media_filter, stp, endp, &item_list); - default: - MSG_SDATA_FATAL("Invalid View By=%d", filter->view_by); - return NULL; + if (filter->sort_type == IVUG_MEDIA_ASC_BY_DATE) { + if(item_list) { + item_list = eina_list_reverse(item_list); + } } ivug_db_destroy_filter(media_filter); - if ( ret != MEDIA_CONTENT_ERROR_NONE ) - { - MSG_SDATA_ERROR("[%s] Error=%d VieBy=%d", __func__, ret, filter->view_by); - return NULL; - } - // Creating media_list. Eina_List *slide_list = NULL; @@ -155,7 +216,12 @@ ivug_list_load_DB_items(const Filter_struct *filter, int stp, int endp) EINA_LIST_FOREACH(item_list, item, mitem) { mdata = ivug_alloc_mediadata_from_media_handle(mitem); - mdata->index = i + stp; + if (mdata == NULL) + { + MSG_SDATA_ERROR("mdata create error!"); + continue; + } + mdata->index = i + stp; // stp~ i++; @@ -182,66 +248,68 @@ ivug_list_load_DB_items_list(const Filter_struct *filter, Eina_List *list) DB_Filter *db_filter = filter->db_filter; char *string = NULL; - int ret = MEDIA_CONTENT_ERROR_NONE; filter_handle media_filter = NULL; ivug_db_create_filter(&media_filter); - if(filter->view_by == IVUG_VIEW_BY_PLACES) + if (filter->view_by == IVUG_VIEW_BY_PLACES) + { + string = calloc(1, sizeof(char)*IVUG_MAX_CONDITION_LEN); + + if (string != NULL) { + snprintf(string, IVUG_MAX_CONDITION_LEN, + "(MEDIA_LONGITUDE >= %f AND MEDIA_LONGITUDE <= %f AND MEDIA_LATITUDE >= %f AND MEDIA_LATITUDE <= %f)", + db_filter->place.min_longitude, db_filter->place.max_longitude, + db_filter->place.min_latitude, db_filter->place.max_latitude); + _change_comma_to_dot(string); + } + } + else if (filter->view_by == IVUG_VIEW_BY_TIMELINE) { string = calloc(1, sizeof(char)*IVUG_MAX_CONDITION_LEN); - snprintf(string, IVUG_MAX_CONDITION_LEN, - "(MEDIA_LONGITUDE >= %f AND MEDIA_LONGITUDE <= %f AND MEDIA_LATITUDE >= %f AND MEDIA_LATITUDE <= %f)", - db_filter->place.min_longitude, db_filter->place.max_longitude, - db_filter->place.min_latitude, db_filter->place.max_latitude); + if (string != NULL) { + snprintf(string, IVUG_MAX_CONDITION_LEN, + "(MEDIA_TIMELINE BETWEEN %ld AND %ld)", + db_filter->time.start, db_filter->time.end); + } } + ivug_db_set_filter(media_filter, filter->view_by, filter->media_type, string); Eina_List *l = NULL; void *data = NULL; int index = -1; Eina_List *item_list = NULL; + int start = -1; + int end = -1; EINA_LIST_FOREACH(list, l, data) { index = (int)data; - ivug_db_set_filter_offset(media_filter, index, index); - - switch(filter->view_by) + if (start == -1) + { + start = index; + end = start; + continue; + } + else if (index == end+1) + { + end = index; + continue; + } + else { - case IVUG_VIEW_BY_FOLDER: - ret = media_folder_foreach_media_from_db(db_filter->album_id, - media_filter, _ivug_list_media_item_cb, &item_list); - break; - - case IVUG_VIEW_BY_ALL: - ret = media_info_foreach_media_from_db(media_filter, _ivug_list_media_item_cb, &item_list); - break; - - case IVUG_VIEW_BY_FAVORITES: - ret = media_info_foreach_media_from_db(media_filter, _ivug_list_media_item_cb, &item_list); - break; - - case IVUG_VIEW_BY_TAG: - ret = media_tag_foreach_media_from_db(db_filter->tag_id, media_filter, _ivug_list_media_item_cb, &item_list); - break; - case IVUG_VIEW_BY_PLACES: - ret = media_info_foreach_media_from_db(media_filter, _ivug_list_media_item_cb, &item_list); - break; - - default: - MSG_SDATA_FATAL("Invalid View By=%d", filter->view_by); - return NULL; + _load_list_db(filter, media_filter, start, end, &item_list); + + start = index; + end = index; } } + _load_list_db(filter, media_filter, start, end, &item_list); //load remain ivug_db_destroy_filter(media_filter); - if ( ret != MEDIA_CONTENT_ERROR_NONE ) - { - MSG_SDATA_ERROR("[%s] Error=%d VieBy=%d", __func__, ret, filter->view_by); - return NULL; - } + MSG_SDATA_HIGH("DB Item loaded %d items", eina_list_count(item_list)); // Creating media_list. Eina_List *slide_list = NULL; @@ -256,6 +324,11 @@ ivug_list_load_DB_items_list(const Filter_struct *filter, Eina_List *list) EINA_LIST_FOREACH(item_list, item, mitem) { mdata = ivug_alloc_mediadata_from_media_handle(mitem); + if (mdata == NULL) + { + MSG_SDATA_ERROR("mdata create error!"); + continue; + } mdata->index = i; i++; @@ -271,13 +344,12 @@ ivug_list_load_DB_items_list(const Filter_struct *filter, Eina_List *list) media_info_destroy(mitem); } - MSG_SDATA_HIGH("Item header=0x%08x Item loaded %d items", slide_list, eina_list_count(item_list)); + MSG_SDATA_HIGH("Item header=0x%08x Item loaded %d items", slide_list, eina_list_count(slide_list)); return slide_list; } - int ivug_list_get_item_cnt(const Filter_struct *filter) { filter_h media_filter = NULL; @@ -288,44 +360,53 @@ int ivug_list_get_item_cnt(const Filter_struct *filter) char *string = NULL; - - if(filter->selected_list) - { - return eina_list_count(filter->selected_list); - } - DB_Filter *db_filter = filter->db_filter; ivug_db_create_filter((filter_handle*)&media_filter); - if(filter->view_by == IVUG_VIEW_BY_PLACES) + if (filter->view_by == IVUG_VIEW_BY_PLACES) + { + string = calloc(1, sizeof(char)*IVUG_MAX_CONDITION_LEN); + + if (string != NULL) { + snprintf(string, IVUG_MAX_CONDITION_LEN, + "(MEDIA_LONGITUDE >= %f AND MEDIA_LONGITUDE <= %f AND MEDIA_LATITUDE >= %f AND MEDIA_LATITUDE <= %f)", + db_filter->place.min_longitude, db_filter->place.max_longitude, + db_filter->place.min_latitude, db_filter->place.max_latitude); + _change_comma_to_dot(string); + } + } + else if (filter->view_by == IVUG_VIEW_BY_TIMELINE) { string = calloc(1, sizeof(char)*IVUG_MAX_CONDITION_LEN); - snprintf(string, IVUG_MAX_CONDITION_LEN, - "(MEDIA_LONGITUDE >= %f AND MEDIA_LONGITUDE <= %f AND MEDIA_LATITUDE >= %f AND MEDIA_LATITUDE <= %f)", - db_filter->place.min_longitude, db_filter->place.max_longitude, - db_filter->place.min_latitude, db_filter->place.max_latitude); + if (string != NULL) { + snprintf(string, IVUG_MAX_CONDITION_LEN, + "(MEDIA_TIMELINE BETWEEN %ld AND %ld)", + db_filter->time.start, db_filter->time.end); + } } ivug_db_set_filter(media_filter, filter->view_by, filter->media_type, string); - switch(filter->view_by) + switch (filter->view_by) { case IVUG_VIEW_BY_ALL: ret = media_info_get_media_count_from_db(media_filter, &count); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_SDATA_ERROR("media_info_get_media_count_from_db is failed, err = %s", _strerror_db(ret)); goto GET_COUNT_ERROR; } MSG_SDATA_HIGH("IVUG_VIEW_BY_ALL. MediaType=%d Count=%d", filter->media_type, count); break; + case IVUG_VIEW_BY_HIDDEN_ALL: + break; case IVUG_VIEW_BY_TAG: - if(db_filter->tag_id <= 0 ) + if (db_filter->tag_id <= 0) { MSG_SDATA_ERROR("tag id is invalid"); goto GET_COUNT_ERROR; } ret = media_tag_get_media_count_from_db(db_filter->tag_id, media_filter, &count); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_SDATA_ERROR("media_tag_get_tag_count_from_db is failed, err = %s", _strerror_db(ret)); goto GET_COUNT_ERROR; @@ -334,30 +415,46 @@ int ivug_list_get_item_cnt(const Filter_struct *filter) break; case IVUG_VIEW_BY_PLACES: ret = media_info_get_media_count_from_db(media_filter, &count); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_SDATA_ERROR("media_info_get_media_count_from_db is failed, err = %s", _strerror_db(ret)); goto GET_COUNT_ERROR; } MSG_SDATA_HIGH("IVUG_VIEW_BY_PLACES. Count=%d", count); break; + case IVUG_VIEW_BY_TIMELINE: + ret = media_info_get_media_count_from_db(media_filter, &count); + if (ret != MEDIA_CONTENT_ERROR_NONE) + { + MSG_SDATA_ERROR("media_info_get_media_count_from_db is failed, err = %s", _strerror_db(ret)); + goto GET_COUNT_ERROR; + } + MSG_SDATA_HIGH("IVUG_VIEW_BY_TIMELINE. Count=%d", count); + break; case IVUG_VIEW_BY_FOLDER: - if(db_filter->album_id == NULL) + if (db_filter->album_id == NULL) { MSG_SDATA_ERROR("album_id is NULL"); goto GET_COUNT_ERROR; } ret = media_folder_get_media_count_from_db(db_filter->album_id, media_filter, &count); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_SDATA_ERROR("media_folder_get_media_count_from_db is failed, err = %s", _strerror_db(ret)); goto GET_COUNT_ERROR; } MSG_SDATA_HIGH("IVUG_VIEW_BY_FOLDER. Count=%d", count); break; + case IVUG_VIEW_BY_HIDDEN_FOLDER: + if (db_filter->album_id == NULL) + { + MSG_SDATA_ERROR("album_id is NULL"); + goto GET_COUNT_ERROR; + } + break; case IVUG_VIEW_BY_FAVORITES: ret = media_info_get_media_count_from_db(media_filter, &count); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_SDATA_ERROR("media_info_get_media_count_from_db is failed, err = %s", _strerror_db(ret)); goto GET_COUNT_ERROR; @@ -385,11 +482,50 @@ GET_COUNT_ERROR: return -1; } +int ivug_list_get_burst_item_cnt(const Filter_struct *filter, const char * burst_id) +{ + filter_h media_filter = NULL; + + int ret = MEDIA_CONTENT_ERROR_NONE; + + int count = 0; + + char *string = NULL; + + ivug_db_create_filter((filter_handle*)&media_filter); + + string = calloc(1, sizeof(char)*IVUG_MAX_CONDITION_LEN); + + if (string != NULL) { + snprintf(string, IVUG_MAX_CONDITION_LEN, "(%s=%s)", MEDIA_BURST_ID, burst_id); + ivug_db_set_image_time_asc_filter(media_filter, string); + } + + ret = media_info_get_media_count_from_db(media_filter, &count); + if (ret != MEDIA_CONTENT_ERROR_NONE) + { + MSG_SDATA_ERROR("media_info_get_media_count_from_db is failed, err = %s", _strerror_db(ret)); + goto GET_COUNT_ERROR; + } + + MSG_SDATA_HIGH("ivug_db_get_count success, count = %d", count); + + ivug_db_destroy_filter(media_filter); + return count; + +GET_COUNT_ERROR: + MSG_SDATA_ERROR("ivug_db_get_count FAILED"); + + ivug_db_destroy_filter(media_filter); + return -1; +} + + void ivug_list_delete_items(Eina_List *items) { Media_Data* mdata; - if ( items == NULL ) + if (items == NULL) { MSG_SDATA_HIGH("Item list is NULL."); return; @@ -403,13 +539,41 @@ void ivug_list_delete_items(Eina_List *items) } } - - - static void enum_dir(const char *fname, void *user_data) { IV_ASSERT(user_data != NULL); + char *mime_type = NULL; + mime_type = ivug_fileinfo_get_mime_type(fname); + if (mime_type == NULL) + { + MSG_SDATA_WARN("file path is not vaild = %s", fname); + return; + } + + Media_Type slide_type = SLIDE_TYPE_NONE; + //image + if (strncmp(mime_type, "image/jpeg", strlen("image/jpeg")) == 0 + || strncmp(mime_type, "image/bmp", strlen("image/bmp")) == 0 + || strncmp(mime_type, "image/png", strlen("image/png")) == 0 + || strncmp(mime_type, "image/gif", strlen("image/gif")) == 0 + || strncmp(mime_type, "image/vnd.wap.wbmp", strlen("image/vnd.wap.wbmp")) == 0) + { + slide_type = SLIDE_TYPE_IMAGE; + } + else if (strncmp(mime_type, "video/", strlen("video/")) == 0) + { + slide_type = SLIDE_TYPE_VIDEO; + } + else + { + MSG_SDATA_WARN("not supported file type = %s", fname); + free(mime_type); + return; + } + + free(mime_type); + Eina_List **list = (Eina_List **)user_data; // Alloc new mdata @@ -417,26 +581,40 @@ static void enum_dir(const char *fname, void *user_data) mdata = (Media_Data *)calloc(1, sizeof(Media_Data)); -// Thumbnail path format.. ".thumbs/xxxx_thm.ext" -// File path format.. "xxxx_bestpic.ext" - - mdata->fileurl = strdup(fname); - mdata->filepath = strdup(fname); // file path in local file system. - mdata->slide_type = SLIDE_TYPE_IMAGE; // Currently, Best pic is only for image - -// Get thumblist. - char *dir = ivug_get_directory(fname); // User free return value. - char *file = ivug_get_filename(fname); // User should not free return value. - - char *thumbpath = (char *)malloc(strlen(dir) + strlen(file) + strlen("/.thumbs/")+ 1); - - sprintf(thumbpath, "%s/.thumbs/%s", dir, file); + if (mdata != NULL) { + // Thumbnail path format.. ".thumbs/xxxx_thm.ext" + // File path format.. "xxxx_bestpic.ext" + mdata->fileurl = strdup(fname); + mdata->filepath = strdup(fname); + mdata->slide_type = slide_type; + + // Get thumblist. + // User free return value. + char *dir = ivug_get_directory(fname); + // User should not free return value. + const char *file = ivug_get_filename(fname); + + if (dir != NULL) { + char *thumbpath = (char *)malloc(strlen(dir) + strlen(file) + strlen("/.thumbs/")+ 1); + int size_x = (strlen(dir) + strlen(file) + strlen("/.thumbs/")+ 1); + if (thumbpath == NULL) + { + MSG_SDATA_WARN("malloc ERROR"); + free(mdata->filepath); + free(mdata->fileurl); + free(mdata); + free(dir); + return; + } - mdata->thumbnail_path = thumbpath; // thumbnail image file path. + snprintf(thumbpath, size_x, "%s/.thumbs/%s", dir, file); - free(dir); - *list = eina_list_append(*list, (void *)mdata); + mdata->thumbnail_path = thumbpath; // thumbnail image file path. + free(dir); + } + *list = eina_list_append(*list, (void *)mdata); + } } int ivug_list_get_dir_cnt(const char *basedir) @@ -445,7 +623,7 @@ int ivug_list_get_dir_cnt(const char *basedir) count = GetFilesCountInDir(basedir); - if ( count < 0 ) + if (count < 0) { MSG_SDATA_ERROR("Cannot get item count in dir : %s", basedir); return 0; @@ -466,7 +644,7 @@ ivug_list_load_dir_items(const char *basedir) result = EnumFilesInDir(basedir, enum_dir, &list); - if ( result == false) + if (result == false) { MSG_SDATA_ERROR("Cannit get file list in %s", basedir); return NULL; @@ -492,3 +670,100 @@ Eina_List *ivug_list_prepend_item(Eina_List *list, const char *filepath) return list; } +Eina_List * +ivug_list_load_burst_items(const Filter_struct *filter, const char *burst_id, int stp, int endp) +{ + IV_ASSERT(filter != NULL); + + char *string = NULL; + + filter_handle media_filter = NULL; + ivug_db_create_filter(&media_filter); + + string = calloc(1, sizeof(char)*IVUG_MAX_CONDITION_LEN); + + if (string != NULL) { + snprintf(string, IVUG_MAX_CONDITION_LEN, "(%s=%s)", MEDIA_BURST_ID, burst_id); + ivug_db_set_image_time_asc_filter(media_filter, string); + } + + Eina_List *item_list = NULL; + + _load_list_db(filter, media_filter, stp, endp, &item_list); + + ivug_db_destroy_filter(media_filter); + +// Creating media_list. + Eina_List *slide_list = NULL; + + Eina_List *item; + media_info_h mitem = NULL; + + Media_Data *mdata = NULL; + + int i = 0; + + EINA_LIST_FOREACH(item_list, item, mitem) + { + mdata = ivug_alloc_mediadata_from_media_handle(mitem); + if (mdata == NULL) + { + MSG_SDATA_ERROR("mdata create error!"); + continue; + } + mdata->index = i + stp; // stp~ + + i++; + + IV_ASSERT(mdata != NULL); + + MSG_SDATA_LOW("Add Mdata. Mdata=0x%08x %s", mdata, mdata->filepath); + slide_list = eina_list_append(slide_list, mdata); + } + + EINA_LIST_FREE(item_list, mitem) + { + media_info_destroy(mitem); + } + + MSG_SDATA_HIGH("Item header=0x%08x Item loaded(%d~%d)", slide_list, stp, endp); + + return slide_list; +} + +Eina_List * +ivug_list_load_file_list(const Filter_struct *filter, Eina_List *list) +{ + IV_ASSERT(filter != NULL); + +// Creating media_list. + Eina_List *slide_list = NULL; + Eina_List *item; + Media_Data *mdata = NULL; + char *filepath = NULL; + + int i = 0; + + EINA_LIST_FOREACH(list, item, filepath) + { + mdata = ivug_alloc_mediadata_from_filepath(filepath); + if (mdata == NULL) + { + MSG_SDATA_ERROR("mdata create error!"); + continue; + } + mdata->index = i; + + i++; + + IV_ASSERT(mdata != NULL); + + MSG_SDATA_LOW("Add Mdata. Mdata=0x%08x %s", mdata, mdata->filepath); + slide_list = eina_list_append(slide_list, mdata); + } + + MSG_SDATA_HIGH("Item header=0x%08x Item loaded %d items", slide_list, eina_list_count(slide_list)); + + return slide_list; +} + diff --git a/medialist/src/ivug-data-list.h b/medialist/src/ivug-data-list.h index 141e0ed..1862b9a 100755 --- a/medialist/src/ivug-data-list.h +++ b/medialist/src/ivug-data-list.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_DATA_LIST_H__ #define __IVUG_DATA_LIST_H__ @@ -34,8 +35,9 @@ Eina_List *ivug_list_load_DB_items_list(const Filter_struct *filter, Eina_List * int ivug_list_get_item_cnt(const Filter_struct *filter); -void ivug_list_delete_items(Eina_List *items); +int ivug_list_get_burst_item_cnt(const Filter_struct *filter, const char * burst_id); +void ivug_list_delete_items(Eina_List *items); int ivug_list_get_dir_cnt(const char *basedir); @@ -45,6 +47,12 @@ Eina_List *ivug_list_append_item(Eina_List *list, const char *filepath); Eina_List *ivug_list_prepend_item(Eina_List *list, const char *filepath); +Eina_List * +ivug_list_load_burst_items(const Filter_struct *filter, const char *burst_id, int stp, int endp); + +Eina_List * +ivug_list_load_file_list(const Filter_struct *filter, Eina_List *list); + #ifdef __cplusplus } #endif diff --git a/medialist/src/ivug-filter.c b/medialist/src/ivug-filter.c index 43088a3..bc772d0 100755 --- a/medialist/src/ivug-filter.c +++ b/medialist/src/ivug-filter.c @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 "ivug-datatypes.h" #include "ivug-filter.h" @@ -27,40 +28,50 @@ void ivug_data_filter_delete(Filter_struct *filter_str) { IV_ASSERT(filter_str != NULL); - MSG_SDATA_HIGH("Removing filter struct. Type=%d", filter_str->type); + MSG_SDATA_HIGH("Removing filter struct. pFilter=0x%08x Type=%d", filter_str, filter_str->type); - if(filter_str->selected_list) + if (filter_str->selected_list) { eina_list_free(filter_str->selected_list); filter_str->selected_list = NULL; } - if(filter_str->type == FILTER_DB) + if (filter_str->type == FILTER_DB) { DB_Filter *filter = filter_str->db_filter; - switch(filter_str->view_by) + switch (filter_str->view_by) { case IVUG_VIEW_BY_PLACES: break; + case IVUG_VIEW_BY_TIMELINE: + break; case IVUG_VIEW_BY_TAG: break; case IVUG_VIEW_BY_FAVORITES: break; case IVUG_VIEW_BY_FILE: - if ( filter->file_path ) + if (filter->file_path) { free(filter->file_path); } break; + case IVUG_VIEW_BY_ALL: uuid_free(filter->album_id); break; + case IVUG_VIEW_BY_HIDDEN_ALL: + uuid_free(filter->album_id); + break; + case IVUG_VIEW_BY_FOLDER: uuid_free(filter->album_id); break; + case IVUG_VIEW_BY_HIDDEN_FOLDER: + uuid_free(filter->album_id); + break; case IVUG_VIEW_BY_INVAILD: default: MSG_SDATA_WARN("Invalid ViewBy : %d", filter_str->view_by); @@ -68,11 +79,22 @@ void ivug_data_filter_delete(Filter_struct *filter_str) } free(filter); } - if(filter_str->filepath) + else if (filter_str->type == FILTER_DIRECTORY) + { + Direcotry_Filter *dir_filter = filter_str->dir_filter; + if (dir_filter) + { + free((char *)dir_filter->basedir); + free((char *)dir_filter->current); + free(dir_filter); + } + } + if (filter_str->filepath) { free(filter_str->filepath); filter_str->filepath = NULL; } + free(filter_str); } @@ -85,16 +107,19 @@ Filter_struct *ivug_data_filter_copy(const Filter_struct *filter_str) memcpy(cFilter_str, filter_str, sizeof(Filter_struct)); - if(filter_str->type == FILTER_DB) + if (filter_str->type == FILTER_DB) { DB_Filter *filter = filter_str->db_filter; DB_Filter *cFilter = calloc(1, sizeof(DB_Filter)); + IV_ASSERT(cFilter != NULL); memcpy(cFilter, filter, sizeof(DB_Filter)); - switch(filter_str->view_by) + switch (filter_str->view_by) { case IVUG_VIEW_BY_PLACES: break; + case IVUG_VIEW_BY_TIMELINE: + break; case IVUG_VIEW_BY_TAG: cFilter->tag_id = filter->tag_id; break; @@ -102,22 +127,24 @@ Filter_struct *ivug_data_filter_copy(const Filter_struct *filter_str) break; case IVUG_VIEW_BY_FILE: - cFilter->file_path = strdup( filter->file_path ); - - if ( filter->file_path ) - { - free(filter->file_path); - } + cFilter->file_path = strdup(filter->file_path); break; case IVUG_VIEW_BY_ALL: - cFilter->album_id = uuid_assign( filter->album_id ); + cFilter->album_id = uuid_assign(filter->album_id); + break; + + case IVUG_VIEW_BY_HIDDEN_ALL: + cFilter->album_id = uuid_assign(filter->album_id); break; case IVUG_VIEW_BY_FOLDER: - cFilter->album_id = uuid_assign( filter->album_id ); + cFilter->album_id = uuid_assign(filter->album_id); break; + case IVUG_VIEW_BY_HIDDEN_FOLDER: + cFilter->album_id = uuid_assign(filter->album_id); + break; case IVUG_VIEW_BY_INVAILD: default: MSG_SDATA_WARN("Invalid ViewBy : %d", filter_str->view_by); @@ -126,11 +153,10 @@ Filter_struct *ivug_data_filter_copy(const Filter_struct *filter_str) cFilter_str->db_filter = cFilter; } - if(filter_str->filepath) + + if (filter_str->filepath) { cFilter_str->filepath = strdup(filter_str->filepath); } return cFilter_str; } - - diff --git a/medialist/src/ivug-mediadata.c b/medialist/src/ivug-mediadata.c index b460de5..fdc533c 100755 --- a/medialist/src/ivug-mediadata.c +++ b/medialist/src/ivug-mediadata.c @@ -1,38 +1,42 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 "ivug-define.h" #include "ivug-datatypes.h" #include "ivug-uuid.h" #include "ivug-debug.h" +#include "ivug-medialist.h" #include "ivug-mediadata.h" #include "ivug-util.h" -#include "ivug-drm-common.h" #include "ivug-file-info.h" +#include "ivug-mediainfo.h" #include "ivug-db.h" - #include #define IMAGE_PATH PREFIX"/res/images/"PACKAGE +#define DATA_PATH DATADIR"/"PACKAGE + #define DEFAULT_THUMBNAIL_PATH IMAGE_PATH"/T01_Nocontents_broken.png" +#define IVUG_WEB_DOWNLOAD_TEMP_DIR DATA_PATH static char *_strerror_db(int error) { - switch(error) + switch (error) { case MEDIA_CONTENT_ERROR_INVALID_PARAMETER: return "Invalid parameter"; @@ -43,24 +47,35 @@ static char *_strerror_db(int error) default: { static char buf[40]; - sprintf(buf, "Error Code=%d", error); + snprintf(buf, 40, "Error Code=%d", error); return buf; } } } -static void _ivug_mediadata_thumbnail_cb(media_handle media, const char *path, void *data) +static void _ivug_mediadata_call_file_callback(Media_Data *mdata, Data_State state) { - MSG_SDATA_ERROR("_ivug_mediadata_thumbnail_cb, path = %s", path); - - Media_Data *mdata = (Media_Data *)data; - - mdata->thumbnail_path = strdup(path); - - ivug_db_cancel_thumbnail(mdata->thumb_handle); + IV_ASSERT(mdata != NULL); + if (mdata->file_callback) + { + mdata->state = state; + MSG_SDATA_HIGH("mdata 0x%08x, mdata->state 0x%08x, mdata->cb_data 0x%08x", mdata, mdata->state, mdata->cb_data); + mdata->file_callback(mdata, mdata->state, mdata->cb_data); + mdata->file_callback = NULL; + } +} - mdata->thumb_handle = NULL; +static void _ivug_mediadata_call_thumbnail_callback(Media_Data *mdata, Data_State state) +{ + IV_ASSERT(mdata != NULL); + if (mdata->thumbnail_callback) + { + mdata->thumbnail_state = state; + MSG_SDATA_HIGH("mdata 0x%08x, mdata->thumbnail_state 0x%08x, mdata->thumb_cb_data 0x%08x", mdata, mdata->thumbnail_state, mdata->thumb_cb_data); + mdata->thumbnail_callback(mdata, mdata->thumbnail_state, mdata->thumb_cb_data); + mdata->thumbnail_callback = NULL; + } } Media_Data *ivug_alloc_mediadata_from_media_handle(media_handle media) @@ -78,7 +93,7 @@ Media_Data *ivug_alloc_mediadata_from_media_handle(media_handle media) media_info_h item = (media_info_h)media; int ret = media_info_clone((media_info_h*)&(mdata->m_handle), item); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_SDATA_ERROR("media_info_foreach_media_from_db is failed, err = %s", _strerror_db(ret)); goto ALLOC_MHANDLE_ERROR; @@ -87,17 +102,18 @@ Media_Data *ivug_alloc_mediadata_from_media_handle(media_handle media) char *uuid = NULL; ret = media_info_get_media_id(item, &uuid); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_SDATA_ERROR("media_info_foreach_media_from_db is failed, err = %s", _strerror_db(ret)); goto ALLOC_MHANDLE_ERROR; } + mdata->mediaID = uuid_assign(uuid); free(uuid); //file url ret = media_info_get_file_path(item, &(mdata->fileurl)); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_SDATA_ERROR("media_info_foreach_media_from_db is failed, err = %s", _strerror_db(ret)); goto ALLOC_MHANDLE_ERROR; @@ -108,60 +124,101 @@ Media_Data *ivug_alloc_mediadata_from_media_handle(media_handle media) } ret = media_info_get_thumbnail_path(item, &(mdata->thumbnail_path)); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { MSG_SDATA_ERROR("media_info_foreach_media_from_db is failed, err = %s", _strerror_db(ret)); goto ALLOC_MHANDLE_ERROR; } - if(mdata->thumbnail_path == NULL) + if (mdata->thumbnail_path == NULL) { - MSG_SDATA_ERROR("thumbnail is NULL, request to DB"); - mdata->thumb_handle = ivug_db_create_thumbnail(mdata->m_handle, _ivug_mediadata_thumbnail_cb, (void *)mdata); - } - -#if 0 - // Useless codes because media_info_get_thumbnail_path() never failed. - if(mdata->thumbnail_path == NULL) - { - MSG_SDATA_ERROR("Thumbnail path is NULL"); + MSG_SDATA_ERROR("thumbnail is NULL, request to DB later"); mdata->thumbnail_path = strdup(DEFAULT_THUMBNAIL_PATH); } -#endif - - ret = media_info_is_drm(item, &(mdata->bIsDRMContent)); - if(ret != MEDIA_CONTENT_ERROR_NONE) - { - MSG_SDATA_ERROR("media_info_foreach_media_from_db is failed, err = %s", _strerror_db(ret)); - goto ALLOC_MHANDLE_ERROR; - } media_content_type_e media_type = 0; ret = media_info_get_media_type(item, &media_type); - if(ret != MEDIA_CONTENT_ERROR_NONE) + if (ret != MEDIA_CONTENT_ERROR_NONE) { - MSG_SDATA_ERROR("media_info_foreach_media_from_db is failed, err = %s", _strerror_db(ret)); + MSG_SDATA_ERROR("media_info_get_media_type is failed, err = %s", _strerror_db(ret)); goto ALLOC_MHANDLE_ERROR; } - if(media_type == MEDIA_CONTENT_TYPE_IMAGE) + Ivug_DB_Stroge_Type storage_type = IV_STORAGE_TYPE_INTERNAL; + ivug_db_get_file_storage_type(media, &storage_type); + + if (media_type == MEDIA_CONTENT_TYPE_IMAGE) { - MSG_SDATA_MED("Local image : %s. %s", uuid_getchar( mdata->mediaID ), mdata->fileurl); + { + MSG_SDATA_MED("Local image : %s. %s", uuid_getchar(mdata->mediaID), mdata->fileurl); - mdata->slide_type = SLIDE_TYPE_IMAGE; - mdata->filepath = strdup(mdata->fileurl); + mdata->slide_type = SLIDE_TYPE_IMAGE; + mdata->filepath = strdup(mdata->fileurl); + + Ivug_Media_Type mType; + + ivug_db_get_media_type(media, &mType); + + switch (mType) + { + case IV_MEDIA_TYPE_PANORAMA: + mdata->iType = MIMAGE_TYPE_PANORAMA; + break; + + case IV_MEDIA_TYPE_SOUNDNSHOT: + mdata->iType = MIMAGE_TYPE_SOUNDSCENE; + break; + + case IV_MEDIA_TYPE_ANIMATED_PHOTO: + mdata->iType = MIMAGE_TYPE_ANIMATED; + break; + + case IV_MEDIA_TYPE_BEST_PHOTO: + mdata->iType = MIMAGE_TYPE_BESTSHOT; + break; + + case IV_MEDIA_TYPE_NORMAL: + default: + mdata->iType = MIMAGE_TYPE_NORMAL; + break; + } + } } - else if(media_type == MEDIA_CONTENT_TYPE_VIDEO) + else if (media_type == MEDIA_CONTENT_TYPE_VIDEO) { MSG_SDATA_MED("Local video : %s. %s", uuid_getchar(mdata->mediaID), mdata->fileurl); mdata->slide_type = SLIDE_TYPE_VIDEO; mdata->filepath = strdup(mdata->fileurl); } + else + { + MSG_SDATA_ERROR("media_type is invalid %d", media_type); + mdata->slide_type = SLIDE_TYPE_UNKNOWN; + mdata->filepath = strdup(DEFAULT_THUMBNAIL_PATH); + } + + if (ivug_is_web_uri(mdata->fileurl) == false) + { + //if (ivug_is_supported_file_type(mdata->fileurl) == false) + if (ivug_db_is_supported_file_type(mdata->m_handle) == false) + { + MSG_SDATA_WARN("file path is not supported = %s", mdata->fileurl); + mdata->state = DATA_STATE_ERROR; + } + else + { + mdata->state = DATA_STATE_READY; + } + } + else + { + mdata->state = DATA_STATE_READY; + } return mdata; ALLOC_MHANDLE_ERROR: - if(mdata) + if (mdata) { ivug_free_mediadata(mdata); } @@ -175,32 +232,35 @@ Media_Data *ivug_alloc_mediadata_from_filepath(const char *filepath) Media_Data * mdata = NULL; media_handle m_handle = ivug_db_get_file_handle(filepath); - if(m_handle) + if (m_handle) { mdata = ivug_alloc_mediadata_from_media_handle(m_handle); - if(mdata != NULL) + ivug_db_destroy_file_handle(m_handle); + if (mdata != NULL) { MSG_SDATA_HIGH("File path founded in DB."); return mdata; } - media_info_destroy(m_handle); } // Some file does not have media handle ex) USB host, Not inserted in DB yet MSG_SDATA_WARN("Cannot find in DB."); + if (ivug_is_file_exist(filepath) == false) + { + MSG_SDATA_ERROR("%s is not exist at device", filepath); + return NULL; + } + mdata = (Media_Data *) calloc(1, sizeof(Media_Data)); if (mdata == NULL) { MSG_SDATA_ERROR("Cannot allocate memory"); return NULL; } + mdata->mediaID = INVALID_UUID; //copy id WMitem - if (ivug_drm_is_drm_file(filepath) == EINA_TRUE) - { - mdata->bIsDRMContent = true; - } char *mime_type = NULL; mime_type = ivug_fileinfo_get_mime_type(filepath); if (mime_type == NULL) @@ -230,36 +290,44 @@ Media_Data *ivug_alloc_mediadata_from_filepath(const char *filepath) free(mime_type); //free strdup if (slide_type == SLIDE_TYPE_IMAGE) { - mdata->slide_type = SLIDE_TYPE_IMAGE; - mdata->fileurl = strdup(filepath); - if (mdata->fileurl == NULL) - { - MSG_SDATA_ERROR("strdup return NULL"); - goto ERROR; - } - mdata->filepath = strdup(filepath); - if (mdata->filepath == NULL) { - MSG_SDATA_ERROR("strdup return NULL"); - free(mdata->fileurl); - goto ERROR; + mdata->slide_type = SLIDE_TYPE_IMAGE; + mdata->fileurl = strdup(filepath); + if (mdata->fileurl == NULL) + { + MSG_SDATA_ERROR("strdup return NULL"); + goto ERROR; + } + mdata->filepath = strdup(filepath); + if (mdata->filepath == NULL) + { + MSG_SDATA_ERROR("strdup return NULL"); + free(mdata->fileurl); + goto ERROR; + } + + mdata->iType = MIMAGE_TYPE_NORMAL; + mdata->thumbnail_path = strdup(DEFAULT_THUMBNAIL_PATH); } } else if (slide_type == SLIDE_TYPE_VIDEO) { - mdata->slide_type = SLIDE_TYPE_VIDEO; - mdata->fileurl = strdup(filepath); - if (mdata->fileurl == NULL) { - MSG_SDATA_ERROR("strdup return NULL"); - goto ERROR; - } - mdata->filepath = strdup(filepath); - if (mdata->filepath == NULL) - { - MSG_SDATA_ERROR("strdup return NULL"); - free(mdata->fileurl); - goto ERROR; + mdata->slide_type = SLIDE_TYPE_VIDEO; + mdata->fileurl = strdup(filepath); + if (mdata->fileurl == NULL) + { + MSG_SDATA_ERROR("strdup return NULL"); + goto ERROR; + } + mdata->filepath = strdup(filepath); + if (mdata->filepath == NULL) + { + MSG_SDATA_ERROR("strdup return NULL"); + free(mdata->fileurl); + goto ERROR; + } + mdata->thumbnail_path = strdup(DEFAULT_THUMBNAIL_PATH); } } else @@ -269,6 +337,24 @@ Media_Data *ivug_alloc_mediadata_from_filepath(const char *filepath) mdata->fileurl = NULL; mdata->filepath = NULL; } + + if (ivug_is_web_uri(mdata->fileurl) == false) + { + if (ivug_is_supported_file_type(mdata->fileurl) == false) + { + MSG_SDATA_WARN("file path is not supported = %s", mdata->fileurl); + mdata->state = DATA_STATE_ERROR; + } + else + { + mdata->state = DATA_STATE_READY; + } + } + else + { + mdata->state = DATA_STATE_READY; + } + return mdata; ERROR: if (mdata) @@ -278,8 +364,6 @@ ERROR: return NULL; } - - Media_Data *ivug_alloc_mediadata_from_url(const char *url) { IV_ASSERT(url != NULL); @@ -301,6 +385,8 @@ Media_Data *ivug_alloc_mediadata_from_url(const char *url) return NULL; } + mdata->state = DATA_STATE_READY; + return mdata; } @@ -308,6 +394,9 @@ void ivug_free_mediadata(Media_Data * mdata) { IV_ASSERT(mdata != NULL); + mdata->thumbnail_callback = NULL; + mdata->file_callback = NULL; + #ifdef USE_NEW_DB_API if (mdata->thumb_handle) { @@ -315,7 +404,7 @@ void ivug_free_mediadata(Media_Data * mdata) mdata->thumb_handle = NULL; } - if(mdata->m_handle) + if (mdata->m_handle) { media_info_destroy(mdata->m_handle); mdata->m_handle = NULL; @@ -324,7 +413,6 @@ void ivug_free_mediadata(Media_Data * mdata) uuid_free(mdata->mediaID); - //file path if (mdata->filepath) { @@ -347,18 +435,6 @@ void ivug_free_mediadata(Media_Data * mdata) mdata->thumbnail_path = NULL; } - if (mdata->drm_filepath) - { - if ( ivug_remove_file(mdata->drm_filepath) == false) - { - MSG_SDATA_ERROR("Cannot delete drm file : %s", mdata->drm_filepath); - // Go though - } - - free(mdata->drm_filepath); - mdata->drm_filepath = NULL; - } - free(mdata); } @@ -368,13 +444,13 @@ bool ivug_mediadata_set_tag(Media_Data *data, const char *newtag) MSG_UTIL_HIGH("Add Tag : uuid(%s), tag_name=%s", uuid_getchar(data->mediaID), newtag); - tag_handle tag; + tag_handle tag = NULL; bool ret = ivug_db_create_tag(&tag, newtag); - if(ret == false) + if (ret == false) { MSG_SDATA_WARN("tag already created"); tag = ivug_db_get_tag_handle(newtag); - if(tag == NULL) + if (tag == NULL) { MSG_SDATA_ERROR("ivug_db_get_tag_handle ERROR"); return false; @@ -382,7 +458,7 @@ bool ivug_mediadata_set_tag(Media_Data *data, const char *newtag) } ret = ivug_db_set_tag(data->m_handle, tag); - if(ret == false) + if (ret == false) { MSG_SDATA_ERROR("ivug_db_set_tag ERROR"); } @@ -399,15 +475,27 @@ bool ivug_mediadata_set_favorite(Media_Data *data, bool bFavorite) return ivug_db_set_favorite(data->m_handle, bFavorite); } +bool ivug_mediadata_get_favorite(Media_Data *data, bool *bFavorite) +{ + bool ret = ivug_db_get_favorite(data->m_handle, bFavorite); + + MSG_UTIL_HIGH("Get Favorite : uuid(%s), bFavorite=%d", uuid_getchar(data->mediaID), *bFavorite); + + return ret; +} + bool ivug_mediadata_delete(Media_Data * mdata) { IV_ASSERT(mdata != NULL); - if (uuid_is_valid(mdata->mediaID) == true ) + if (uuid_is_valid(mdata->mediaID) == true) { - int ret = media_info_delete_from_db(mdata->mediaID); + int ret = MEDIA_CONTENT_ERROR_NONE; + + ret = media_info_delete_from_db(mdata->mediaID); + if (ret == MEDIA_CONTENT_ERROR_NONE) { if (mdata->filepath) @@ -449,16 +537,160 @@ bool ivug_mediadata_delete(Media_Data * mdata) } - if (mdata->drm_filepath) + return true; +} + +static void _thumbnail_cb(media_handle media, const char *path, void *data) +{ + MSG_SDATA_HIGH("_thumbnail_cb, path = %s", path); + + Media_Data *mdata = (Media_Data *)data; + + mdata->thumbnail_path = strdup(path); + + ivug_db_cancel_thumbnail(mdata->thumb_handle); + + mdata->thumb_handle = NULL; + + _ivug_mediadata_call_thumbnail_callback(mdata, DATA_STATE_LOADED); +} + +void ivug_mediadata_request_thumbnail(Media_Data *mdata, mdata_callback_t callback, void *data) +{ + + if (callback) { - if ( ivug_remove_file(mdata->drm_filepath) == false) - { - MSG_SDATA_ERROR("Cannot delete drm file : %s", mdata->drm_filepath); - // Go though - } + mdata->thumbnail_callback = callback; + mdata->thumb_cb_data = data; } - return true; + switch (mdata->slide_type) + { + case SLIDE_TYPE_IMAGE: + case SLIDE_TYPE_VIDEO: + if (mdata->thumb_handle == NULL) + { + mdata->thumb_handle = ivug_db_create_thumbnail(mdata->m_handle, _thumbnail_cb, (void *)mdata); + } + else + { + _ivug_mediadata_call_thumbnail_callback(mdata, DATA_STATE_LOADED); + } + break; + case SLIDE_TYPE_UNKNOWN: + MSG_SITEM_ERROR("Unknown image. %s", ivug_get_filename(mdata->filepath)); + _ivug_mediadata_call_thumbnail_callback(mdata, DATA_STATE_ERROR); + break; + + default: + MSG_SITEM_ERROR("slide type invaild. Type=%d", mdata->slide_type); + _ivug_mediadata_call_thumbnail_callback(mdata, DATA_STATE_ERROR); + break; + + } +} + +void ivug_mediadata_request_file(Media_Data *mdata, mdata_callback_t callback, void *data) +{ + if (mdata->state == DATA_STATE_LOADING) + { + MSG_SITEM_HIGH("data is loading"); + callback(mdata, DATA_STATE_LOADING, data); + return; + } + + if (callback) + { + mdata->file_callback = callback; + mdata->cb_data = data; + } + + Media_Item *cur_item = ivug_medialist_get_current_item(mdata->p_mList); + Media_Data *cur_mdata = ivug_medialist_get_data(cur_item); + + MSG_SITEM_SEC("cur %s, mdata %s", cur_mdata->fileurl, mdata->fileurl); + + if (mdata->state == DATA_STATE_LOADED) + { + MSG_SITEM_HIGH("data is already loaded"); + _ivug_mediadata_call_file_callback(mdata, DATA_STATE_LOADED); + return; + } + + mdata->state = DATA_STATE_LOADING; + + switch (mdata->slide_type) + { + case SLIDE_TYPE_IMAGE: + case SLIDE_TYPE_VIDEO: + _ivug_mediadata_call_file_callback(mdata, DATA_STATE_LOADED); + break; + case SLIDE_TYPE_UNKNOWN: + MSG_SITEM_ERROR("Unknown image. %s", ivug_get_filename(mdata->filepath)); + _ivug_mediadata_call_file_callback(mdata, DATA_STATE_ERROR); + break; + + default: + MSG_SITEM_ERROR("slide type invaild. Type=%d", mdata->slide_type); + _ivug_mediadata_call_file_callback(mdata, DATA_STATE_ERROR); + break; + } } +void ivug_mediadata_cancel_request_file(Media_Data *mdata) +{ + MSG_SITEM_SEC("ivug_mediadata_cancel_request_file, %s", mdata->fileurl); + + mdata->file_callback = NULL; + + switch (mdata->slide_type) + { + case SLIDE_TYPE_IMAGE: + case SLIDE_TYPE_VIDEO: + break; + case SLIDE_TYPE_UNKNOWN: + MSG_SITEM_ERROR("Unknown image. %s", ivug_get_filename(mdata->filepath)); + break; + + default: + MSG_SITEM_ERROR("slide type invaild. Type=%d", mdata->slide_type); + break; + + } + + if (mdata->state != DATA_STATE_LOADED) + { + mdata->state = DATA_STATE_READY; + } +} + +const char* ivug_mediadata_get_filepath(Media_Data *mdata) +{ + return mdata->filepath; +} + +const char* ivug_mediadata_get_fileurl(Media_Data *mdata) +{ + return mdata->fileurl; +} + +const char* ivug_mediadata_get_thumbnailpath(Media_Data *mdata) +{ + return mdata->thumbnail_path; +} + +Data_State ivug_mediadata_get_file_state(Media_Data *mdata) +{ + return mdata->state; +} + +void ivug_mediadata_set_file_state(Media_Data *mdata, Data_State state) +{ + mdata->state = state; +} + +Data_State ivug_mediadata_get_thumbnail_state(Media_Data *mdata) +{ + return mdata->thumbnail_state; +} diff --git a/medialist/src/ivug-mediadata.h b/medialist/src/ivug-mediadata.h index db5b39c..e2c76fd 100755 --- a/medialist/src/ivug-mediadata.h +++ b/medialist/src/ivug-mediadata.h @@ -1,26 +1,27 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_MEDIADATA_H__ #define __IVUG_MEDIADATA_H__ +#include "ivug-define.h" #include "ivug-media.h" - #ifdef __cplusplus extern "C" { #endif @@ -32,7 +33,6 @@ extern "C" { **/ Media_Data *ivug_alloc_mediadata_from_filepath(const char* filepath); - /** * Converting WMitem to Media_Data * @param item[in] @@ -43,7 +43,6 @@ Media_Data *ivug_alloc_mediadata_from_media_handle(media_handle media); Media_Data *ivug_alloc_mediadata_from_url(const char *url); - /** * Free memory used by Media_Data * @param mdata[in] diff --git a/medialist/src/ivug-mediainfo.cpp b/medialist/src/ivug-mediainfo.cpp new file mode 100755 index 0000000..3498d6d --- /dev/null +++ b/medialist/src/ivug-mediainfo.cpp @@ -0,0 +1,85 @@ +/* +* Copyright (c) 2000-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 "ivug-define.h" +#include "ivug-debug.h" + +#include "ivug-media.h" + +#include + +#undef LOG_LVL +#define LOG_LVL DBG_MSG_LVL_HIGH + +#undef LOG_CAT +#define LOG_CAT "IV-MINFO" + +static bool _is_bestpic(const char *file) +{ + const char szBest[] = "_bestshot"; // sizeof(szBest) = 10; + + const char *find = NULL; + + find = strrchr(file, '.'); + + if(find == NULL) + { + // All files should have extension + return false; + } + + unsigned int dist = find - file; + + if (dist < sizeof(szBest) -1) + { + return false; + } + + if (strncmp(find - sizeof(szBest) + 1 , szBest , sizeof(szBest) - 1) == 0 ) + { + return true; + } + + return false; + +} + + +static bool _is_soundscene(const char *file) +{ + return false; +} + +extern "C" MImageType MINfo_GetMediaType(const char *fname) +{ + if (_is_bestpic(fname) == true ) + { + MSG_HIGH("Bestphoto : %s", fname); + return MIMAGE_TYPE_BESTSHOT; + } + + if (_is_soundscene(fname) == true ) + { + MSG_HIGH("Soundscene : %s", fname); + return MIMAGE_TYPE_SOUNDSCENE; + } + + return MIMAGE_TYPE_NORMAL; +} + + + diff --git a/medialist/src/ivug-mediainfo.h b/medialist/src/ivug-mediainfo.h new file mode 100755 index 0000000..e115510 --- /dev/null +++ b/medialist/src/ivug-mediainfo.h @@ -0,0 +1,37 @@ +/* +* Copyright (c) 2000-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 __IVUG_MEDIAINFO_H__ +#define __IVUG_MEDIAINFO_H__ + +#ifdef __cplusplus +extern "C" { +#endif + + +/* + Not used!!!!!. Will be removed. +*/ +MImageType MINfo_GetMediaType(const char *fname); + + +#ifdef __cplusplus +} +#endif + +#endif // __IVUG_MEDIAINFO_H__ + diff --git a/medialist/src/ivug-medialist.c b/medialist/src/ivug-medialist.c deleted file mode 100755 index f3aacd8..0000000 --- a/medialist/src/ivug-medialist.c +++ /dev/null @@ -1,884 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ivug-define.h" - -#include "ivug-debug.h" -#include "ivug-medialist.h" - -#include "ivug-mediadata.h" - -#include "ivug-data-list.h" - - -#include "ivug-db.h" - -#include - -#undef DEBUG_DUMP_LIST - -#define LOAD_BLOCK_COUNT (100) - -#undef UNIT_TEST -#define UT_USE_DB -#define UT_TOTAL (50) -#define UT_INDEX (49) - -typedef struct { - Eina_List *header; // Start pointer for media list - int count; // Total count - - Ecore_Thread *thread; // Loading thread - Eina_Lock mutex; - Eina_Condition condition; - - Eina_Bool bTerminate; // - - bool bLoading; // Is thread loading on progress? - bool bStarted; // Is thread started? - Filter_struct *filter_str; - - Eina_List *shufflelist; // Shuffle liste - - Ecore_Job *callback_job; - ivug_medialist_cb cb; // loaded callback - void *data; -} _Media_List; - - -typedef struct { - _Media_List *_mList; - Filter_struct *filter_str; - - int center_block; - int max_block; -} ThreadParam; - -typedef enum { - BLOCK_LEFT, - BLOCK_RIGHT, -} BlockType; - -typedef struct { - _Media_List *_mList; - - BlockType direction; - Eina_List *list; -} ThreadMSG; - -static int _get_block_num(int index) -{ - return (index / LOAD_BLOCK_COUNT); -} - -static Eina_List *_load_partial(const Filter_struct *filter, int stp, int endp) -{ - Eina_List *header = NULL; - -#ifdef UT_USE_DB - { - if(filter->selected_list) - { - header = ivug_list_load_DB_items_list(filter, filter->selected_list); - } - else - { - header = ivug_list_load_DB_items(filter, stp, endp); - } - } - -#else - Eina_List *header = NULL; - - int i; - Media_Data *data; - - for (i = stp; i <= endp; i++) - { - data = malloc(sizeof(Media_Data)); - data->index = i; - - header = eina_list_append(header, data); - } -#endif - - MSG_SDATA_HIGH("Loaded : %d ~ %d", stp, endp); - - return header; -} - -static Eina_List *_load_block(const Filter_struct *filter, int block_num) -{ - int stp = block_num * LOAD_BLOCK_COUNT; - int endp = ((block_num + 1) * LOAD_BLOCK_COUNT) - 1; - - Eina_List *header = _load_partial(filter, stp, endp); - - MSG_SDATA_HIGH("Loaded block : %d", block_num); - - return header; -} - -static void _job_send_cb(void *data) -{ - IV_ASSERT(data != NULL); - - _Media_List *_mList = (_Media_List *)data; - if(_mList->cb) - { - _mList->cb(_mList, _mList->data); - } -} - -static void _call_loaded_callback(_Media_List *_mList) -{ - IV_ASSERT(_mList != NULL); - - if(_mList->callback_job) - ecore_job_del(_mList->callback_job); - - _mList->callback_job = ecore_job_add(_job_send_cb, _mList); -} - -static void _doLoad(Ecore_Thread *thread, _Media_List *_mList, const Filter_struct *filter, int center, int max_block) -{ - bool bRightEnd = false; - bool bLeftEnd = false; - int iter = 1; - - Eina_List *left; - Eina_List *right; - - while((bLeftEnd && bRightEnd) == false) - { - if ( center + iter <= max_block ) - { - right = _load_block(filter, center + iter); - -#if 0 - if ( ecore_thread_check(thread) == EINA_TRUE ) - { - MSG_SDATA_HIGH("Check True"); - ivug_list_delete_items(right); - break; - } -#else - if ( _mList->bTerminate == EINA_TRUE ) - { - MSG_SDATA_HIGH("Check True"); - ivug_list_delete_items(right); - return; - } -#endif - IV_ASSERT(right != NULL); - _mList->header = eina_list_merge (_mList->header, right); - } - else - { - bRightEnd = true; - } - - if ( center - iter >= 0) - { - left = _load_block(filter , center - iter); - -#if 0 - if ( ecore_thread_check(thread) == EINA_TRUE ) - { - MSG_SDATA_HIGH("Check True"); - ivug_list_delete_items(left); - break; - } -#else - if ( _mList->bTerminate == EINA_TRUE ) - { - MSG_SDATA_HIGH("Check True"); - ivug_list_delete_items(left); - return; - } -#endif - IV_ASSERT(left != NULL); - - _mList->header = eina_list_merge (left, _mList->header); - - } - else - { - bLeftEnd = true; - } - - iter++; - usleep(100); - } - - MSG_SDATA_HIGH("EinaCount=%d Count=%d", eina_list_count(_mList->header), _mList->count); -} - - -static void loader_heavy(void *data, Ecore_Thread *thread) -{ - MSG_SDATA_HIGH("Thread started. tID=0x%08x", thread); - ThreadParam *pParam = data; - -#if 0 - if ( ecore_thread_check(thread) == EINA_TRUE ) - { - MSG_SDATA_HIGH("Check True"); - return; - } -#else - - if ( pParam->_mList->bTerminate == EINA_TRUE ) - { - MSG_SDATA_HIGH("Check True"); - return; - } -#endif - - Eina_Bool ret = EINA_FALSE; - - ret = eina_lock_new(&pParam->_mList->mutex); - if(ret == EINA_FALSE) - { - MSG_SDATA_FATAL("eina_lock_new failed"); - } - else - { - ret = eina_condition_new(&pParam->_mList->condition, &pParam->_mList->mutex); - if(ret == EINA_FALSE) - { - MSG_SDATA_FATAL("eina_condition_new failed"); - } - } - - pParam->_mList->bStarted = true; - - MSG_SDATA_HIGH("Load : Begin"); - - _doLoad(thread, pParam->_mList, pParam->filter_str, pParam->center_block, pParam->max_block); - - MSG_SDATA_HIGH("Load : End"); - - pParam->_mList->thread = NULL; - - eina_lock_take(&pParam->_mList->mutex); - eina_condition_signal(&pParam->_mList->condition); - eina_lock_release(&pParam->_mList->mutex); -} - - -static void loader_end(void *data, Ecore_Thread *thread) -{ - ThreadParam *pParam = data; - - // MSG_SDATA_HIGH("Thread Ended. EinaCount=%d Count=%d", eina_list_count(pParam->_mList), pParam->_mList->count); - MSG_SDATA_HIGH("Thread Ended. tID=0x%08x", thread); - - PERF_CHECK_END(LVL3, "Deffered loading"); - - ivug_data_filter_delete(pParam->filter_str); - - _call_loaded_callback(pParam->_mList); -} - -static void loader_cancel(void *data, Ecore_Thread *thread) -{ - ThreadParam *pParam = data; - - MSG_SDATA_HIGH("Thread canceled. tID=0x%08x", thread); - - PERF_CHECK_END(LVL3, "Deffered loading"); - - ivug_data_filter_delete(pParam->filter_str); -} - -static int _sort_cb(const void *d1, const void *d2) -{ - return (rand() % 4 - 2) ; -} - -static Media_Item *_find_item(Media_List *mList, int index) -{ - IV_ASSERT(mList != NULL); - _Media_List *_mList = (_Media_List *)mList; - - Eina_List *l; - Media_Data *data; - - EINA_LIST_FOREACH(_mList->header, l, data) - { - if ( data->index == index) - { - return (Media_Item *)l; - } - } - - return NULL; -} - - -#ifdef DEBUG_DUMP_LIST -static void _print_shuffle(void *data) -{ - MSG_SDATA_HIGH("Item : %d", (int)data); -} - -static void _dump_list(Eina_List *list, void (*func)(void *)) -{ - Eina_List *l; - void *data; - - EINA_LIST_FOREACH(list, l, data) - { - func(data); - } - -} -#endif - -static void _create_shuffle_list(_Media_List *_mList) -{ - int i; - _mList->shufflelist = NULL; - for ( i = 0; i < _mList->count; i++) - { - _mList->shufflelist = eina_list_append(_mList->shufflelist, (void *)i); - } - - _mList->shufflelist = eina_list_sort(_mList->shufflelist, eina_list_count(_mList->shufflelist), _sort_cb); -} - -Media_List *ivug_medialist_create() -{ - _Media_List *_mList = calloc(1, sizeof(_Media_List)); - IV_ASSERT(_mList != NULL); - - srand((unsigned)time(NULL)); - - MSG_SDATA_HIGH("Create media list : 0x%08x", _mList); - - return (Media_List *)_mList; -} - -bool ivug_medialist_set_callback(Media_List *mList, ivug_medialist_cb callback, void *data) -{ - IV_ASSERT(mList != NULL); - - _Media_List *_mList = (_Media_List *)mList; - _mList->cb = callback; - _mList->data = data; - - return true; -} - -Media_Item * ivug_medialist_find_item_by_filename(Media_List *mList, const char* filepath) -{ - IV_ASSERT(mList != NULL); - IV_ASSERT(filepath != NULL); - _Media_List *_mList = (_Media_List *)mList; - - Eina_List *l; - Media_Data *data; - - EINA_LIST_FOREACH(_mList->header, l, data) - { - if(strncmp(data->fileurl, filepath, strlen(data->fileurl)) == 0) - { - return (Media_Item *)l; - } - } - MSG_SDATA_ERROR("Cannot find file path %s at list", filepath); - return NULL; -} - - -Media_Item *ivug_medialist_load(Media_List *mList, const Filter_struct *filter) -{ - IV_ASSERT(mList != NULL); - _Media_List *_mList = (_Media_List *)mList; - - MSG_SDATA_HIGH("Create slide data list. index=%d", filter->index); - - if ( _mList->header != NULL ) - { - MSG_SDATA_FATAL("Header is not NULL"); - return NULL; - } -// _mList->filter = ivug_data_filter_copy(filter); - - int db_idx = 0; - -#ifdef UNIT_TEST - _mList->count = UT_TOTAL; - db_idx = UT_INDEX; - -#else - PERF_CHECK_BEGIN(LVL3, "MediaList - Get list count"); - if(filter->view_by == IVUG_VIEW_BY_DIRECTORY) - { - _mList->count = ivug_list_get_dir_cnt(filter->dir_filter->basedir); - - if ( _mList->count == 0 ) - { - MSG_SDATA_ERROR("No file founded"); - return NULL; - } - - _mList->header = ivug_list_load_dir_items(filter->dir_filter->basedir); - -// Find Current. - Eina_List *l = NULL; - void *data; - - EINA_LIST_FOREACH(_mList->header, l, data) - { - Media_Data *pData = data; - - if (strcmp(pData->fileurl, filter->dir_filter->current) == 0) - { - return (Media_Item *)l; - } - } - - MSG_SDATA_ERROR("Not found current"); - return NULL; - } - else if(filter->view_by == IVUG_VIEW_BY_FOLDER && filter->index == IVUG_INVALID_INDEX) - { - _mList->count = ivug_list_get_item_cnt(filter); - if ( _mList->count == 0 ) - { - MSG_SDATA_ERROR("No file founded"); - return NULL; - } - PERF_CHECK_BEGIN(LVL3, "MediaList - load all block"); - _mList->header = _load_partial(filter, 0, _mList->count-1); // Load all - PERF_CHECK_END(LVL3, "MediaList - load all block"); - if(_mList->header == NULL) - { - MSG_SDATA_ERROR("MediaList is NULL"); - return NULL; - } - MSG_SDATA_HIGH("%d items loaded", eina_list_count(_mList->header)); - _create_shuffle_list(_mList); - Media_Item *cur = ivug_medialist_find_item_by_filename(mList, filter->filepath); - _call_loaded_callback(_mList); - return cur; - } - else - { - _mList->count = ivug_list_get_item_cnt(filter); - } - - PERF_CHECK_END(LVL3, "MediaList - Get list count"); - - MSG_SDATA_HIGH("Total item count=%d", _mList->count); - db_idx = filter->index - 1; -#endif - - if ( _mList->count < db_idx) - { - MSG_SDATA_ERROR("Invalid param"); - return NULL; - } - - int block_num = _get_block_num(db_idx); - int block_max = _get_block_num(_mList->count - 1); - - MSG_SDATA_HIGH("Total=%d Current=%d Block Count=%d", _mList->count, db_idx, block_max); - - PERF_CHECK_BEGIN(LVL3, "MediaList - load first block"); - - // Load Center - _mList->header = _load_block(filter, block_num); // Load current block - - PERF_CHECK_END(LVL3, "MediaList - load first block"); - - if(_mList->header == NULL) - { - //MSG_SDATA_FATAL("MediaList is NULL"); - MSG_SDATA_ERROR("MediaList is NULL"); - return NULL; - } - -// find current data; - MSG_SDATA_HIGH("Header=0x%08x Current nTh=%d", _mList->header, db_idx - (block_num * LOAD_BLOCK_COUNT)); - - PERF_CHECK_BEGIN(LVL3, "MediaList - Find current"); - - Eina_List *current = eina_list_nth_list(_mList->header, db_idx - (block_num * LOAD_BLOCK_COUNT)); - - PERF_CHECK_END(LVL3, "MediaList - Find current"); - - if(current == NULL) - { - MSG_SDATA_HIGH("current is NULL"); - return NULL; - } - - PERF_CHECK_BEGIN(LVL3, "MediaList - shuffle"); - - _create_shuffle_list(_mList); - - PERF_CHECK_END(LVL3, "MediaList - shuffle"); - - // _dump_list(_mList->shufflelist, _print_shuffle); - // MSG_SDATA_HIGH("ParamPath=%s CurrentPath=%s", param->filepath, _mList->current->filepath); - - if ( block_max == 0 && eina_list_count(_mList->header) < LOAD_BLOCK_COUNT ) - { - MSG_SDATA_HIGH("Deffered loading is not needed. BolckMax=%d FirstBlockCount=%d", block_max, eina_list_count(_mList->header)); - _call_loaded_callback(_mList); - return (Media_Item *)current; - } - - ThreadParam *pParam = NULL; - - pParam = malloc(sizeof(ThreadParam)); - - pParam->filter_str = ivug_data_filter_copy(filter); - pParam->_mList = _mList; - pParam->center_block = block_num; - pParam->max_block = block_max; - - _mList->bLoading = true; - - MSG_SDATA_HIGH("Starting thread"); - - PERF_CHECK_BEGIN(LVL3, "Deffered loading"); - - _mList->thread = ecore_thread_run(loader_heavy, loader_end, loader_cancel, pParam); - MSG_SDATA_HIGH("Thread ID= 0x%08x", _mList->thread); - MSG_SDATA_HIGH("Create slide data list END"); - - return (Media_Item *)current; -} - - -void -ivug_medialist_del(Media_List *mList) -{ - IV_ASSERT(mList != NULL); - _Media_List *_mList = (_Media_List *)mList; - Eina_Bool ret = EINA_FALSE; - - MSG_SDATA_HIGH("Removing all media data"); - - if(_mList->callback_job) - { - ecore_job_del(_mList->callback_job); - } - - if ( _mList->thread ) - { - MSG_SDATA_HIGH("1. Thread cancel"); -#if 0 - if ( ecore_thread_cancel(_mList->thread) == EINA_TRUE ) - { - MSG_SDATA_HIGH("Thread canceled"); - } -#endif - _mList->bTerminate = EINA_TRUE; - - if(_mList->bStarted) - { - ret = eina_condition_wait(&_mList->condition); - if(ret == EINA_FALSE) - { - MSG_SDATA_ERROR("eina_condition_wait error"); - } - ret = eina_lock_release(&_mList->mutex); - if(ret == EINA_FALSE) - { - MSG_SDATA_ERROR("eina_lock_release error"); - } - eina_condition_free(&_mList->condition); - eina_lock_free(&_mList->mutex); - } - - _mList->thread = NULL; - MSG_SDATA_HIGH("2. Thread cancel"); - } - - ivug_list_delete_items(_mList->header); - _mList->header = NULL; - - eina_list_free(_mList->shufflelist); - _mList->shufflelist = NULL; - - _mList->bStarted = false; - - free(_mList); - -} - - -int ivug_medialist_get_count(Media_List *mList) -{ - IV_ASSERT(mList != NULL); - _Media_List *_mList = (_Media_List *)mList; - - return _mList->count; -} - -int ivug_medialist_get_index(Media_List *mList, Media_Item *item) -{ - IV_ASSERT(mList != NULL); - - Media_Data *pData; - - MSG_SDATA_HIGH("Loading is not finished"); - pData = (Media_Data *)eina_list_data_get((Eina_List *)item); - - return pData->index + 1; - - -#if 0 - PERF_CHECK_BEGIN("Get Index"); - - for (tmp = _mList->header, i= 0; tmp != NULL ; tmp = eina_list_next(tmp), i++) - { - if ( item == tmp ) - { - PERF_CHECK_END("Get Index"); - return i+1; // This index starts from 1 - } - } - - PERF_CHECK_END("Get Index"); - - - return 0; // Cannot find. -#endif - -} - -Media_Item *ivug_medialist_get_first(Media_List *mList) -{ - IV_ASSERT(mList != NULL); - _Media_List *_mList = (_Media_List *)mList; - - return (Media_Item *)_mList->header; -} - - -Media_Item *ivug_medialist_get_last(Media_List *mList) -{ - IV_ASSERT(mList != NULL); - _Media_List *_mList = (_Media_List *)mList; - - return (Media_Item *)eina_list_last(_mList->header); -} - -Media_Item *ivug_medialist_get_next(Media_List *mList, Media_Item *item) -{ - IV_ASSERT(mList != NULL); - - IV_ASSERT(item != NULL); - Eina_List *next = eina_list_next((Eina_List *)item); - - return (Media_Item *)next; -} - - -Media_Item *ivug_medialist_get_prev(Media_List *mList, Media_Item *item) -{ - IV_ASSERT(mList != NULL); - - IV_ASSERT(item != NULL); - Eina_List *prev = eina_list_prev((Eina_List *)item); - - return (Media_Item *)prev; - -} - -Media_Data *ivug_medialist_get_data(const Media_Item *item) -{ - IV_ASSERT(item != NULL); - - return (Media_Data *)eina_list_data_get((Eina_List *)item); -} - - -void ivug_medialist_delete_item(Media_List *mList, Media_Item *item) -{ - PERF_CHECK_BEGIN(LVL1, "MediaList - delete"); - - IV_ASSERT(mList != NULL); - _Media_List *_mList = (_Media_List *)mList; - - Media_Data *pData = (Media_Data *)eina_list_data_get((Eina_List *)item); - - Eina_List *list = eina_list_next((Eina_List *)item); - Eina_List *l; - Media_Data *data; - - EINA_LIST_FOREACH(list, l, data) - { - data->index = data->index - 1; - } - - _mList->header = eina_list_remove_list(_mList->header, (Eina_List *)item); - - // Change index - if ( ivug_mediadata_delete(pData) == false ) - { - MSG_SDATA_HIGH("Cannot delete mediadata"); - } - ivug_free_mediadata(pData); - - // Shuffle list? - _mList->count--; - - Eina_List *found = eina_list_data_find_list(_mList->shufflelist, (void *)_mList->count); - - _mList->shufflelist = eina_list_remove(_mList->shufflelist, found); - - MSG_SDATA_HIGH("Item removed. Total=%d", _mList->count); - - PERF_CHECK_END(LVL1, "MediaList - delete"); -} - - -Media_Item *ivug_medialist_get_random_item(Media_List *mList) -{ - IV_ASSERT(mList != NULL); - _Media_List *_mList = (_Media_List *)mList; - - int count = eina_list_count(_mList->header); - - return (Media_Item *)eina_list_nth_list(_mList->header, random() % count); -} - -Media_Item *ivug_medialist_get_shuffle_item(Media_List *mList, Media_Item *item) -{ - IV_ASSERT(mList != NULL); - _Media_List *_mList = (_Media_List *)mList; - - Media_Data *pData = (Media_Data *)eina_list_data_get((Eina_List *)item); - - Eina_List *found = eina_list_data_find_list(_mList->shufflelist, (void *)pData->index); - - if ( found != NULL ) - { - Media_Item *next; - Eina_List *iter; - - iter = eina_list_next(found); - - if ( iter == NULL ) - { - int nFirstIdx = (int)eina_list_data_get(_mList->shufflelist); - - next = _find_item(mList, nFirstIdx); - - MSG_SDATA_HIGH("End reached. rewind to first. Index=%d", nFirstIdx); - - return next; - } - - do { - next = _find_item(mList, (int)eina_list_data_get(iter)); - - if ( next == NULL ) - { - MSG_SDATA_HIGH("Index : %d is not loaded", (int)eina_list_data_get(iter)); - _mList->shufflelist = eina_list_demote_list(_mList->shufflelist, iter); - } - - iter = eina_list_next(found); - - } while(next == NULL); - - Media_Data *nData = (Media_Data *)eina_list_data_get((Eina_List *)next); - - MSG_SDATA_HIGH("Shuffle : %d->%d", pData->index, nData->index ); - -// _dump_list(_mList->shufflelist, _print_shuffle); - return next; - } - - MSG_SDATA_ERROR("Cannot find data. Index=%d", pData->index); - return NULL; -} - -Media_Item * -ivug_medialist_find_item_by_index(Media_List *mList, int index) -{ - IV_ASSERT(mList != NULL); - - _Media_List *_mList = (_Media_List *)mList; - - Media_Data *current = NULL; - Eina_List *l = NULL; - - EINA_LIST_FOREACH(_mList->header, l, current) - { - if(current == NULL) - { - MSG_IVUG_ERROR("album list is NULL"); - break; - } - if(current->index == index) - { - return (Media_Item *)l; - } - } - return NULL; -} - -Media_Item * ivug_medialist_append_item(Media_List *mList, const char *filepath) -{ - IV_ASSERT(mList != NULL); - - _Media_List *_mList = (_Media_List *)mList; - - _mList->header = ivug_list_append_item(_mList->header, filepath); - - _mList->count++; - - int index = 0; - Eina_List *l; - Media_Data *data; - EINA_LIST_FOREACH(_mList->header, l, data) - { - data->index = index++; - } - - return (Media_Item *)eina_list_last(_mList->header); -} - -Media_Item * ivug_medialist_prepend_item(Media_List *mList, const char *filepath) -{ - IV_ASSERT(mList != NULL); - - _Media_List *_mList = (_Media_List *)mList; - - _mList->header = ivug_list_prepend_item(_mList->header, filepath); - - _mList->count++; - - int index = 0; - Eina_List *l; - Media_Data *data; - EINA_LIST_FOREACH(_mList->header, l, data) - { - data->index = index++; - } - - return (Media_Item *)_mList->header; -} - diff --git a/medialist/src/ivug-medialist.cpp b/medialist/src/ivug-medialist.cpp new file mode 100755 index 0000000..acb1fa5 --- /dev/null +++ b/medialist/src/ivug-medialist.cpp @@ -0,0 +1,1460 @@ +/* +* Copyright (c) 2000-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 "ivug-define.h" + +#include "ivug-debug.h" +#include "ivug-medialist.h" + +#include "ivug-mediadata.h" + +#include "ivug-data-list.h" + + +#include "ivug-db.h" + +#include +#include +#include + + +#undef DEBUG_DUMP_LIST + +#define LOAD_BLOCK_COUNT (100) + +#undef UNIT_TEST +#define UT_USE_DB /* For DB unit test */ +#define UT_TOTAL (50) +#define UT_INDEX (49) + +#define USE_ECORE_CHECK + +typedef struct { + Eina_List *header; // Start pointer for media list + int count; // Total count + + Ecore_Thread *thread; // Loading thread + Eina_Lock mutex; + Eina_Condition condition; + + Eina_Bool bTerminate; // + + bool bLoading; // Is thread loading on progress? + bool bStarted; // Is thread started? + bool bNeedUpdate; + bool bHidden; // Is hidden file list + Filter_struct *filter_str; + + Eina_List *shufflelist; // Shuffle liste + + Media_Item *cur_mitem; + Media_Item *prev_mitem; + + Ecore_Job *callback_job; + ivug_medialist_cb cb; // loaded callback + void *data; + + Ivug_DB_h *db_handle; + + void *drm_data; + + int lBound; // Lower bound of loaded Index + int uBound; // Upper bound of loaded Index + + int MaxIndex; // Max Index. [0, MaxIndex] +} _Media_List; + + +typedef struct { + _Media_List *_mList; + Filter_struct *filter_str; + + bool bCanceled; + + int lowerBnd; // Lower bound of loaded Index + int upperBnd; // Upper bound of loaded Index + int TotalCount; +} ThreadParam; + +static int _db_updated_callback(media_handle media, const char *path, Ivug_DB_Update_Type type, void *user_data) +{ + _Media_List *_mList = (_Media_List *)user_data; + + if(type == IV_DB_UPDATE_UPDATE) + { + UUID uuid = ivug_db_get_file_id(media); + + Media_Item *mitem = ivug_medialist_find_item_by_uuid((Media_List*)_mList, uuid); + + uuid_free(uuid); + + if(mitem == NULL) + { + MSG_SDATA_HIGH("cannot find in media list, updated path = %s", path); + return -1; + } + + Media_Data *mdata = ivug_medialist_get_data(mitem); + if(mdata == NULL) + { + MSG_SDATA_ERROR("mdata is NULL"); + return -1; + } + + free(mdata->filepath); + mdata->filepath = ivug_db_get_file_path(media); + + free(mdata->thumbnail_path); + mdata->thumbnail_path = ivug_db_get_thumbnail_path(media); + + ivug_db_destroy_file_handle(media); + } + else if(type == IV_DB_UPDATE_INSERT) + { + //TODO later + _mList->bNeedUpdate = true; + } + else if(type == IV_DB_UPDATE_DELETE) + { + //TODO later + _mList->bNeedUpdate = true; + } + + return 0; +} + +static Eina_List *_load_partial(const Filter_struct *filter, int stp, int endp) +{ + Eina_List *header = NULL; + +#ifdef UT_USE_DB + { + if(filter->selected_list) + { + //header = ivug_list_load_DB_items_list(filter, filter->selected_list); + header = ivug_list_load_DB_items(filter, stp, endp); + } + else + { + header = ivug_list_load_DB_items(filter, stp, endp); + } + } +#else + Eina_List *header = NULL; + + int i; + Media_Data *data; + + for (i = stp; i <= endp; i++) + { + data = malloc(sizeof(Media_Data)); + data->index = i; + + header = eina_list_append(header, data); + } +#endif + + MSG_SDATA_HIGH("Loaded : %d ~ %d", stp, endp); + + return header; +} + +static void _job_send_cb(void *data) +{ + IV_ASSERT(data != NULL); + + _Media_List *_mList = (_Media_List *)data; + + _mList->callback_job = NULL; + + if(_mList->cb) + { + _mList->cb(_mList, _mList->data); + } +} + +void ivug_media_list_free(Media_List *mList) +{ + _Media_List *_mList = (_Media_List *)mList; + IV_ASSERT(_mList != NULL); + + Eina_List *l; + void *data; + + EINA_LIST_FOREACH(_mList->header, l, data) + { + free(data); + data = NULL; + } +} + +static bool _ivug_medialist_set_medialist_to_media_item(Media_List *mList) +{ +/* + Need to optimize. +*/ + _Media_List *_mList = (_Media_List *)mList; + IV_ASSERT(_mList != NULL); + + Eina_List *l; + void *data; + + EINA_LIST_FOREACH(_mList->header, l, data) + { + Media_Data *mdata = (Media_Data *)data; + mdata->p_mList = mList; + } + + return true; +} + +static void _call_loaded_callback(_Media_List *_mList) +{ + IV_ASSERT(_mList != NULL); + + if(_mList->callback_job) + { + ecore_job_del(_mList->callback_job); + } + + _mList->callback_job = ecore_job_add(_job_send_cb, _mList); +} + +static void _doLoad(Ecore_Thread *thread, _Media_List *_mList, const Filter_struct *filter, int Total, int lBound, int uBound) +{ + bool bRightEnd = false; + bool bLeftEnd = false; + int iter = 1; + + Eina_List *left; + Eina_List *right; + + int stp, endp; + + MSG_SDATA_HIGH("Total=%d lBound=%d uBound=%d", Total, lBound, uBound); + + if (lBound == 0 ) + { + bLeftEnd = true; + } + + if (uBound == Total - 1 ) + { + bRightEnd = true; + } + + while((bLeftEnd && bRightEnd) == false) + { +// Do Right Loading + if (bRightEnd == false ) + { + stp = uBound + 1; + endp = std::min( uBound + LOAD_BLOCK_COUNT / 2, Total - 1) ; + + right = _load_partial(filter, stp, endp); + uBound = endp; + + if (endp == Total -1 ) + { + bRightEnd = true; + } + +#ifdef USE_ECORE_CHECK + if (ecore_thread_check(thread) == EINA_TRUE ) // if pending cancelation + { + MSG_SDATA_HIGH("Check True"); + ivug_list_delete_items(right); + break; + } +#else + if (_mList->bTerminate == EINA_TRUE ) + { + MSG_SDATA_HIGH("Check True"); + ivug_list_delete_items(right); + return; + } +#endif + IV_ASSERT(right != NULL); + _mList->header = eina_list_merge (_mList->header, right); + _ivug_medialist_set_medialist_to_media_item((Media_List *)_mList); + } + +// Do Left Loading + if (bLeftEnd == false) // Check whether need load + { + stp = std::max( lBound - LOAD_BLOCK_COUNT / 2, 0); + endp = lBound - 1; + + left = _load_partial(filter, stp, endp); + lBound = stp; + + if (stp == 0 ) + { + bLeftEnd = true; + } + +#ifdef USE_ECORE_CHECK + if (ecore_thread_check(thread) == EINA_TRUE ) // if pending cancelation + { + MSG_SDATA_HIGH("Check True"); + ivug_list_delete_items(left); + break; + } +#else + if (_mList->bTerminate == EINA_TRUE ) + { + MSG_SDATA_HIGH("Check True"); + ivug_list_delete_items(left); + return; + } +#endif + IV_ASSERT(left != NULL); + + _mList->header = eina_list_merge (left, _mList->header); + _ivug_medialist_set_medialist_to_media_item((Media_List *)_mList); + + } + + + iter++; + usleep(100); + } + + MSG_SDATA_HIGH("EinaCount=%d Count=%d", eina_list_count(_mList->header), _mList->count); +} + +static void loader_free(void *data) +{ + ThreadParam *pParam = (ThreadParam *)data; + + ivug_data_filter_delete(pParam->filter_str); + + free(pParam); + + MSG_SDATA_HIGH("Thread param freed."); +} + +static void loader_heavy(void *data, Ecore_Thread *thread) +{ + MSG_SDATA_HIGH("******** Thread started. Ecore tID=0x%08x pthread tID=0x%08x ******** ", thread, pthread_self()); + ThreadParam *pParam = (ThreadParam *)data; + + IV_ASSERT(pParam != NULL); + +#ifdef USE_ECORE_CHECK + if (ecore_thread_check(thread) == EINA_TRUE ) // // if pending cancelation + { + MSG_SDATA_HIGH("Pending thread cancelation"); + return; + } +#else + if (pParam->_mList->bTerminate == EINA_TRUE ) + { + MSG_SDATA_HIGH("Check True"); + return; + } +#endif + + Eina_Bool ret = EINA_FALSE; + + ret = eina_lock_new(&pParam->_mList->mutex); + if(ret == EINA_FALSE) + { + MSG_SDATA_FATAL("eina_lock_new failed"); + } + else + { + ret = eina_condition_new(&pParam->_mList->condition, &pParam->_mList->mutex); + if(ret == EINA_FALSE) + { + MSG_SDATA_FATAL("eina_condition_new failed"); + } + } + + pParam->_mList->bStarted = true; + + MSG_SDATA_HIGH("Load : Begin"); + + _doLoad(thread, pParam->_mList, pParam->filter_str, pParam->TotalCount ,pParam->lowerBnd, pParam->upperBnd); + + MSG_SDATA_HIGH("Load : End"); + + pParam->_mList->thread = NULL; + +#ifdef USE_ECORE_CHECK + if (ecore_thread_check(thread) == EINA_FALSE ) +#else + if(pParam->_mList->bTerminate == EINA_FALSE) +#endif + { + MSG_SDATA_HIGH("Inform loaded callback to user. Total=%d", pParam->_mList->count); + _call_loaded_callback(pParam->_mList); + } + else + { + MSG_SDATA_HIGH("list is terminating, did not call loaded callback"); + } + + eina_lock_take(&pParam->_mList->mutex); + eina_condition_signal(&pParam->_mList->condition); + eina_lock_release(&pParam->_mList->mutex); + + loader_free(pParam); +} + + +static void loader_end(void *data, Ecore_Thread *thread) +{ +// ThreadParam *pParam = data; + + // MSG_SDATA_HIGH("Thread Ended. EinaCount=%d Count=%d", eina_list_count(pParam->_mList), pParam->_mList->count); + MSG_SDATA_HIGH("Thread Ended. Ecore tID=0x%08x", thread); + + //PERF_CHECK_END(LVL3, "Deffered loading"); +} + +static void loader_cancel(void *data, Ecore_Thread *thread) +{ +// ThreadParam *pParam = data; + + MSG_SDATA_HIGH("Thread canceled. Ecore tID=0x%08x", thread); + + //PERF_CHECK_END(LVL3, "Deffered loading"); +} + +static int _sort_cb(const void *d1, const void *d2) +{ + return (rand() % 4 - 2) ; +} + +static Media_Item *_find_item(Media_List *mList, int index) +{ + IV_ASSERT(mList != NULL); + _Media_List *_mList = (_Media_List *)mList; + + Eina_List *l; + void *data; + + EINA_LIST_FOREACH(_mList->header, l, data) + { + Media_Data *mdata = (Media_Data *)data; + + if (mdata->index == index) + { + return (Media_Item *)l; + } + } + + return NULL; +} + + +#ifdef DEBUG_DUMP_LIST +static void _print_shuffle(void *data) +{ + MSG_SDATA_HIGH("Item : %d", (int)data); +} + +static void _dump_list(Eina_List *list, void (*func)(void *)) +{ + Eina_List *l; + void *data; + + EINA_LIST_FOREACH(list, l, data) + { + func(data); + } + +} +#endif + +static void _ivug_medialist_set_filter(Media_List *mList, Filter_struct *filter) +{ + IV_ASSERT(mList != NULL); + + _Media_List *_mList = (_Media_List *)mList; + + _mList->filter_str = filter; +} + +static void _create_shuffle_list(_Media_List *_mList) +{ + int i; + _mList->shufflelist = NULL; + for ( i = 0; i < _mList->count; i++) + { + _mList->shufflelist = eina_list_append(_mList->shufflelist, (void *)i); + } + + _mList->shufflelist = eina_list_sort(_mList->shufflelist, eina_list_count(_mList->shufflelist), _sort_cb); +} + +Media_List *ivug_medialist_create() +{ + _Media_List *_mList = (_Media_List *)calloc(1, sizeof(_Media_List)); + IV_ASSERT(_mList != NULL); + + srand((unsigned)time(NULL)); + + MSG_SDATA_HIGH("Create media list : 0x%08x", _mList); + + return (Media_List *)_mList; +} + +bool ivug_medialist_set_callback(Media_List *mList, ivug_medialist_cb callback, void *data) +{ + IV_ASSERT(mList != NULL); + + _Media_List *_mList = (_Media_List *)mList; + _mList->cb = callback; + _mList->data = data; + + return true; +} + +Media_Item * ivug_medialist_find_item_by_filename(Media_List *mList, const char* filepath) +{ + IV_ASSERT(mList != NULL); + IV_ASSERT(filepath != NULL); + _Media_List *_mList = (_Media_List *)mList; + + Eina_List *l; + void *data; + + EINA_LIST_FOREACH(_mList->header, l, data) + { + Media_Data *mdata = (Media_Data *)data; + if(strncmp(mdata->fileurl, filepath, strlen(mdata->fileurl)) == 0) + { + return (Media_Item *)l; + } + } + MSG_SDATA_ERROR("Cannot find file path %s at list(0x%08x)", filepath, _mList->header); + return NULL; +} + +Media_Item * ivug_medialist_find_item_by_uuid(Media_List *mList, UUID uuid) +{ + IV_ASSERT(mList != NULL); + IV_ASSERT(uuid != NULL); + _Media_List *_mList = (_Media_List *)mList; + + Eina_List *l; + void *data; + + EINA_LIST_FOREACH(_mList->header, l, data) + { + Media_Data *mdata = (Media_Data *)data; + + if(strncmp(mdata->mediaID, uuid, strlen(mdata->mediaID)) == 0) + { + return (Media_Item *)l; + } + } + MSG_SDATA_ERROR("Cannot find file uuid %s at list", uuid); + return NULL; +} + +static Media_Item *_ivug_medialist_load_from_directory(Media_List *mList, const Filter_struct *filter) +{ + IV_ASSERT(mList != NULL); + _Media_List *_mList = (_Media_List *)mList; + + MSG_SDATA_HIGH("Create slide data list. index=%d", filter->index); + + if (_mList->header != NULL) + { + MSG_SDATA_FATAL("Header is not NULL"); + return NULL; + } +// _mList->filter = ivug_data_filter_copy(filter); + + PERF_CHECK_BEGIN(LVL3, "MediaList - Get list count"); + + //_mList->count = ivug_list_get_dir_cnt(filter->dir_filter->basedir); + _mList->header = ivug_list_load_dir_items(filter->dir_filter->basedir); + + _mList->count = eina_list_count(_mList->header); + if (_mList->count == 0 ) + { + MSG_SDATA_ERROR("No file founded"); + PERF_CHECK_END(LVL3, "MediaList - Get list count"); + return NULL; + } + + MSG_SDATA_HIGH("list count = %d", _mList->count); + + _ivug_medialist_set_medialist_to_media_item(mList); + +// Find Current. + Eina_List *l = NULL; + void *data; + Media_Item *cur = NULL; + int i = 0; + + EINA_LIST_FOREACH(_mList->header, l, data) + { + Media_Data *pData = (Media_Data *)data; + + pData->index = i; + i++; + + if (strcmp(pData->fileurl, filter->dir_filter->current) == 0) + { + cur = (Media_Item *)l; + } + } + PERF_CHECK_END(LVL3, "MediaList - Get list count"); + + if(cur == NULL) + { + MSG_SDATA_ERROR("Not found current"); + return NULL; + } + + return cur; +} + +static void _ivug_media_load_list_thread(Media_List *mList, const Filter_struct *filter) +{ + IV_ASSERT(mList != NULL); + _Media_List *_mList = (_Media_List *)mList; + + int max_thread = ecore_thread_max_get(); + int avail_thread = ecore_thread_available_get(); + int active_thread = ecore_thread_active_get(); + + MSG_SDATA_HIGH("Thread status. CPU=%d Max=%d Active=%d Available=%d", eina_cpu_count(), max_thread, active_thread, avail_thread); + ecore_thread_max_set(16*2); + + max_thread = ecore_thread_max_get(); + avail_thread = ecore_thread_available_get(); + active_thread = ecore_thread_active_get(); + + MSG_SDATA_HIGH("Thread status. CPU=%d Max=%d Active=%d Available=%d", eina_cpu_count(), max_thread, active_thread, avail_thread); + + if(avail_thread <= 0) + { + MSG_SDATA_WARN("Thread will be enter to queue"); + } + + ThreadParam *pParam = NULL; + + pParam = (ThreadParam *)malloc(sizeof(ThreadParam)); + if(pParam == NULL) + { + MSG_SDATA_ERROR("malloc ERROR"); + return; + } + + pParam->filter_str = ivug_data_filter_copy(filter); + pParam->_mList = _mList; + pParam->bCanceled = false; + + pParam->lowerBnd = _mList->lBound; + pParam->upperBnd = _mList->uBound; + pParam->TotalCount = _mList->count; + + _mList->bLoading = true; + + MSG_SDATA_HIGH("Starting thread"); + + //PERF_CHECK_BEGIN(LVL3, "Deffered loading"); + + // do not use "thread end", "thread cancel" callback + // it can be called after ug unloaded + _mList->thread = ecore_thread_run(loader_heavy, NULL, NULL, pParam); + + MSG_SDATA_HIGH("Ecore Thread ID = 0x%08x", _mList->thread); + MSG_SDATA_HIGH("Thread func addr = 0x%08x, 0x%08x, 0x%08x", loader_heavy, loader_end, loader_cancel); + + ecore_thread_local_data_add(_mList->thread, "pParam", pParam, loader_free, EINA_FALSE); +} + +static Media_Item *_ivug_media_load_list(Media_List *mList, const Filter_struct *filter, int index /* [0 ~ _mList->count) */) +{ + IV_ASSERT(mList != NULL); + _Media_List *_mList = (_Media_List *)mList; + + int db_idx = index; + Eina_List *header = NULL; + + if (_mList->count < db_idx) + { + MSG_SDATA_ERROR("Invalid param. TotalCount=%d, DbIndex=%d", _mList->count, db_idx); + return NULL; + } + + int lBound = 0; + int uBound = _mList->count - 1; + + /*lBound = std::max( db_idx - LOAD_BLOCK_COUNT / 2, 0 ); + + if (filter->view_by == IVUG_VIEW_BY_ALL) { + uBound = _mList->count - 1; + } else { + uBound = std::min( db_idx + LOAD_BLOCK_COUNT / 2, _mList->count - 1) ; + }*/ + + MSG_SDATA_HIGH("LUBound %d,%d", lBound, uBound); + + MSG_SDATA_HIGH("Total=%d Current=%d Bound(%d~%d)", _mList->count, db_idx, lBound, uBound); + + PERF_CHECK_BEGIN(LVL3, "MediaList - load first block"); + +// Load Center + header = _load_partial(filter, lBound, uBound); + + _mList->lBound = lBound; + _mList->uBound = uBound; + + PERF_CHECK_END(LVL3, "MediaList - load first block"); + + if(header == NULL) + { + //MSG_SDATA_FATAL("MediaList is NULL"); + MSG_SDATA_ERROR("MediaList is NULL"); + return NULL; + } + + _mList->header = header; + + _ivug_medialist_set_medialist_to_media_item(mList); + +// find current data; + PERF_CHECK_BEGIN(LVL3, "MediaList - Find current"); + + Eina_List *current = eina_list_nth_list(header, db_idx - lBound); + + PERF_CHECK_END(LVL3, "MediaList - Find current"); + + if(current == NULL) + { + MSG_SDATA_HIGH("current is NULL"); + return NULL; + } + + PERF_CHECK_BEGIN(LVL3, "MediaList - shuffle"); + + _create_shuffle_list(_mList); + + PERF_CHECK_END(LVL3, "MediaList - shuffle"); + + // _dump_list(_mList->shufflelist, _print_shuffle); + // MSG_SDATA_HIGH("ParamPath=%s CurrentPath=%s", param->filepath, _mList->current->filepath); + + if ((lBound == 0) && (uBound == (_mList->count - 1) )) + { + MSG_SDATA_HIGH("Deffered loading is not needed. LoadedCount=%d", eina_list_count(header)); + _call_loaded_callback(_mList); + return (Media_Item *)current; + } + + _ivug_media_load_list_thread(mList, filter); + + MSG_SDATA_HIGH("Create slide data list END"); + + return (Media_Item *)current; +} + +static Media_Item *_ivug_medialist_load_default(Media_List *mList, const Filter_struct *filter) +{ + IV_ASSERT(mList != NULL); + _Media_List *_mList = (_Media_List *)mList; + + MSG_SDATA_HIGH("Create slide data list. Title index=%d", filter->index); + + if (_mList->header != NULL) + { + MSG_SDATA_FATAL("Header is not NULL"); + return NULL; + } +// _mList->filter = ivug_data_filter_copy(filter); + + if(filter->view_by == IVUG_VIEW_BY_HIDDEN_ALL || filter->view_by == IVUG_VIEW_BY_HIDDEN_FOLDER) + { + _mList->bHidden = true; + } + + int db_idx = 0; + +#ifdef UNIT_TEST + _mList->count = UT_TOTAL; + db_idx = UT_INDEX; +#else + PERF_CHECK_BEGIN(LVL3, "MediaList - Get list count"); + + if(filter->file_list) + { + _mList->count = eina_list_count(filter->file_list); + if (_mList->count == 0 ) + { + MSG_SDATA_ERROR("No file founded"); + PERF_CHECK_END(LVL3, "MediaList - Get list count"); + return NULL; + } + PERF_CHECK_BEGIN(LVL3, "MediaList - load file list"); + _mList->header = ivug_list_load_file_list(filter, filter->file_list); // Load all + PERF_CHECK_END(LVL3, "MediaList - load file list"); + if(_mList->header == NULL) + { + MSG_SDATA_ERROR("MediaList is NULL"); + PERF_CHECK_END(LVL3, "MediaList - Get list count"); + return NULL; + } + _ivug_medialist_set_medialist_to_media_item(mList); + MSG_SDATA_HIGH("%d items loaded", eina_list_count(_mList->header)); + _create_shuffle_list(_mList); + Media_Item *cur = ivug_medialist_find_item_by_filename(mList, filter->filepath); + _call_loaded_callback(_mList); + PERF_CHECK_END(LVL3, "MediaList - Get list count"); + return cur; + } + + if((filter->view_by == IVUG_VIEW_BY_FOLDER && filter->index == IVUG_INVALID_INDEX) || filter->selected_list) + { + _mList->count = ivug_list_get_item_cnt(filter); + if (_mList->count == 0 ) + { + MSG_SDATA_ERROR("No file founded"); + PERF_CHECK_END(LVL3, "MediaList - Get list count"); + return NULL; + } + PERF_CHECK_BEGIN(LVL3, "MediaList - load all block"); + _mList->header = _load_partial(filter, 0, _mList->count-1); // Load all + PERF_CHECK_END(LVL3, "MediaList - load all block"); + if(_mList->header == NULL) + { + MSG_SDATA_ERROR("MediaList is NULL"); + PERF_CHECK_END(LVL3, "MediaList - Get list count"); + return NULL; + } + _ivug_medialist_set_medialist_to_media_item(mList); + MSG_SDATA_HIGH("%d items loaded", eina_list_count(_mList->header)); + _create_shuffle_list(_mList); + Media_Item *cur = ivug_medialist_find_item_by_filename(mList, filter->filepath); + _call_loaded_callback(_mList); + PERF_CHECK_END(LVL3, "MediaList - Get list count"); + return cur; + } + else + { + _mList->count = ivug_list_get_item_cnt(filter); + } + + PERF_CHECK_END(LVL3, "MediaList - Get list count"); + + MSG_SDATA_HIGH("Total item count=%d", _mList->count); +/* + TitleIndex : ¿ÜºÎ(Gallery)¿¡¼­ È£ÃâµÇ´Â Index = [1~] + mDataIndex : Mdata->index, db_index´Â [0~] +*/ + db_idx = filter->index - 1; +#endif + + Media_Item *current = _ivug_media_load_list(mList, filter, db_idx); + + return current; +} + + +Media_Item *ivug_medialist_load(Media_List *mList, Filter_struct *filter) +{ + Media_Item *current = NULL; + + _ivug_medialist_set_filter(mList, filter); + + switch(filter->view_by) + { + case IVUG_VIEW_BY_DIRECTORY : + PERF_CHECK_BEGIN(LVL2, "media list load - directory"); + current = _ivug_medialist_load_from_directory(mList, filter); + PERF_CHECK_END(LVL2, "media list load - directory"); + break; + default: + PERF_CHECK_BEGIN(LVL2, "media list load"); + current = _ivug_medialist_load_default(mList, filter); + PERF_CHECK_END(LVL2, "media list load"); + break; + } + return current; +} + +Media_Item *ivug_medialist_reload(Media_List *mList, Media_Item *current) +{ + IV_ASSERT(mList != NULL); + _Media_List *_mList = (_Media_List *)mList; + + MSG_SDATA_HIGH("ivug_medialist_reload"); + + const Filter_struct *filter = _mList->filter_str; + + Eina_List *list = NULL; + Eina_List *old_list = NULL; + int count = 0; + Media_Item *new_current = NULL; + + Media_Data *mdata = ivug_medialist_get_data(current); + if(mdata == NULL) + { + MSG_SDATA_ERROR("mdata is NULL"); + return NULL; + } + + int cur_index = mdata->index; + + bool bUseThread = false; + + switch(filter->view_by) + { + case IVUG_VIEW_BY_DIRECTORY : + PERF_CHECK_BEGIN(LVL2, "media list load - directory"); + list = ivug_list_load_dir_items(filter->dir_filter->basedir); + count = eina_list_count(list); + PERF_CHECK_END(LVL2, "media list load - directory"); + break; + case IVUG_VIEW_BY_FOLDER: + case IVUG_VIEW_BY_HIDDEN_FOLDER: + PERF_CHECK_BEGIN(LVL2, "media list load"); + count = ivug_list_get_item_cnt(filter); + list = _load_partial(filter, 0, count-1); // Load all + PERF_CHECK_END(LVL2, "media list load"); + break; + default: + { + PERF_CHECK_BEGIN(LVL2, "media list load"); + count = ivug_list_get_item_cnt(filter); + + int lBound; + int uBound; + + lBound = std::max( cur_index - LOAD_BLOCK_COUNT / 2, 0 ); + uBound = std::min( cur_index + LOAD_BLOCK_COUNT / 2, _mList->count - 1) ; + + list = _load_partial(filter, lBound, uBound); + + PERF_CHECK_END(LVL2, "media list load"); + + if ((lBound != 0) && (uBound != (_mList->count - 1))) + { + bUseThread = true; + } + } + break; + } + + if(list == NULL) + { + MSG_SDATA_ERROR("new list is NULL"); + return NULL; + } + + eina_list_free(_mList->shufflelist); + _create_shuffle_list(_mList); + + old_list = _mList->header; + _mList->header = list; + _mList->cur_mitem = NULL; + + _mList->count = count; + _mList->bNeedUpdate = false; + + _ivug_medialist_set_medialist_to_media_item(mList); + + new_current = ivug_medialist_find_item_by_uuid(mList, mdata->mediaID); + if(new_current == NULL) + { + MSG_SDATA_ERROR("current is not exist at list"); + //TODO : free data + return NULL; + } + + ivug_list_delete_items(old_list); + + ivug_medialist_set_current_item(mList, new_current); + +// thread loading + if(bUseThread == true) + { + _ivug_media_load_list_thread(mList, filter); + } + else + { + _call_loaded_callback(_mList); + } + + return new_current; +} + + +void +ivug_medialist_del(Media_List *mList) +{ + IV_ASSERT(mList != NULL); + _Media_List *_mList = (_Media_List *)mList; + Eina_Bool ret = EINA_FALSE; + + MSG_SDATA_HIGH("Removing all media data. mList=0x%08x", mList); + + if(_mList->callback_job) + { + ecore_job_del(_mList->callback_job); + _mList->callback_job = NULL; + } + + ivug_medialist_del_update_callback(mList); + + _mList->cb = NULL; // remove loaded callback + + if (_mList->thread ) + { + MSG_SDATA_HIGH("1. Thread cancel. Ecore tID=0x%08x", _mList->thread); + + if (ecore_thread_cancel(_mList->thread) == EINA_TRUE ) + { + MSG_SDATA_HIGH("Thread canceled"); + } + else + { + MSG_SDATA_ERROR("Thread cancel failed."); + } + + _mList->bTerminate = EINA_TRUE; + + if(_mList->bStarted) + { + ret = eina_condition_wait(&_mList->condition); + if(ret == EINA_FALSE) + { + MSG_SDATA_ERROR("eina_condition_wait error"); + } + ret = eina_lock_release(&_mList->mutex); + if(ret == EINA_FALSE) + { + MSG_SDATA_ERROR("eina_lock_release error"); + } + eina_condition_free(&_mList->condition); + eina_lock_free(&_mList->mutex); + + ecore_thread_local_data_del(_mList->thread, "pParam"); + } + else + { + MSG_SDATA_HIGH("Thread is not started"); + } + + _mList->thread = NULL; + MSG_SDATA_HIGH("2. Thread cancel"); + } + + ivug_list_delete_items(_mList->header); + _mList->header = NULL; + + eina_list_free(_mList->shufflelist); + _mList->shufflelist = NULL; + + if(_mList->filter_str) + { + ivug_data_filter_delete(_mList->filter_str); + _mList->filter_str = NULL; + } + + _mList->bStarted = false; + + free(_mList); + +} + + +int ivug_medialist_get_count(Media_List *mList) +{ + IV_ASSERT(mList != NULL); + _Media_List *_mList = (_Media_List *)mList; + + return _mList->count; +} + +int ivug_medialist_get_index(Media_List *mList, Media_Item *item) +{ + IV_ASSERT(mList != NULL); + + Media_Data *pData; + + MSG_SDATA_HIGH("Loading is not finished"); + pData = (Media_Data *)eina_list_data_get((Eina_List *)item); + + return pData->index + 1; +} + +Media_Item *ivug_medialist_get_first(Media_List *mList) +{ + IV_ASSERT(mList != NULL); + _Media_List *_mList = (_Media_List *)mList; + + return (Media_Item *)_mList->header; +} + + +Media_Item *ivug_medialist_get_last(Media_List *mList) +{ + IV_ASSERT(mList != NULL); + _Media_List *_mList = (_Media_List *)mList; + + return (Media_Item *)eina_list_last(_mList->header); +} + +Media_Item *ivug_medialist_get_next(Media_List *mList, Media_Item *item) +{ + IV_ASSERT(mList != NULL); + + IV_ASSERT(item != NULL); + Eina_List *next = eina_list_next((Eina_List *)item); + + return (Media_Item *)next; +} + + +Media_Item *ivug_medialist_get_prev(Media_List *mList, Media_Item *item) +{ + IV_ASSERT(mList != NULL); + + IV_ASSERT(item != NULL); + Eina_List *prev = eina_list_prev((Eina_List *)item); + + return (Media_Item *)prev; + +} + +Media_Data *ivug_medialist_get_data(const Media_Item *item) +{ + IV_ASSERT(item != NULL); + + return (Media_Data *)eina_list_data_get((Eina_List *)item); +} + + +void ivug_medialist_delete_item(Media_List *mList, Media_Item *item, bool deleteItem) +{ + PERF_CHECK_BEGIN(LVL1, "MediaList - delete"); + + IV_ASSERT(mList != NULL); + _Media_List *_mList = (_Media_List *)mList; + + Media_Data *pData = (Media_Data *)eina_list_data_get((Eina_List *)item); + + Eina_List *list = eina_list_next((Eina_List *)item); + Eina_List *l; + void *data; + + EINA_LIST_FOREACH(list, l, data) { + Media_Data *mData = (Media_Data *)data; + mData->index = mData->index - 1; + } + + Media_Item *temp_prev_mitem = ivug_medialist_get_prev(_mList, item); + Media_Item *temp_next_mitem = ivug_medialist_get_next(_mList, item); + + _mList->header = eina_list_remove_list(_mList->header, (Eina_List *)item); + + // Change index + if (deleteItem == true) { + if (ivug_mediadata_delete(pData) == false) { + MSG_SDATA_HIGH("Cannot delete mediadata"); + } + } + ivug_free_mediadata(pData); + + _mList->prev_mitem = temp_prev_mitem; + _mList->cur_mitem = temp_next_mitem; + +// _mList->prev_mitem = NULL; // reset prev as NULL +// _mList->cur_mitem = NULL; // reset cur as NULL + + // Shuffle list? + _mList->count--; + + Eina_List *found = eina_list_data_find_list(_mList->shufflelist, (void *)_mList->count); + + _mList->shufflelist = eina_list_remove(_mList->shufflelist, found); + + MSG_SDATA_HIGH("Item removed. Total=%d", _mList->count); + + PERF_CHECK_END(LVL1, "MediaList - delete"); +} + + +Media_Item *ivug_medialist_get_random_item(Media_List *mList) +{ + IV_ASSERT(mList != NULL); + _Media_List *_mList = (_Media_List *)mList; + + int count = eina_list_count(_mList->header); + + if (count != 0) { + return (Media_Item *)eina_list_nth_list(_mList->header, random() % count); + } else { + return NULL; + } +} + +Media_Item *ivug_medialist_get_shuffle_item(Media_List *mList, Media_Item *item) +{ + IV_ASSERT(mList != NULL); + _Media_List *_mList = (_Media_List *)mList; + + Media_Data *pData = (Media_Data *)eina_list_data_get((Eina_List *)item); + + Eina_List *found = eina_list_data_find_list(_mList->shufflelist, (void *)pData->index); + + if (found != NULL) + { + Media_Item *next; + Eina_List *iter; + + iter = eina_list_next(found); + + if (iter == NULL) + { + int nFirstIdx = (int)eina_list_data_get(_mList->shufflelist); + + next = _find_item(mList, nFirstIdx); + + MSG_SDATA_HIGH("End reached. rewind to first. Index=%d", nFirstIdx); + + return next; + } + + do { + next = _find_item(mList, (int)eina_list_data_get(iter)); + + if (next == NULL) + { + MSG_SDATA_HIGH("Index : %d is not loaded", (int)eina_list_data_get(iter)); + _mList->shufflelist = eina_list_demote_list(_mList->shufflelist, iter); + } + + iter = eina_list_next(found); + + } while(next == NULL); + + Media_Data *nData = (Media_Data *)eina_list_data_get((Eina_List *)next); + + MSG_SDATA_HIGH("Shuffle : %d->%d", pData->index, nData->index ); + +// _dump_list(_mList->shufflelist, _print_shuffle); + return next; + } + + MSG_SDATA_ERROR("Cannot find data. Index=%d", pData->index); + return NULL; +} + +Media_Item * +ivug_medialist_find_item_by_index(Media_List *mList, int index) +{ + IV_ASSERT(mList != NULL); + + MSG_IVUG_MED("ivug_medialist_find_item_by_index %d", index); + + _Media_List *_mList = (_Media_List *)mList; + + Eina_List *l = NULL; + void *data; + + EINA_LIST_FOREACH(_mList->header, l, data) + { + Media_Data *mdata = (Media_Data *)data; + if(mdata == NULL) + { + MSG_IVUG_ERROR("album list is NULL"); + break; + } + if(mdata->index == index) + { + return (Media_Item *)l; + } + } + return NULL; +} + +Media_Item * ivug_medialist_append_item(Media_List *mList, const char *filepath) +{ + IV_ASSERT(mList != NULL); + + _Media_List *_mList = (_Media_List *)mList; + + _mList->header = ivug_list_append_item(_mList->header, filepath); + + _ivug_medialist_set_medialist_to_media_item(mList); + + _mList->count++; + + int index = 0; + Eina_List *l; + void *data; + + EINA_LIST_FOREACH(_mList->header, l, data) + { + Media_Data *mdata = (Media_Data *)data; + + mdata->index = index++; + } + + return (Media_Item *)eina_list_last(_mList->header); +} + +Media_Item * ivug_medialist_prepend_item(Media_List *mList, const char *filepath) +{ + IV_ASSERT(mList != NULL); + + _Media_List *_mList = (_Media_List *)mList; + + _mList->header = ivug_list_prepend_item(_mList->header, filepath); + + _ivug_medialist_set_medialist_to_media_item(mList); + + _mList->count++; + + int index = 0; + Eina_List *l; + + void *data; + + EINA_LIST_FOREACH(_mList->header, l, data) + { + Media_Data *mdata = (Media_Data *)data; + + mdata->index = index++; + } + + return (Media_Item *)_mList->header; +} + +bool ivug_medialist_set_current_item(Media_List *mList, Media_Item *mitem) +{ + IV_ASSERT(mList != NULL); + _Media_List *_mList = (_Media_List *)mList; + + _mList->prev_mitem = _mList->cur_mitem; + _mList->cur_mitem = mitem; + + return true; +} + +Media_Item * ivug_medialist_get_current_item(Media_List *mList) +{ + IV_ASSERT(mList != NULL); + _Media_List *_mList = (_Media_List *)mList; + + return _mList->cur_mitem; +} + + +Media_Item * ivug_medialist_get_prev_item(Media_List *mList) +{ + IV_ASSERT(mList != NULL); + _Media_List *_mList = (_Media_List *)mList; + + return _mList->prev_mitem; +} + + +void ivug_medialist_set_update_callback(Media_List *mList) +{ + IV_ASSERT(mList != NULL); + _Media_List *_mList = (_Media_List *)mList; + + MSG_SDATA_HIGH("ivug_medialist_set_update_callback 0x%08x, handle 0x%08x", _db_updated_callback, _mList->db_handle); + + if(_mList->db_handle) + { + MSG_SDATA_WARN("update_callback already exist"); + return; + } + + _mList->db_handle = ivug_db_set_updated_callback(_db_updated_callback, _mList); + + return; +} + +void ivug_medialist_del_update_callback(Media_List *mList) +{ + IV_ASSERT(mList != NULL); + _Media_List *_mList = (_Media_List *)mList; + + MSG_SDATA_HIGH("ivug_medialist_del_update_callback 0x%08x, handle 0x%08x", _db_updated_callback, _mList->db_handle); + + if(_mList->db_handle == NULL) + { + MSG_SDATA_WARN("update_callback already removed"); + return; + } + + ivug_db_unset_updated_callback(_mList->db_handle); + _mList->db_handle = NULL; + + return; +} + +bool ivug_medialist_need_update(Media_List *mList) +{ + IV_ASSERT(mList != NULL); + _Media_List *_mList = (_Media_List *)mList; + + MSG_SDATA_HIGH("update flag = %d", _mList->bNeedUpdate); + + return _mList->bNeedUpdate; +} + +void ivug_medialist_set_update_flag(Media_List *mList, bool flag) +{ + IV_ASSERT(mList != NULL); + _Media_List *_mList = (_Media_List *)mList; + + MSG_SDATA_HIGH("update flag = %d", flag); + + _mList->bNeedUpdate = flag; + + return; +} + +Eina_List *ivug_medialist_get_burst_item_list(Media_List *mList, const char *burst_id) +{ + IV_ASSERT(mList != NULL); + _Media_List *_mList = (_Media_List *)mList; + + int total_cnt = ivug_list_get_burst_item_cnt(_mList->filter_str, burst_id); + + Eina_List *list = ivug_list_load_burst_items(_mList->filter_str, burst_id, 0, total_cnt-1); + + return list; +} + +void ivug_medialist_del_burst_item_list(Eina_List *list) +{ + ivug_list_delete_items(list); +} + +Filter_struct * ivug_medialist_get_filter(Media_List *mList) +{ + IV_ASSERT(mList != NULL); + + _Media_List *_mList = (_Media_List *)mList; + + return ivug_data_filter_copy(_mList->filter_str); +} + diff --git a/packaging/ug-image-viewer-efl.spec b/packaging/ug-image-viewer-efl.spec old mode 100755 new mode 100644 index d207806..cf91691 --- a/packaging/ug-image-viewer-efl.spec +++ b/packaging/ug-image-viewer-efl.spec @@ -1,18 +1,24 @@ -%define cflags " -Wall -Wextra -g -fpie -fPIC -O3 -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -finstrument-functions -pie -Wl,--as-needed -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" -%define cxxflags " -Wall -Wextra -g -fpie -fPIC -O3 -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -finstrument-functions -pie -Wl,--as-needed -fvisibility-inlines-hidden -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" +%define cflags " -Wall -Werror -Wextra -g -fPIC -O3 -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -finstrument-functions -Wl,--as-needed -fdata-sections -ffunction-sections -Wl,--gc-sections -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" +%define cxxflags " -Wall -Werror -Wextra -g -fPIC -O3 -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -fvisibility-inlines-hidden -finstrument-functions -Wl,--as-needed -fdata-sections -ffunction-sections -Wl,--gc-sections -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" %define _usrdir /usr %define _ugdir %{_usrdir}/ug %define _datadir /opt%{_ugdir}/data +%define _sharedir /opt/usr/media/.iv +%define _privatedatadir /opt/usr/apps/image-viewer-efl/data/ -Name: ug-image-viewer-efl +Name: ug-image-viewer-efl Summary: Image Viewer UI Gadget v1.0 -Version: 1.7.9 +Version: 2.0.73 Release: 0 -Group: misc -License: Flora Software License +Group: TO_BE/FILLED_IN +License: Apache-2.0 Source0: %{name}-%{version}.tar.gz +%if "%{?tizen_profile_name}" == "wearable" || "%{?tizen_profile_name}" == "tv" +ExcludeArch: %{arm} %ix86 x86_64 +%endif + BuildRequires: cmake BuildRequires: edje-tools BuildRequires: gettext-tools @@ -23,29 +29,40 @@ BuildRequires: pkgconfig(elementary) BuildRequires: pkgconfig(edje) BuildRequires: pkgconfig(evas) BuildRequires: pkgconfig(ecore) -BuildRequires: pkgconfig(utilX) BuildRequires: pkgconfig(libmedia-utils) BuildRequires: pkgconfig(ui-gadget-1) -BuildRequires: pkgconfig(drm-client) -BuildRequires: pkgconfig(vconf) -BuildRequires: pkgconfig(libexif) BuildRequires: pkgconfig(efreet) BuildRequires: pkgconfig(mm-fileinfo) BuildRequires: pkgconfig(dlog) BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(xext) -BuildRequires: pkgconfig(xcomposite) +BuildRequires: pkgconfig(cairo) +BuildRequires: pkgconfig(shortcut) BuildRequires: pkgconfig(media-thumbnail) -BuildRequires: pkgconfig(capi-system-power) +BuildRequires: pkgconfig(notification) +BuildRequires: pkgconfig(deviced) +#BuildRequires: pkgconfig(gstreamer-0.10) BuildRequires: pkgconfig(capi-appfw-application) +BuildRequires: pkgconfig(capi-system-device) BuildRequires: pkgconfig(capi-appfw-app-manager) +BuildRequires: pkgconfig(capi-appfw-preference) BuildRequires: pkgconfig(capi-system-runtime-info) BuildRequires: pkgconfig(capi-system-sensor) BuildRequires: pkgconfig(capi-media-metadata-extractor) BuildRequires: pkgconfig(capi-content-mime-type) +BuildRequires: pkgconfig(capi-media-player) BuildRequires: pkgconfig(capi-content-media-content) +BuildRequires: pkgconfig(capi-media-sound-manager) BuildRequires: pkgconfig(capi-system-system-settings) - +BuildRequires: pkgconfig(capi-media-image-util) +BuildRequires: pkgconfig(pkgmgr-info) +BuildRequires: pkgconfig(sensor) +BuildRequires: pkgconfig(capi-appfw-package-manager) +BuildRequires: pkgconfig(appsvc) +BuildRequires: pkgconfig(efl-extension) +BuildRequires: pkgconfig(capi-system-runtime-info) +BuildRequires: pkgconfig(capi-system-system-settings) +BuildRequires: pkgconfig(storage) %description Description: Image Viewer UI Gadget v1.0 @@ -59,8 +76,8 @@ CXXFLAGS+=%cxxflags %ifarch %{arm} %define ARCH arm -CXXFLAGS+=" -D_ARCH_ARM_ -mfpu=neon -mfloat-abi=softfp " -CFLAGS+=" -D_ARCH_ARM_ -mfpu=neon -mfloat-abi=softfp " +CXXFLAGS+=" -D_ARCH_ARM_ -mfpu=neon " +CFLAGS+=" -D_ARCH_ARM_ -mfpu=neon " %else %define ARCH i586 %endif @@ -77,8 +94,9 @@ make %{?jobs:-j%jobs} rm -rf %{buildroot} %make_install mkdir -p %{buildroot}/usr/share/license -cp LICENSE.Flora %{buildroot}/usr/share/license/%{name} - +mkdir -p %{buildroot}%{_sharedir} +mkdir -p %{buildroot}%{_privatedatadir} +cp LICENSE %{buildroot}/usr/share/license/ug-image-viewer-efl execstack -c %{buildroot}%{_ugdir}/lib/libug-image-viewer-efl.so.0.1.0 %post @@ -92,8 +110,17 @@ ln -sf /usr/bin/ug-client /usr/ug/bin/image-viewer-efl %dir %{_datadir}/ug-image-viewer-efl %defattr(-,root,root,-) -%{_ugdir}/* +%{_ugdir}/lib/libug-image-viewer-efl.so* +%{_ugdir}/res/edje/ug-image-viewer-efl/* +%{_ugdir}/res/images/ug-image-viewer-efl/* +%{_ugdir}/res/locale/*/*/ug-image-viewer-efl.mo + +/usr/share/license/ug-image-viewer-efl +/usr/share/packages/image-viewer-efl.xml +/usr/share/icons/default/small/ug-image-viewer-efl.png -/usr/share/license/%{name} -/usr/share/packages/*.xml +%attr(775,root,root) /opt/etc/dump.d/module.d/dump-image-viewer.sh +%attr(775,app,app) %dir %{_sharedir} +%attr(777,app,app) %dir %{_privatedatadir} +%{_datadir}/ug-image-viewer-efl/* diff --git a/res/CMakeLists.txt b/res/CMakeLists.txt old mode 100644 new mode 100755 index 8525d2a..5f7af52 --- a/res/CMakeLists.txt +++ b/res/CMakeLists.txt @@ -2,4 +2,11 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) INSTALL(DIRECTORY images/ DESTINATION ${CMAKE_INSTALL_PREFIX}/res/images/${IVUG_PACKAGE_NAME}) +INSTALL(FILES dumpscript/dump-image-viewer.sh DESTINATION "/opt/etc/dump.d/module.d") +INSTALL(FILES xml/ug-image-viewer-efl_ChangeableColorInfo.xml DESTINATION ${IVUG_DATA_DIR}) +INSTALL(FILES xml/ug-image-viewer-efl_ChangeableFontInfo.xml DESTINATION ${IVUG_DATA_DIR}) + +# Make debug dir +INSTALL(DIRECTORY DESTINATION ${CMAKE_DATA_DIR}/${IVUG_PACKAGE_NAME}/.debug) + ADD_SUBDIRECTORY(po) diff --git a/res/appicon/icon.png b/res/appicon/icon.png new file mode 100755 index 0000000..4c9a254 Binary files /dev/null and b/res/appicon/icon.png differ diff --git a/res/appicon/ug-image-viewer-efl.png b/res/appicon/ug-image-viewer-efl.png index e20bd23..4c9a254 100755 Binary files a/res/appicon/ug-image-viewer-efl.png and b/res/appicon/ug-image-viewer-efl.png differ diff --git a/res/dumpscript/dump-image-viewer.sh b/res/dumpscript/dump-image-viewer.sh new file mode 100755 index 0000000..9edcbf2 --- /dev/null +++ b/res/dumpscript/dump-image-viewer.sh @@ -0,0 +1,16 @@ +IMAGEVIEWER_DEBUG=$1/image-viewer +GALLERY_DEBUG=/opt/usr/apps/com.samsung.gallery/data + + +IMAGEVIEWER_DATA_DIR="/opt/usr/ug/data/ug-image-viewer-efl/.debug" + +/bin/mkdir -p ${IMAGEVIEWER_DEBUG} + +#xinfo -p 2> ${IMAGEVIEWER_DEBUG}/ping.log +#xinfo -xwd_topvwins ${IMAGEVIEWER_DEBUG} + +# copy TimeAnal +/bin/cp -arf ${IMAGEVIEWER_DATA_DIR}/* ${IMAGEVIEWER_DEBUG} + +# copy gallery media db for debugging +/bin/cp -arf ${GALLERY_DEBUG}/.gallery* ${IMAGEVIEWER_DEBUG} \ No newline at end of file diff --git a/res/images/T01_Nocontents_broken.png b/res/images/T01_Nocontents_broken.png old mode 100644 new mode 100755 index 9326d0a..033ce0f Binary files a/res/images/T01_Nocontents_broken.png and b/res/images/T01_Nocontents_broken.png differ diff --git a/res/include/ivug-string.h b/res/include/ivug-string.h index fb34b10..d229f63 100755 --- a/res/include/ivug-string.h +++ b/res/include/ivug-string.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_STRING_H__ #define __IVUG_STRING_H__ @@ -25,8 +26,10 @@ #define gettext_noop(str) (str) /**< keyword for xgettext to extract translatable strings */ #define N_(str) gettext_noop(str) /**< gettext_noop alias */ +#define GET_IDS_COM(id) (dgettext("sys_string", (id))) +#define GET_IDS(id) (dgettext(IVUG_TEXT_DOMAIN, (id))) -#define LOCALE_PATH PREFIX"/res/locale" +#define LOCALE_PATH PREFIX"/res/locale" /*TODO!!!*/ #ifndef PACKAGE #error PACKAGE is not defined @@ -45,175 +48,277 @@ /***********************************************/ // Not yet translated +#define IDS_SHARE_AS_VIDEO "IDS_IV_OPT_AS_VIDEO_FILES" +#define IDS_SHARE_AS_IMAGE "IDS_IV_OPT_AS_IMAGE_FILES" +#define IDS_SHARE_AS "IDS_IV_OPT_SHARE"//"IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" //cannot show & at efl +#define IDS_HIDDEN "Hidden" -#define IDS_DRM_INTERVAL_BASED_DAYS _("You can use %s for %d days. Would you like to open it now?") -#define IDS_DRM_TIME_BASED_GET _("%s is about to be locked. Do you want to get more licenses?") -#define IDS_DRM_COUNT_BASED_OPEN_ONE _("You have one more use of %s. Do you want to open it now?") -#define IDS_DRM_COUNT_BASED_OPEN_MANY _("You have %d more uses of %s. Do you want to open it now?") -#define IDS_DRM_COUNT_BASED_ONE_MORE_GET _("You have one more use of %s. Do you want to get more licenses?") -#define IDS_DRM_COUNT_BASED_NO_MORE_GET _("You have no more use of %s. Do you want to get more licenses?") -#define IDS_DRM_UNLOCK _("%s is currently locked. Do you want to unlock it now?") +#define IDS_SELECT_CONTACT "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" + +#define IDS_PLAY_SPEED "IDS_IV_HEADER_PLAY_SPEED" +#define IDS_PLAY_SPEED_1_5TH "x1/5" +#define IDS_PLAY_SPEED_1_2TH "x1/2" +#define IDS_PLAY_SPEED_1 "x1" +#define IDS_PLAY_SPEED_2 "x2" + +#define IDS_UNKOWN_FORMAT "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" + +#define IDS_PROCESSING "Processing..." + +#define IDS_DO_NOT_TAGBUDDY_DESCRIPTION _("Enanble auto refresh in weather widget to view weather tags

Enable GPS tags in Camera to view location tags

Tap faces to view infomation about the people") + +#define IDS_NEARBY_DESCRIPTION "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" #define IDS_COLLABORATIVE_PLAY _("Collaborative play") +#define IDS_CALLER_ID_DESCRIPTION "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" + +#define IDS_FLASH_ON "IDS_CAM_BODY_FLASH_ON" +#define IDS_FLASH_OFF "IDS_CAM_BODY_FLASH_OFF" +#define IDS_DURATION_PLAY "IDS_MP_BODY_DURATION" +#define IDS_SET_POP "IDS_ST_POP_SET" +#define IDS_FACE_TAG "IDS_PBR_POP_FACE_TAG" -#define IDS_ADD_NAME (dgettext(IVUG_TEXT_DOMAIN, "IDS_FT_OPT_ADD_NAME")) -#define IDS_SET_AS_CALLER_ID (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE")) +#define IDS_SELECT_PICTURE "IDS_MEDIABR_BODY_SELECT_PICTURE" +#define IDS_ALL_PICTURES "IDS_MEDIABR_OPT_ALL_PICTURES" +#define IDS_ADD_TO_HOME "IDS_MEDIABR_SK2_ADD_TO_HOME" +#define IDS_EDIT_IMAGE "IDS_MEDIABR_OPT_EDIT_IMAGE" + +#define IDS_DYNAMIC_BOX _("Dynamic Box") #define IDS_MMS _("MMS") -#define IDS_INVALID_NAME _("Invalid name") - -#define IDS_ORIENTATION (dgettext(IVUG_TEXT_DOMAIN, "IDS_MEDIABR_HEADER_ORIENTATION")) -#define IDS_MANUFACTURE (dgettext(IVUG_TEXT_DOMAIN, "IDS_MEDIABR_HEADER_MANUFACTURER")) -#define IDS_MODEL (dgettext(IVUG_TEXT_DOMAIN, "IDS_MEDIABR_HEADER_MODEL")) -#define IDS_FLASH (dgettext(IVUG_TEXT_DOMAIN, "IDS_CAM_BODY_FLASH")) -#define IDS_NO_FLASH _("No Flash") -#define IDS_FOCAL_LENGTH (dgettext(IVUG_TEXT_DOMAIN, "IDS_CAM_BODY_FOCAL_LENGTH")) -#define IDS_WHITE_BALANCE (dgettext(IVUG_TEXT_DOMAIN, "IDS_CAM_BODY_WHITE_BALANCE")) -#define IDS_AUTO (dgettext(IVUG_TEXT_DOMAIN, "IDS_CAM_BODY_AUTO")) -#define IDS_MANUAL (dgettext("sys_string", "IDS_COM_BODY_MANUAL")) -#define IDS_APERTURE (dgettext(IVUG_TEXT_DOMAIN, "IDS_CAM_BODY_APERTURE")) -#define IDS_EXPOSURE_TIME (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_EXPOSURE_TIME_ABB")) -#define IDS_ISO (dgettext(IVUG_TEXT_DOMAIN, "IDS_CAM_BODY_ISO")) - -#define IDS_UNABLE_TO_OPEN_FILE _("Unable to open file") +#define IDS_INVALID_NAME "IDS_COM_POP_INVALID_CHARACTERS"//_("Invalid name") +#define IDS_CLOUD "IDS_IV_OPT_CLOUD" +#define IDS_GROUP_PLAY _("Group play") +#define IDS_RENAME "IDS_COM_SK_RENAME" +#define IDS_CREATE_ALBUM _("Create album") + #define IDS_CANNOT_LOAD_FILE_LST _("Cannot load file list") #define IDS_NULL _("") #define IDS_WIFI_DIRECT _("Wi-Fi Direct") -#define IDS_ADD_TO_HOME (dgettext(IVUG_TEXT_DOMAIN, "IDS_MEDIABR_SK2_ADD_TO_HOME")) -#define IDS_CREATE_TAG (dgettext(IVUG_TEXT_DOMAIN, "IDS_MEDIABR_OPT_CREATE_TAG")) +#define IDS_ORIENTATION "IDS_MEDIABR_HEADER_ORIENTATION" +#define IDS_MANUFACTURE "IDS_IV_BODY_MANUFACTURER" +#define IDS_MODEL "IDS_IV_BODY_MODEL" +#define IDS_FLASH "IDS_CAM_BODY_FLASH" +#define IDS_DURATION "IDS_IV_BODY_DURATION" +#define IDS_FOCAL_LENGTH "IDS_CAM_BODY_FOCAL_LENGTH" +#define IDS_WHITE_BALANCE "IDS_IV_BODY_WHITE_BALANCE" +#define IDS_AUTO "IDS_IV_BODY_AUTO" +#define IDS_MANUAL "IDS_COM_BODY_MANUAL" +#define IDS_APERTURE "IDS_IV_BODY_APERTURE" +#define IDS_EXPOSURE_TIME "IDS_IV_BODY_EXPOSURE_TIME_ABB" +#define IDS_ISO "IDS_CAM_BODY_ISO" -#define IDS_FACE_TAG (dgettext(IVUG_TEXT_DOMAIN, "IDS_PBR_OPT_FACE_TAGGING")) +#define IDS_NO_TAG "IDS_IV_BODY_NO_TAG" +#define IDS_SUNNY_DAY "IDS_IV_BODY_SUNNY_DAY" +#define IDS_CLOUDY_DAY "IDS_IV_BODY_CLOUDY_DAY" +#define IDS_RAINY_DAY "IDS_IV_BODY_RAINY_DAY" +#define IDS_SNOWY_DAY "IDS_IV_BODY_SNOWY_DAY" +#define IDS_CLEAR_NIGHT "IDS_IV_BODY_CLEAR_NIGHT" +#define IDS_IN "IDS_IV_BODY_IN" +#define IDS_WITH _("With") -#define IDS_WALLPAPER_NOTIFY (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER")) -#define IDS_CROP_NOTIFY (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE")) -#define IDS_CALLER_ID_NOTIFY (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE")) -#define IDS_PRINT_NOTIFY (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED")) +#define IDS_TAG_BUDDY_ACCESS_TEXT1 "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +#define IDS_TAG_BUDDY_ACCESS_TEXT2 "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +#define IDS_TAG_BUDDY_ACCESS_TEXT3 "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" + +#define IDS_WALLPAPER_NOTIFY "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +#define IDS_CROP_NOTIFY "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +#define IDS_CALLER_ID_NOTIFY "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +#define IDS_PRINT_NOTIFY "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" + +#define IDS_ALLSHARE_NOTIFY "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" /* Registered string in STMS IV */ -#define IDS_ACCUMULATED_TIME (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_ACCUMULATED_TIME")) -#define IDS_ADD_TAG (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_HEADER_ADD_TAG")) -#define IDS_ADDED (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_POP_ADDED")) -#define IDS_ALL_ALBUMS (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_HEADER_ALL_ALBUMS")) -#define IDS_ANY (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_ANY")) -#define IDS_AVAILABLE_USES (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_AVAILABLE_USES")) -#define IDS_BASIC (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_BASIC")) -#define IDS_BUDDY_PHOTO_SHARE (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_OPT_BUDDY_PHOTO_SHARE")) -#define IDS_CALLER_IMAGE (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_CALLER_IMAGE")) -#define IDS_COPY_TO_CLIPBOARD (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_OPT_COPY_TO_CLIPBOARD")) -#define IDS_COUNT (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_COUNT")) -#define IDS_CROP (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_CROP")) -#define IDS_DATE_CREATED (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_DATE_CREATED")) -#define IDS_DISPLAY (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_DISPLAY")) -#define IDS_DO_NOT_SEND (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_DO_NOT_SEND")) -#define IDS_EDIT_TAG (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_OPT_EDIT_TAG")) -#define IDS_ENTER_TAG_NAME (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_POP_ENTER_TAG_NAME")) -#define IDS_ENTRY_IS_EMPTY (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_POP_ENTRY_IS_EMPTY")) -#define IDS_EXECUTE (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_EXECUTE")) -#define IDS_FORMAT (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_FILE_FORMAT")) -#define IDS_FILE_LOCATION (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_FILE_LOCATION")) -#define IDS_FILE_TRANSFER (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_OPT_FILE_TRANSFER")) -#define IDS_FORWARDING (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_FORWARDING")) -#define IDS_HOME_AND_LOCK_SCREEN_WALLPAPER (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER")) -#define IDS_HOME_AND_LOCK_SCREENS (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_HOME_AND_LOCK_SCREENS")) -#define IDS_HOME_SCREEN (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_HOME_SCREEN")) -#define IDS_HOME_SCREEN_WALLPAPER (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB")) -#define IDS_IMPOSSIBLE (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_IMPOSSIBLE")) -#define IDS_INDIVIDUAL (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_INDIVIDUAL")) -#define IDS_INTERVAL (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_INTERVAL")) -#define IDS_INVALID_IMAGE_FILE (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_POP_INVALID_IMAGE_FILE")) -#define IDS_LATITUDE (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_LATITUDE")) -#define IDS_LOCK_SCREEN (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_LOCK_SCREEN")) -#define IDS_LOCK_SCREEN_WALLPAPER (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB")) -#define IDS_LONGITUDE (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_LONGITUDE")) -#define IDS_MANUALLY_DETECT (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_OPT_MANUALLY_DETECT")) -#define IDS_MAX_CHAR_LENGTH_REACHED (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED")) -#define IDS_ME (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_ME")) -#define IDS_N_A (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_N_A")) -#define IDS_NEW_TAG (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_NEW_TAG")) -#define IDS_PERMISSION_DENIED (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_POP_PERMISSION_DENIED")) -#define IDS_POSSIBLE (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_POSSIBLE")) -#define IDS_PRINT (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_PRINT")) -#define IDS_PRINT_VIA_BLUETOOH (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_OPT_PRINT_VIA_BLUETOOTH")) -#define IDS_REMOVE_TAG (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_OPT_REMOVE_TAG")) -#define IDS_RESOLUTION (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_RESOLUTION")) -#define IDS_RIGHT_STATUS (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_RIGHT_STATUS")) -#define IDS_ROTATE_LEFT (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_OPT_ROTATE_LEFT")) -#define IDS_ROTATE_RIGHT (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_OPT_ROTATE_RIGHT")) -#define IDS_SD_CARD_REMOVED (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_POP_SD_CARD_REMOVED")) -#define IDS_SELECT_DEVICE (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_POP_SELECT_DEVICE")) -#define IDS_SERVER_NAME (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_SERVER_NAME")) -#define IDS_SET_AS (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_OPT_SET_AS")) -#define IDS_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN")) -#define IDS_SHARE (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_OPT_SHARE")) -#define IDS_SHARE_VIA (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_SHARE_VIA")) -#define IDS_SLIDE_SHOW (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_OPT_SLIDE_SHOW")) -#define IDS_TAG (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_OPT_TAG")) -#define IDS_TIMED_COUNT (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_TIMED_COUNT")) -#define IDS_TRIM (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_OPT_TRIM")) -#define IDS_UNLIMITED (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_UNLIMITED")) -#define IDS_USE_MOTION (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_OPT_USE_MOTION")) -#define IDS_VALIDITY (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_VALIDITY")) -#define IDS_VENDOR (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_VENDOR")) +#define IDS_ACCUMULATED_TIME "IDS_IV_ACCUMULATED_TIME" +#define IDS_ADD_CAPTION "IDS_IV_OPT_ADD_CAPTION" +#define IDS_ADD_COMMENT "IDS_IV_SK3_ADD_COMMENT" +#define IDS_ADD_NAME "IDS_IV_OPT_ADD_NAME_ABB" +#define IDS_ADD_TAG "IDS_IV_HEADER_ADD_TAG" +#define IDS_ADD_WEATHER_TAG "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +#define IDS_ADDED "IDS_IV_POP_ADDED" +#define IDS_ALL_ALBUMS "IDS_IV_HEADER_ALL_ALBUMS" +#define IDS_ANY "IDS_IV_BODY_ANY" +#define IDS_AVAILABLE_USES "IDS_IV_BODY_AVAILABLE_USES" +#define IDS_BASIC "IDS_IV_BODY_BASIC" +#define IDS_BUDDY_PHOTO_SHARE "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +#define IDS_CALLER_IMAGE "IDS_IV_BODY_CALLER_IMAGE" +#define IDS_CONNECTION_INFO "IDS_IV_OPT_CONNECTION_INFO_ABB" +#define IDS_COPY_TO_CLIPBOARD "IDS_IV_OPT_COPY_TO_CLIPBOARD" +#define IDS_COUNT "IDS_IV_BODY_COUNT" +#define IDS_CREATE_TAG "IDS_IV_BODY_CREATE_TAG" +#define IDS_CROP "IDS_IV_BODY_CROP" +#define IDS_DATE_CREATED "IDS_IV_BODY_DATE_CREATED" +#define IDS_DISPLAY "IDS_IV_BODY_DISPLAY" +#define IDS_DO_NOT_ASK_AGAIN "IDS_IV_BODY_DONT_ASK_AGAIN" +#define IDS_DO_NOT_SEND "IDS_IV_BODY_DO_NOT_SEND" +#define IDS_EDIT_CAPTION "IDS_IV_OPT_EDIT_CAPTION" +#define IDS_EDIT_TAG "IDS_IV_OPT_EDIT_TAG" +#define IDS_EDIT_WEATHER_TAG "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +#define IDS_ENTER_TAG_NAME "IDS_IV_POP_ENTER_TAG_NAME" +#define IDS_ENTRY_IS_EMPTY "IDS_IV_POP_ENTRY_IS_EMPTY" +#define IDS_EXECUTE "IDS_IV_BODY_EXECUTE" +#define IDS_FORMAT "IDS_IV_BODY_FILE_FORMAT" +#define IDS_FILE_LOCATION "IDS_IV_BODY_FILE_LOCATION" +#define IDS_FILE_SIZE_IS_TOO_SMALL "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +#define IDS_FILE_TRANSFER "IDS_IV_OPT_FILE_TRANSFER" +#define IDS_FORWARDING "IDS_IV_BODY_FORWARDING" +#define IDS_GET_DIRECTIONS "IDS_IV_OPT_GET_DIRECTIONS_ABB" +#define IDS_HOME_AND_LOCK_SCREEN_WALLPAPER "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +#define IDS_HOME_AND_LOCK_SCREENS "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +#define IDS_HOME_SCREEN "IDS_IV_BODY_HOME_SCREEN" +#define IDS_HOME_SCREEN_WALLPAPER "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +#define IDS_IMPOSSIBLE "IDS_IV_BODY_IMPOSSIBLE" +#define IDS_INDIVIDUAL "IDS_IV_BODY_INDIVIDUAL" +#define IDS_INTERVAL "IDS_IV_BODY_INTERVAL" +#define IDS_INVALID_IMAGE_FILE "IDS_IV_POP_INVALID_IMAGE_FILE" +#define IDS_LATITUDE "IDS_IV_BODY_LATITUDE" +#define IDS_LOCATION "IDS_IV_BODY_LOCATION_ABB2" +#define IDS_LOCATION_PATH "IDS_IV_BODY_LOCATION_M_PATH" +#define IDS_LOCK_SCREEN "IDS_IV_BODY_LOCK_SCREEN" +#define IDS_LOCK_SCREEN_WALLPAPER "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +#define IDS_LONGITUDE "IDS_IV_BODY_LONGITUDE" +#define IDS_NO_FACE_DETECTED "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +#define IDS_MANUALLY_DETECT "IDS_IV_OPT_MANUALLY_DETECT" +#define IDS_MAX_CHAR_LENGTH_REACHED "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +#define IDS_ME "IDS_IV_BODY_ME" +#define IDS_MY_DEVICE "IDS_IV_BODY_MY_DEVICE" +#define IDS_N_A "IDS_IV_BODY_N_A" +#define IDS_NEAR_DEVICES "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +#define IDS_NEW_TAG "IDS_IV_BODY_NEW_TAG" +#define IDS_NO_TAGGED_FACE "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +#define IDS_PEOPLE "IDS_IV_BODY_PEOPLE" +#define IDS_PERMISSION_DENIED "IDS_IV_POP_PERMISSION_DENIED" +#define IDS_POSSIBLE "IDS_IV_BODY_POSSIBLE" +#define IDS_PRINT "IDS_IV_BODY_PRINT" +#define IDS_PRINT_VIA_BLUETOOH "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +#define IDS_REFRESH "IDS_IV_OPT_REFRESH" +#define IDS_REMOVE_TAG "IDS_IV_OPT_REMOVE_TAG" +#define IDS_RESOLUTION "IDS_IV_BODY_RESOLUTION" +#define IDS_RIGHT_STATUS "IDS_IV_BODY_RIGHT_STATUS" +#define IDS_ROTATE_LEFT "IDS_IV_OPT_ROTATE_LEFT" +#define IDS_ROTATE_RIGHT "IDS_IV_OPT_ROTATE_RIGHT" +#define IDS_SD_CARD_REMOVED "IDS_IV_POP_SD_CARD_REMOVED" +#define IDS_SELECT_DEVICE "IDS_IV_POP_SELECT_DEVICE" +#define IDS_SEND_PICTURE_TO "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +#define IDS_SERVER_NAME "IDS_IV_BODY_SERVER_NAME" +#define IDS_SET_AS "IDS_IV_OPT_SET_AS" +#define IDS_SET_AS_CALLER_ID "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +#define IDS_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +#define IDS_SHARE "IDS_IV_OPT_SHARE" +#define IDS_SHARE_VIA "IDS_IV_BODY_SHARE_VIA" +#define IDS_SLIDE_SHOW "IDS_IV_OPT_SLIDESHOW_ABB" //"IDS_IV_OPT_SLIDE_SHOW" -> slide show +#define IDS_FILE_DOWNLOAD "IDS_IV_OPT_DOWNLOAD" +#define IDS_DELETE_IMAGE "IDS_IV_OPT_DELETE_ABB" +#define IDS_RENAME_IMAGE "IDS_IV_OPT_RENAME" +#define IDS_DELETE_IMAGE_MESSAGE "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +#define IDS_DELETE_VIDEO_MESSAGE "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +#define IDS_RENAME_BUTTON "IDS_IV_BUTTON_RENAME_ABB" +#define IDS_RENAME_FILE_EXIST "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +#define IDS_SLIDESHOW_STOP "IDS_IV_BUTTON_STOP" +#define IDS_SLIDESHOW_SLIDE_INTERVAL "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +#define IDS_SLIDESHOW_EFFECT "IDS_IV_BODY_EFFECT" +#define IDS_SLIDESHOW_FADE_EFFECT "IDS_IV_OPT_FADE_M_EFFECT" +#define IDS_SLIDESHOW_FLOW_EFFECT "IDS_DFRAME_BODY_FLOW_M_EFFECT" +#define IDS_SLIDE_SECOND "IDS_COM_BODY_1_SECOND" +#define IDS_SLIDE_SECONDS "IDS_BODY_PD_SECONDS" +#define IDS_TAG "IDS_IV_OPT_TAG" +#define IDS_TAGBUDDY "IDS_IV_OPT_TAG_BUDDY" +#define IDS_TIMED_COUNT "IDS_IV_BODY_TIMED_COUNT" +#define IDS_TRIM "IDS_IV_OPT_TRIM" +#define IDS_UNABLE_TO_OPEN_FILE "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +#define IDS_UNLIMITED "IDS_IV_BODY_UNLIMITED" +#define IDS_USE_MOTION "IDS_IV_OPT_USE_MOTION" +#define IDS_VALIDITY "IDS_IV_BODY_VALIDITY" +#define IDS_VENDOR "IDS_IV_BODY_VENDOR" +#define IDS_WEATHER "IDS_IV_BODY_WEATHER" +#define IDS_WRITE_CAPTION "IDS_IV_OPT_WRITE_CAPTION" + +#define IDS_PD_SELECTED "IDS_GALLERY_HEADER_PD_SELECTED_ABB" // System string. -#define IDS_BLUETOOTH (dgettext("sys_string", "IDS_COM_BODY_BLUETOOTH")) -#define IDS_EMAIL (dgettext("sys_string", "IDS_COM_BODY_EMAIL")) -#define IDS_MESSAGE (dgettext("sys_string", "IDS_COM_BODY_MESSAGE")) -#define IDS_WI_FI (dgettext("sys_string", "IDS_COM_BODY_WI_FI")) -#define IDS_NFC (dgettext("sys_string", "IDS_COM_BODY_NFC")) - -#define IDS_FACEBOOK (dgettext("sys_string", "IDS_COM_BODY_FACEBOOK")) -#define IDS_PICASA (dgettext("sys_string", "IDS_COM_BODY_PICASA")) -#define IDS_TWITTER (dgettext("sys_string", "IDS_COM_BODY_TWITTER")) -#define IDS_YOUTUBE (dgettext("sys_string", "IDS_COM_BODY_YOU_TUBE")) - -#define IDS_APPLICATION_NOT_INSTALLED (dgettext("sys_string", "IDS_COM_BODY_APPLICATION_NOT_INSTALLED")) -#define IDS_BACK (dgettext("sys_string", "IDS_COM_BODY_BACK")) -#define IDS_CANCEL (dgettext("sys_string", "IDS_COM_SK_CANCEL")) -#define IDS_CLOSE (dgettext("sys_string", "IDS_COM_BODY_CLOSE")) -#define IDS_CHANGE_NAME (dgettext("sys_string", "IDS_COM_BODY_CHANGE_NAME")) -#define IDS_COPY (dgettext("sys_string", "IDS_COM_BODY_COPY")) -#define IDS_COPIED_TO_CLIPBOARD (dgettext("sys_string", "IDS_COM_POP_COPIED_TO_CLIPBOARD")) -#define IDS_DETAILS (dgettext("sys_string", "IDS_COM_BODY_DETAILS")) -#define IDS_DELETE_MSG (dgettext("sys_string", "IDS_COM_POP_DELETE_Q")) -#define IDS_DELETE (dgettext("sys_string", "IDS_COM_BODY_DELETE")) -#define IDS_DELETED (dgettext("sys_string", "IDS_COM_POP_DELETED")) -#define IDS_DONE (dgettext("sys_string", "IDS_COM_SK_DONE")) -#define IDS_DOWNLOAD (dgettext("sys_string", "IDS_COM_SK_DOWNLOAD")) -#define IDS_DOWNLOAD_FAILED (dgettext("sys_string", "IDS_COM_POP_DOWNLOAD_FAILED")) -#define IDS_EDIT (dgettext("sys_string", "IDS_COM_BODY_EDIT")) -#define IDS_ENTER_NAME (dgettext("sys_string", "IDS_COM_BODY_ENTER_NAME")) -#define IDS_ERROR (dgettext("sys_string", "IDS_COM_POP_ERROR")) -#define IDS_FAILED (dgettext("sys_string", "IDS_COM_POP_FAILED")) -#define IDS_FAVOURITES (dgettext("sys_string", "IDS_COM_BODY_FAVOURITES")) -#define IDS_LOADING (dgettext("sys_string", "IDS_COM_BODY_LOADING")) -#define IDS_LOCATION (dgettext("sys_string", "IDS_COM_BODY_LOCATION")) -#define IDS_MORE (dgettext("sys_string", "IDS_COM_BODY_MORE")) -#define IDS_MOVE (dgettext("sys_string", "IDS_COM_BODY_MOVE")) -#define IDS_NAME (dgettext("sys_string", "IDS_COM_BODY_DETAILS_NAME")) -#define IDS_NO (dgettext("sys_string", "IDS_COM_SK_NO")) -#define IDS_NO_NAME (dgettext("sys_string", "IDS_COM_BODY_NO_NAME")) -#define IDS_OFF (dgettext("sys_string", "IDS_COM_BODY_OFF")) -#define IDS_OK (dgettext("sys_string", "IDS_COM_SK_OK")) -#define IDS_ON (dgettext("sys_string", "IDS_COM_BODY_ON")) -#define IDS_PLAY (dgettext("sys_string", "IDS_COM_SK_PLAY")) -#define IDS_SAVE (dgettext("sys_string", "IDS_COM_SK_SAVE")) -#define IDS_SAVED (dgettext("sys_string", "IDS_COM_POP_SAVED")) -#define IDS_SEND (dgettext("sys_string", "IDS_COM_BODY_SEND")) -#define IDS_SET (dgettext("sys_string", "IDS_COM_SK_SET")) -#define IDS_SIZE (dgettext("sys_string", "IDS_COM_BODY_SIZE")) -#define IDS_SUCCESS (dgettext("sys_string", "IDS_COM_POP_SUCCESS")) -#define IDS_SYSTEM (dgettext("sys_string", "IDS_COM_BODY_SYSTEM")) -#define IDS_TIME (dgettext("sys_string", "IDS_COM_POP_TIME")) -#define IDS_TYPE (dgettext("sys_string", "IDS_COM_POP_TYPE")) -#define IDS_UNKNOWN (dgettext("sys_string", "IDS_COM_BODY_UNKNOWN")) -#define IDS_YES (dgettext("sys_string", "IDS_COM_SK_YES")) +#define IDS_BLUETOOTH "IDS_COM_BODY_BLUETOOTH" +#define IDS_EMAIL "IDS_COM_BODY_EMAIL" +#define IDS_S_NOTE "IDS_COM_BODY_S_NOTE" +#define IDS_S_MEMO "IDS_COM_OPT_S_MEMO" +#define IDS_MESSAGE "IDS_COM_BODY_MESSAGE" +#define IDS_WI_FI "IDS_COM_BODY_WI_FI" +#define IDS_NFC "IDS_COM_BODY_NFC" + +#define IDS_FACEBOOK "IDS_COM_BODY_FACEBOOK" +#define IDS_PICASA "IDS_COM_BODY_PICASA" +#define IDS_TWITTER "IDS_COM_BODY_TWITTER" + +#define IDS_ALLSHARE "IDS_COM_BODY_ALLSHARE" +#define IDS_APPLICATION_NOT_INSTALLED "IDS_COM_BODY_APPLICATION_NOT_INSTALLED" +#define IDS_BACK "IDS_COM_BODY_BACK" +#define IDS_CANCEL "IDS_COM_SK_CANCEL" +#define IDS_CLOSE "IDS_COM_BODY_CLOSE" +#define IDS_CHANGE_NAME "IDS_COM_BODY_CHANGE_NAME" +#define IDS_COPY "IDS_COM_BODY_COPY" +#define IDS_COPIED_TO_CLIPBOARD "IDS_COM_POP_COPIED_TO_CLIPBOARD" +#define IDS_DATE "IDS_COM_BODY_DATE" +#define IDS_DETAILS "IDS_COM_BODY_DETAILS" +#define IDS_DELETE_MSG "IDS_COM_POP_DELETE_Q" +#define IDS_DELETE "IDS_COM_BODY_DELETE" +#define IDS_DELETED "IDS_COM_POP_DELETED" +#define IDS_DONE "IDS_COM_SK_DONE" +#define IDS_DOWNLOAD "IDS_COM_SK_DOWNLOAD" +#define IDS_DOWNLOAD_FAILED "IDS_COM_POP_DOWNLOAD_FAILED" +#define IDS_EDIT "IDS_COM_BODY_EDIT" +#define IDS_ENTER_NAME "IDS_COM_BODY_ENTER_NAME" +#define IDS_ERROR "IDS_COM_POP_ERROR" +#define IDS_FAILED "IDS_COM_POP_FAILED" +#define IDS_FAVOURITE "IDS_COM_BODY_FAVOURITE" +#define IDS_FAVOURITES "IDS_COM_BODY_FAVOURITES" +#define IDS_LOADING "IDS_COM_BODY_LOADING" +#define IDS_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +#define IDS_MORE "IDS_COM_BODY_MORE" +#define IDS_MOVE "IDS_COM_BODY_MOVE" +#define IDS_NAME "IDS_COM_BODY_DETAILS_NAME" +#define IDS_NO "IDS_COM_SK_NO" +#define IDS_NO_NAME "IDS_COM_BODY_NO_NAME" +#define IDS_OFF "IDS_COM_BODY_OFF" +#define IDS_OK "IDS_COM_SK_OK" +#define IDS_ON "IDS_COM_BODY_ON" +#define IDS_PLAY "IDS_COM_SK_PLAY" +#define IDS_SAVE "IDS_COM_SK_SAVE" +#define IDS_SAVED "IDS_COM_POP_SAVED" +#define IDS_SEND "IDS_COM_BODY_SEND" +#define IDS_SET "IDS_COM_SK_SET" +#define IDS_SETTINGS "IDS_COM_BODY_SETTINGS" +#define IDS_SIZE "IDS_COM_BODY_SIZE" +#define IDS_SUCCESS "IDS_COM_POP_SUCCESS" +#define IDS_SYSTEM "IDS_COM_BODY_SYSTEM" +#define IDS_TIME "IDS_COM_POP_TIME" +#define IDS_TYPE "IDS_COM_POP_TYPE" +#define IDS_UNKNOWN "IDS_COM_BODY_UNKNOWN" +#define IDS_YES "IDS_COM_SK_YES" +#define IDS_CANCEL_CAPS "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +#define IDS_DONE_CAPS "IDS_TPLATFORM_ACBUTTON_DONE_ABB" + +#define IDS_B _("B") +#define IDS_KB "IDS_COM_BODY_KB" +#define IDS_MB "IDS_COM_BODY_MB" +#define IDS_GB _("GB") +#define IDS_SET_WEATHER_FAILED _("Set Weather failed") + +#define NO_WEATHER_INFO _("No Info.") +#define RESERVED_WEATHER _("Reserved") +#define SUNNY_WEATHER _("Sunny") +#define CLOUDY_WEATHER _("Cloudy") +#define RAINY_WEATHER _("Rainy") +#define SNOWY_WEATHER _("Snowy") +#define CLEAR_WEATHER _("Clear") + +#define IDS_HELP_SLIDE "IDS_HELP_BODY_SCROLL_LEFT_OR_RIGHT_TO_VIEW_MORE_PICTURES" +#define IDS_HELP_PINCH_ZOOM_IN "IDS_HELP_BODY_PINCH_OUT_TO_ZOOM_IN" +#define IDS_HELP_PINCH_ZOOM_OUT "IDS_HELP_BODY_PINCH_IN_TO_ZOOM_OUT" #endif // __IVUG_STRING_H__ diff --git a/res/po/.pot b/res/po/.pot new file mode 100755 index 0000000..1f0dd57 --- /dev/null +++ b/res/po/.pot @@ -0,0 +1,142 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-10-12 09:32+0900\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/util/mb_util.c:318 +msgid "IDS_COM_SK_DELETE" +msgstr "" + +#: src/util/mb_util.c:321 +msgid "IDS_COM_POP_CLOSE_A" +msgstr "" + +#: src/util/mb_util.c:474 src/features/slide_view.c:3238 +msgid "Done" +msgstr "" + +#. UI_contextpopup_insert_text( context_popup, 3, _("Message"), _("Email"), _("Bluetooth")); +#: src/util/mb_util.c:812 src/util/mb_util.c:819 +msgid "IDS_COM_BODY_MESSAGE" +msgstr "" + +#: src/util/mb_util.c:813 src/util/mb_util.c:820 +msgid "IDS_COM_BODY_EMAIL" +msgstr "" + +#: src/util/mb_util.c:814 +msgid "IDS_COM_BODY_BLUETOOTH" +msgstr "" + +#. UI_contextpopup_insert_text( context_popup, 2, _("Wallpaper"), _("Caller ID")); +#: src/util/mb_util.c:825 +msgid "IDS_MEDIABR_OPT_WALLPAPER" +msgstr "" + +#: src/util/mb_util.c:826 +msgid "IDS_MEDIABR_OPT2_CALLER_ID" +msgstr "" + +#. struct appdata *pAppData = (struct appdata*)pUserData; +#: video/MpUtil.c:300 video/MpUtil.c:303 video/MpVideoAppCtrl.c:165 +#: video/MpVideoAppCtrl.c:169 +msgid "IDS_COM_BODY_LOW_BATTERY" +msgstr "" + +#: video/MpUtil.c:886 +msgid "IDS_COM_SK_OK" +msgstr "" + +#: video/MpUtil.c:901 src/features/set_as.c:504 +msgid "IDS_IMGE_BUTTON_CANCEL" +msgstr "" + +#: video/MpVideoAppCtrl.c:189 +msgid "IDS_SL_HEADER_CONFIRM" +msgstr "" + +#: video/MpVideoAppCtrl.c:189 video/MpVideoAppCtrl.c:358 +msgid "Current mode is silent mode
Continue play?" +msgstr "" + +#: video/MpVideoAppCtrl.c:358 +msgid "Confirm" +msgstr "" + +#. Popup +#: video/MpVideoAppCtrl.c:1144 +msgid "Bluetooth disconnected" +msgstr "" + +#. 6. +#: video/PlayViewCtrl.c:929 +msgid "IDS_VPL_DETAILS_BACK" +msgstr "" + +#: video/PlayViewCtrl.c:1045 +msgid "pSoftkey, NULL, _("IDS_VPL_OPT_CONNECTED_HOME"), SoftkeyAllshare_cb, pAppData); +#: video/PlayViewCtrl.c:1108 +msgid "IDS_VPL_OPT_SUBTITLES" +msgstr "" + +#: video/PlayViewCtrl.c:1111 +msgid "IDS_VPL_OPT_DETAILS" +msgstr "" + +#. edje_edit_state_text_set(pAppData->pSubtitlePopupEdj, "subtitle_popup_text", "default 0.0", _("IDS_VPL_OPT_DISPLAY_SUBTITLE")); +#: video/PlayViewCtrl.c:1431 video/PlayViewCtrl.c:1583 +msgid "IDS_VPL_OPT_DISPLAY_SUBTITLE" +msgstr "" + +#. chenhanwu +#: src/features/set_as.c:503 +msgid "IDS_COM_SK_DONE" +msgstr "" + +#: src/features/slide_view.c:1952 src/features/slide_view.c:2002 +msgid "Prev" +msgstr "" + +#: src/features/slide_view.c:3242 +msgid "IDS_COM_SK_CANCEL" +msgstr "" diff --git a/res/po/CMakeLists.txt b/res/po/CMakeLists.txt old mode 100644 new mode 100755 index 2b8b7d1..881d566 --- a/res/po/CMakeLists.txt +++ b/res/po/CMakeLists.txt @@ -1,9 +1,7 @@ # for i18n -SET(POFILES ar.po az.po bg.po ca.po cs.po da.po de_DE.po el_GR.po en.po en_PH.po en_US.po -es_ES.po es_MX.po et.po eu.po fi.po fr_CA.po fr_FR.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_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_SG.po zh_TW.po) +#SET(POFILES en_US.po ko_KR.po) +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") @@ -24,5 +22,5 @@ FOREACH(pofile ${POFILES}) ENDFOREACH(pofile) MESSAGE(".mo files: ${moFiles}") -ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles}) +ADD_CUSTOM_TARGET(ivugpo ALL DEPENDS ${moFiles}) diff --git a/res/po/ar.po b/res/po/ar.po old mode 100755 new mode 100644 index 09247df..0d530c4 --- a/res/po/ar.po +++ b/res/po/ar.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "إضافة الى الرئيسية" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "خاص" -msgid "IDS_CAM_BODY_AUTO" -msgstr "تلقائي" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "تغيير الاسم" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "سيتم حذف هذا الفيديو." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "اسم الملف مستخدم بالفعل" + +msgid "IDS_ST_BODY_OFF" +msgstr "غير مفعل" + +msgid "IDS_COM_BODY_DONE" +msgstr "تمت" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "فلاش" +msgid "IDS_COM_SK_STOP" +msgstr "إيقاف" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "تم إلغاء تفعيل %1$s في هذا التطبيق. لتفعيل هذه الوظيفة، انتقل إلى %2$s وحدد هذه الوظيفة، ثم حدد هذا التطبيق." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "موافق" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "تم" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "إلغاء" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "أدخل الاسم" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "لا يوجد اسم" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "يوجد ألبوم واحد فقط." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "يمكنك تحديد ما يصل إلى %d عناصر." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "التفاصيل" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "مسح" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "مسح؟" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "إلغاء" + +msgid "IDS_IV_POP_DELETED" +msgstr "تم المسح." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "المفضلة" + +msgid "IDS_IV_SK_SAVE" +msgstr "حفظ" + +msgid "IDS_IV_POP_SAVED" +msgstr "تم الحفظ." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "الضبط" + +msgid "IDS_IV_BODY_SIZE" +msgstr "الحجم" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "غير معروف" + +msgid "IDS_IV_SK_YES" +msgstr "نعم" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "نسخ إلى الحافظة" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "البعد البؤري" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "تشغيل فلاش" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "إلغاء الفلاش" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "عرض الصور" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "توازن اللون الأبيض" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "جميع الصور" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "تلقائي" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "التوجيه" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "إنشاء ع." +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "تحديد صورة" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "توازن اللون الأبيض" +msgid "IDS_MP_BODY_DURATION" +msgstr "المدة" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "الوقت المتراكم" +msgid "IDS_ST_POP_SET" +msgstr "ضبط" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "إضافة علامة" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "علامة" -msgid "IDS_IV_POP_ADDED" -msgstr "تمت الإضافة" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "إضافة تعليق" -msgid "IDS_IV_BODY_ANY" -msgstr "أي" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "اعرض الوسائط على أجهزة أخرى باستخدام الأجهزة القريبة" -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "الاستخدامات المتوفرة" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "لا تحتوي ملفات الفيديو على معلومات عن الأشخاص فهي لا تدعم وظيفة علامة الوجه." -msgid "IDS_IV_BODY_BASIC" -msgstr "أساسي" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "تتعذر مشاركة هذه الصورة. إنّ المحتوى محميٌّ بـ DRM." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "صورة المتصل" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "يتعذر فتح ملف." -msgid "IDS_IV_BODY_COUNT" -msgstr "العدد" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "قد تختلف معلومات الطقس المسجلة عن حالة الطقس الفعلية بسبب تحديث الفاصل الزمني." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "تاريخ الإنشاء" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "يمكن استخدام المحتوى الشخصي المنسوخ إلى الحافظة لإنشاء محتوى جديد. قد لا يتم إخفاء المحتوى الجديد تلقائيًا." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "الشاشة" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "الصورة صغير جدا." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "أدخل اسم الرمز" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "لا يتم عرض معلومات التاريخ إلا إذا كانت العلامات الأخرى مرئية." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "المدخل خالي" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "انقر مع الاستمرار فوق ‏‫عرض صور مصغرة‬ لتحديد أفضل الصور." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "تنفيذ" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "إعدادات عرض الشرائح" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "تنسيق الملف" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "تعيين خلفية للشاشة الرئيسية وشاشة القفل" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "موقع الملف" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "تعيين هذه الصورة كمعرف للمتصل %s" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "التحويل" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "تعيين كهوية المتصل" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "خلفية الشاشة الرئيسية" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "جاري الإرسال..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "غير ممكن" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "تحديد جهاز" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "فردي" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "تمت إزالة بطاقة SD." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "الفترة" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "تم رفض الإذن." -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "ملف صورة غير صالح" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "لا يوجد موقع" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "المدى" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "لم يتم وضع علامات على أي وجوه. ضع علامات على الوجوه في الصورة." -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "المواقع" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "لم يتم اكتشاف أي وجوه." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "خلفية شاشة القفل" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "لا يوجد ذاكرة كافية. امسح بعض العناصر." -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "خط الطول" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "فشل الاتصال بالشبكة." msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "تم بلوغ أقصى عدد من الأحرف (%d)" +msgstr "تم بلوغ أقصى عدد من الأحرف (%d)." -msgid "IDS_IV_BODY_N_A" -msgstr "غير متاح" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "ملف صورة غير صالح." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "علامة جديدة" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "الفلاش مستخدم" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "تم رفض الإذن" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "ليس تنسيق الملف مدعومًا." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "ممكن" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "المدخل خالي." -msgid "IDS_IV_BODY_PRINT" -msgstr "طباعة" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "أدخل اسم الرمز." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "طباعة عبر البلوتوث" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "تفعيل التحديث التلقائي في خلفية الطقس للاطلاع على علامات الطقس" -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "الدقة" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "تم التنزيل" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "حالة الحقوق" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "أفضل صورة" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "تمت إزالة بطاقة SD" +msgid "IDS_IV_POP_ADDED" +msgstr "تمت الإضافة." -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "تحديد جهاز" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "كتابة تعليق‬" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "اسم الخادم" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "استخدام الحركة" -msgid "IDS_IV_OPT_SET_AS" -msgstr "تعيين" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "غير المفضلة" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "تعيين خلفية للشاشة الرئيسية وشاشة القفل" +msgid "IDS_IV_OPT_TRIM" +msgstr "شذب" -msgid "IDS_IV_OPT_SHARE" -msgstr "مشاركة" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "وضع علامة على الوجه" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "العلامة المساعدة" + +msgid "IDS_IV_OPT_TAG" +msgstr "علامة" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "بدء عرض الشرائح" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "عرض الصور" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "عداد محدد زمنيا" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "عرض شرائح" -msgid "IDS_IV_OPT_TRIM" -msgstr "شذب" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "عرض العناصر" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "غير محدود" +msgid "IDS_IV_OPT_SHARE" +msgstr "مشاركة" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "الصلاحية" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "تدوير لليمين" -msgid "IDS_IV_BODY_VENDOR" -msgstr "التاجر" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "تدوير لليسار" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "إزالة العلامة" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "إنعاش" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "طباعة عبر البلوتوث" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "اكتشاف يدوي" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "خلفية ‏‫شاشة القفل والشاشة الرئيسية‬" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "العناصر المخفية" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "الحصول على الاتجاهات" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "نقل الملف" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "عدم العرض مرة أخرى" +msgid "IDS_IV_OPT_ERASER" +msgstr "الممحاة" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "انقر مع الاستمرار فوق نقطتين ثم قم بإمالة الجهاز للخلف والأمام لتصغير الشاشة أو تكبيرها" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "تعديل علامة الطقس" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "تعديل العلامة" + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "تعديل التعليق" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "حذف التعليق‬" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "نسخ إلى الحافظة" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "معلومات الاتصال" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "سحابة" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "مشاركة صورة الصديق" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "أفضل وجه" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "كملفات فيديو" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "كملفات صور" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "الصور المتحركة" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "إضافة علامة الطقس" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "إضافة اسم" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "إضافة تعليق" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "موسيقى عرض الشرائح" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "مشاركة صوت والتقاط صور" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "تعيين" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "إرسال هذه الصورة إلى" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "تحديد جهة اتصال لمشاركتها" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "سرعة العرض" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "خلفية شاشة القفل" msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "تعرف على الإمالة" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "خلفية الشاشة الرئيسية" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "تعديل علامة الطقس" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "تعديل صور متلاحقة" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "الأجهزة المتاحة" + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "كافة الألبومات" -msgid "IDS_IV_OPT_TAG" -msgstr "علامة" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "إنشاء علامة" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "خلفية ‏‫شاشة القفل والشاشة الرئيسية‬" +msgid "IDS_IV_BUTTON_STOP" +msgstr "إيقاف" -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "استخدام الحركة" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "بحث" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "شاشتا القفل والرئيسية" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "يمكنك مشاركة الوسائط مع أجهزة أخرى باستخدام الأجهزة القريبة." -msgid "IDS_IV_BODY_CROP" -msgstr "قص" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "مع %s و%d آخرين" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "الشاشة الرئيسية" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "مع %s" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "قفل الشاشة" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "توازن اللون الأبيض" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "تدوير لليسار" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "الطقس" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "تدوير لليمين" +msgid "IDS_IV_BODY_WEATHER" +msgstr "الطقس" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "اكتشاف يدوي" +msgid "IDS_IV_BODY_VENDOR" +msgstr "التاجر" -msgid "IDS_IV_BODY_ME" -msgstr "تعليقاتي" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "الصلاحية" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "تعديل العلامة" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "غير محدود" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "إزالة العلامة" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "يتعذر تحميل الصورة." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "عداد محدد زمنيا" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "انقر على الوجوه لعرض معلومات حول الأشخاص" + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "انقر مع الاستمرار فوق نقطتين ثم قم بإمالة الجهاز للخلف والأمام لتصغير الشاشة أو تكبيرها." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "يوم مشمس" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "يوم ثلجي" msgid "IDS_IV_BODY_SHARE_VIA" msgstr "مشاركة عبر" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "لا ترسل" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "اسم الخادم" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "مشاركة صورة الصديق" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "حدد منطقة ما من أجل اقتصاص الصورة." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "ترميز الوجه" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "ستتم طباعة المنطقة المحددة." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "عرض الصور" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "سيتم تطبيق المنطقة المحددة على الخلفية." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "سيتم تطبيق المنطقة المحددة على صورة جهة الاتصال." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "حالة الحقوق" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "الدقة" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "إزالة من المفضلة" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "يوم ممطر" + +msgid "IDS_IV_BODY_PRINT" +msgstr "طباعة" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "ممكن" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "أشخاص" + +msgid "IDS_IV_BODY_N_A" +msgstr "غير متاح" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "بلا علامة" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "علامة جديدة" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" msgstr "الأجهزة المجاورة" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "تحديد منطقة ما من أجل اقتصاص الصورة" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "جهازي" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "سيتم تطبيق المنطقة المحددة على الخلفية" +msgid "IDS_IV_BODY_MODEL" +msgstr "الموديل" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "ستتم طباعة المنطقة المحددة" +msgid "IDS_IV_BODY_ME" +msgstr "أنا" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "يمكنك مشاركة الوسائط مع أجهزة أخرى باستخدام الأجهزة القريبة" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "المصنع" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "سيتم تطبيق المنطقة المحددة على صورة جهة الاتصال" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "خط الطول" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "شاشة القفل" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "الموقع" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "الموقع" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "المواقع" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "الموقع" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "المدى" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "في %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "الفترة" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "فردي" + +msgid "IDS_IV_BODY_IN" +msgstr "تكبير" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "غير ممكن" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "الشاشة الرئيسية" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "شاشتا القفل والرئيسية" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "التحويل" + +msgid "IDS_IV_BODY_FLASH" +msgstr "فلاش" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "اسم الملف" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "موقع الملف" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "تنسيق الملف" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "زمن التعرض" -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "تنفيذ" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "قم بتفعيل علامات GPS في الكاميرا للاطلاع على علامات الموقع." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "قم بتفعيل التحديث التلقائي في التطبيق المصغر الخاص بالطقس للإطلاع على علامات الطقس" + +msgid "IDS_IV_BODY_DURATION" +msgstr "المدة" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "معلومات DRM" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "عدم العرض مرة أخرى" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "عدم السؤال مرة أخرى" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "الشاشة" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "تاريخ الإنشاء" + +msgid "IDS_IV_BODY_CROP" +msgstr "قص" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "إنشاء ع." + +msgid "IDS_IV_BODY_COUNT" +msgstr "العدد" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "يوم غائم" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "ليلة صافية" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "صورة المتصل" + +msgid "IDS_IV_BODY_BASIC" +msgstr "أساسي" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "الاستخدامات المتوفرة" + +msgid "IDS_IV_BODY_AUTO" +msgstr "تلقائي" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "قم بتطبيق سمة لون مطابقة للتطبيقات." + +msgid "IDS_IV_BODY_APERTURE" msgstr "الفتحة" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "التوجيه" +msgid "IDS_IV_BODY_ANY" +msgstr "أي" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "المصنع" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "إضافة إلى المفضلة" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "البعد البؤري" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "الوقت المتراكم" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "التوجيه" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "تم الوصول إلى أقصى عدد من الحروف." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "الموديل" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "فشل" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "إضافة اسم" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "تعيين كهوية المتصل" +msgid "IDS_ST_BODY_MB" +msgstr "م.ب" + +msgid "IDS_ST_BODY_KB" +msgstr "ك.ب" + +msgid "IDS_ST_BODY_GB" +msgstr "ج.ب" + +msgid "IDS_ST_BODY_EDIT" +msgstr "تعديل" + +msgid "IDS_ST_BODY_DATE" +msgstr "التاريخ" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "حسابات" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "تنزيل" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "بعد تحميل الصور إلى Dropbox، يتم عرض العناصر." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "جاري التنزيل..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "إضافة صور" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "بعد تحديد الصور كمفضلة، يتم عرضها." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "هل تريد إزالة التعرف على الوجوه؟" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "تعيين‬ اسم" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "تأكيد على أنه %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "التخطيط" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "تمت إضافة %d صور" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "سيتم إلغاء الألبوم." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "جار بدء التنزيل..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "لا يوجد ذاكرة كافية. امسح بعض العناصر." + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "وحدة التخزين الخاصة" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "اسحب هنا." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "انقر لإضافة صور." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "الملف موجود بالفعل." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "سيتم حذف هذا العنصر." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "بعد تحميل الصور إلى Facebook، يتم عرض العناصر." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "رمز غير صحيح." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "يدوي" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "جار المعالجة..." + +msgid "IDS_ST_BODY_OK" +msgstr "موافق" + +msgid "IDS_ST_SK_RENAME" +msgstr "تغيير الاسم" + +msgid "IDS_COM_BODY_NONE" +msgstr "لا شيء" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "تم تحديد %d" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "وحدة تخزين الجهاز" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "بطاقة SD" + +msgid "IDS_ST_BODY_SPEED" +msgstr "السرعة" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "موسيقى الخلفية" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "ثانية" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "٣ ثوان" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "٥ ثواني" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "موقع وحدة التخزين" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "حجم الملف" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "سيتم حذف ألبوم واحد" + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "حنين للماضي" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "عدم الوضوح" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "توهج خافت‬" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "حفظ التغييرات" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "هل تريد حفظ التغييرات أم حذفها؟" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "تجاهل" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "حفظ" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "‏‫عتيق" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "سطوع الشمس" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "صورة قديمة" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "ماض" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "تدرج الرمادي" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "بني داكن" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "ألوان باهتة" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "إنارة ساقطة" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "وهج أصفر" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "زيادة الحدة" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "تخطيط" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "ألوان معكوسة" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "رسم زيتي" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "تدرج الألوان" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "رسوم متحركة" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "فن البوب" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "قلم سحري" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "تم الإضافة إلى لائحة المنع." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "تدوير" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "ما من مساحة كافية على وحدة تخزين الجهاز. انتقل إلى الضبط > الطاقة ووحدة التخزين > وحدة التخزين، ثم احذف بعض الملفات وحاول مرة أخرى." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "الفاصل الزمني بين الشرائح" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "الفاصل الزمني بين الشرائح" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "صورة جهة الاتصال" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "ما من حد" + +msgid "IDS_IV_OPT_EDIT" +msgstr "تعديل" + +msgid "IDS_IV_OPT_RENAME" +msgstr "إعادة تسمية" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "ضبط كـ" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "تنزيل" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "إعادة تسمية" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "إعادة تسمية" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "إعادة تسمية" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "يوجد ملف يحمل هذا الاسم في ملف الوجهة." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "استبدال" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "ضبط كـ" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "خلفية الشاشة الرئيسية" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "خلفية شاشة القفل" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "خلفيات الشاشة الرئيسية وشاشة القفل" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "التفاصيل" + +msgid "IDS_IV_BODY_DATE" +msgstr "التاريخ" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "يتعذر حفظ الصورة" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "ما من مساحة كافية (%d ميجابايت) على وحدة تخزين الجهاز." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "‏‫لا توجد مساحة كافية (%d ميجابايت‬) على بطاقة SD" + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "احذف بعض الملفات وحاول مرة أخرى." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "حفظ الصورة" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "ما من مساحة كافية (متبقٍ %d ميجابايت) في وحدة تخزين الجهاز. سيتم حفظ هذا العنصر على بطاقة SD." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "ما من توجد مساحة كافية (متبقٍ %d ميجابايت) على بطاقة SD. سيتم حفظ هذا العنصر في وحدة تخزين الجهاز." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "سيتم حذف هذه الصورة." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "إيقاف" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "حذف" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "خطأ" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "تحديد المنطقة" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "تم" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "فشل تحميل هذا العنصر." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "نيجاتيف" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "تم" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "إلغاء" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "نيجاتيف" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "يتعذر فتح الاستوديو." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "جاري التحميل..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "جاري التحميل ..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "فشل التحميل." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "تحميل الصورة..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "تجاهل" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "يتعذر التنزيل" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "بيانات الهاتف المحمول متوقفة عن التشغيل. اتصل بشبكة Wi-Fi أو قم بتشغيل بيانات الهاتف المحمول وحاول مرة أخرى." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "لا ترسل" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "ثانية واحدة" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d ثانية" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "مؤثر" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "التأثيرات" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "تدفق" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "تلاشي" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "لم يتم اكتشاف وجه" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "تقريب" diff --git a/res/po/az.po b/res/po/az.po old mode 100755 new mode 100644 index 601bd8b..cf3a37e --- a/res/po/az.po +++ b/res/po/az.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Başlanğıca əlavə et" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Şəxsi" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Avtomatik" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Adını dəyişdir" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Bu video silinəcək." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Fayl adı artıq istifadədədir" + +msgid "IDS_ST_BODY_OFF" +msgstr "Söndür" + +msgid "IDS_COM_BODY_DONE" +msgstr "Yerinə yetirildi" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Parlaq işıq" +msgid "IDS_COM_SK_STOP" +msgstr "Dayandır" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "Bu proqtamda %1$s qeyri-aktivdir. Bu funksiyanı aktivləşdirmək üçün %2$s keçin və bu funksiyanı, sonra isə bu proqramı seçin" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Tamam" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Ləğv et" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Xahiş olunur adı daxil edin" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Ad yoxdur" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Yalnız bir albom mövcuddur." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Siz maksimum %d element seçə bilərsiniz." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Təfsilatlar" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Sil" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Silinsin?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Ləğv et" + +msgid "IDS_IV_POP_DELETED" +msgstr "Silindi." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Sevimli" + +msgid "IDS_IV_SK_SAVE" +msgstr "Yaddaşa yaz" + +msgid "IDS_IV_POP_SAVED" +msgstr "Yaddaşa yazıldı." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Parametrlər" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Ölçü" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Naməlum" + +msgid "IDS_IV_SK_YES" +msgstr "Bəli" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Mübadilə buferinə köçür" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Linzanın uzunluğu" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Flaş yandırılıb" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Flash off" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Şəkil göstərici" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Ağın balansı" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Bütün şəkillər" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Avtomatik" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "İsitqamət" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Et.yaradın" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Şəkil seç" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Ağ balans" +msgid "IDS_MP_BODY_DURATION" +msgstr "Davam etmə müddəti" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Yığılmış vaxt" +msgid "IDS_ST_POP_SET" +msgstr "Qur" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Et.əlv edn" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Yarlıklar" -msgid "IDS_IV_POP_ADDED" -msgstr "Əlavə edildi" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Şərh əlavə edin" -msgid "IDS_IV_BODY_ANY" -msgstr "Hər hansı" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Yaxınlıqdakı cihazlardan istifadə edərək medianıza digər cihazlarda baxın." -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "İstifadəsi mümkün olanlar" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Video fayllar insanlar haqqında məlumat ehtiva etmir, belə ki onlar üzün etiketlənməsi funksiyasını dəstəkləmir." -msgid "IDS_IV_BODY_BASIC" -msgstr "Əsas" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Bu şəkli paylaşmaq mümkün deyil. Bu, DRM ilə qorunur." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Zəng edənin şəkli" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Faylı açmaq mümkün deyildir." -msgid "IDS_IV_BODY_COUNT" -msgstr "Say" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Qeyd olunmuş hava məlumatı yenilənmə intervalına görə mövcud havadan fərqli ola bilər." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Tarix yaradıldı" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Mübadilə buferinə sürəti çıxarılmış şəxsi məzmun yeni məzmunu yaratmaq üçün istifadə edilə bilər. Sizin yeni məzmununuz avtomatik olaraq gizlədilməyəcəkdir." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Displey" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Şəkil çox kiçikdir." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Etiket adı daxil edin" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Tarixlə bağlı məlumat yalnız digər teqlər göründükdən sonra görünür." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Boş qeyd" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Ən yaxşı şəkilləri seçmək üçün rəsmciyə vurub saxlayın." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "İcra et" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Slaydşou parametrləri" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Faylın formatı" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Əsas ekran üçün divar kağızını qur və ekranı kilidlə" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Faylın yeri" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Bu şəkil %s-in zəng ID-si kimi qurulsun?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Göndərilir" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Zəng edənin kimliyi kimi təyin et" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Əsas ekranin divar kağızı" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Göndərilir..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Mümkün deyil" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Qurğu seç" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Fərdi" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD kart çıxarılmışdır." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "İnterval" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "İcazə rədd edildi." -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Şəkil faylı səhvdir" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Yer yoxdur" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "En" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Heç bir üz etiketlənməyib. Şəkildəki üzləri etiketlə" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Yerlər" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Heç bir üz aşkarlanmadı." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Ekranin divar kəğizi kilidlə" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Yaddaş kifayət etmir. Xahiş olunur bəzi elementləri silin" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Uzunluq" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Şəbəkə bağlantısı alınmadı." msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Simvolların sayı maksimuma (%d) çatıb" +msgstr "Simvolların sayı maksimuma (%d) çatıb." -msgid "IDS_IV_BODY_N_A" -msgstr "M/D" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Şəkil faylı səhvdir." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Yeni etiket" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Flaş istifadə edildi" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "İcazə rədd edildi" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Fayl formatı dəstəklənmir." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Mümkündür" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Boş qeyd." -msgid "IDS_IV_BODY_PRINT" -msgstr "Çap et" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Etiket adı daxil edin." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Bluetooth vasitəsilə çap et" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Hava teqlərini görmək üçün hava divar kağızında avtomatik təzələməni aktivləşdirin." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Rezolyusiya" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Yükləmə tamamlandı" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Düzgün status" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Ən yaxşı şəkil" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD kart çıxarılmışdır" +msgid "IDS_IV_POP_ADDED" +msgstr "Əlavə edildi." -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Qurğu seç" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Başlıq yazın" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Server adı" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Hərəkətdən istifadə edin" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Qur" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Sevimli deyil" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Əsas ekran üçün divar kağızını qur və ekranı kilidlə" +msgid "IDS_IV_OPT_TRIM" +msgstr "Nizamla" -msgid "IDS_IV_OPT_SHARE" -msgstr "Paylaş" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Üzü etiketlə" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Dosta teq əlavə et" + +msgid "IDS_IV_OPT_TAG" +msgstr "Etiket" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Slayd nümayişini dayandır" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "Slayd göstərmə" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Məhdud say" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Slayd nümayişi" -msgid "IDS_IV_OPT_TRIM" -msgstr "Nizamla" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Elementləri göstər" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Limitsiz" +msgid "IDS_IV_OPT_SHARE" +msgstr "Paylaş" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Etibarlılıq" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Sağa döndər" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Tədarükçü" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Sola döndər" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Etiketi silin" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Təzələ" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Bluetooth vasitəsilə çap et" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Mexaniki aşkarla" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Başlanğıc və kilid ekranı divar kağızı" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Gizli elementlər" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "İstiqamətlər əldə edin" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "Faylın köçürülməsi" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Bir daha göstərmə" +msgid "IDS_IV_OPT_ERASER" +msgstr "Pozan" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "İki nöqtədə vurub saxlayın daha sonra ekranı böyütmək və ya kiçiltmək üçün irəli və geri əyin" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Hava etik-i red. et" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Et.red edn" + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Başlığı redaktə et" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Şəkili sil" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Mübadilə buferinə köçür" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Bağlantı məlumatı" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Dostun şəklini paylaş" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Ən yaxşı üz" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Video faylları kimi" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Şəkil faylları kimi" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Animasiyalı şəkil" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Hava etiketi əlavə et" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Ad əlavə et" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Başlıq əlavə et" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Slayd nümayişi musiqisi" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Səs və şəkilləri paylaş" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Qur" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Bu şəkli göndər" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Paylaşmaq üçün əlaqə seç" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Göstərilmə sürəti" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Ekranin divar kəğizi kilidlə" msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Çevirmə haqqıda öyrənin" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Əsas ekranin divar kağızı" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Hava etik-i red. et" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Seriyalı şək red ed" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Mümkün cihazlar" + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "Bütün albomlar" -msgid "IDS_IV_OPT_TAG" -msgstr "Etiket" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Etiket əlavə edin" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Başlanğıc və kilid ekranı divar kağızı" +msgid "IDS_IV_BUTTON_STOP" +msgstr "Dayndir" -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Hərəkətdən istifadə edin" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Axtarın" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Əsas və kilid ekranları" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Siz yaxınlıqdakı cihazlardan istifadə edərək medianı digər cihazlarla paylaşa bilərsiniz." -msgid "IDS_IV_BODY_CROP" -msgstr "Yığ" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "%s və daha %d nəfər ilə" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Əsas ekran" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "%s ilə" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Ekranı kilidləyin" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Ağın balansı" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Sola döndər" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Hava" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Sağa döndər" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Hava" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Mexaniki aşkarla" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Tədarükçü" -msgid "IDS_IV_BODY_ME" -msgstr "Mən" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Etibarlılıq" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Et.red edn" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Limitsiz" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Etiketi silin" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Şəkli yükləmək mümkün deyil." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Məhdud say" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "İnsanlar haqqında məlumata baxmaq üçün üzlərə vurun." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "İki nöqtədə vurub saxlayın daha sonra ekranı böyütmək və ya kiçiltmək üçün irəli və geri əyin." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Günəşli gün" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Qarlı gün" msgid "IDS_IV_BODY_SHARE_VIA" msgstr "Paylaş" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Göndərmə" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Server adı" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Dostun şəklini paylaş" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Şəkli kəsmək üçün sahəni seçin." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Simanın etiketlənməsi" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Seçilmiş sahə çap ediləcək." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Şəkil göstərici" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Seçilmiş sahə divar kağızına tətbiq ediləcək." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Seçilmiş sahə kontakt şəklinə tətbiq ediləcək." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Düzgün status" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Rezolyusiya" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Sevimlilərdən sil" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Yağışlı gün" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Çap et" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Mümkündür" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "İnsanlar" + +msgid "IDS_IV_BODY_N_A" +msgstr "M/D" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Etiket yoxdur" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Yeni etiket" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" msgstr "Yaxınlıqdakı cihazlar" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Şəkli kəsmək üçün sahəni seçin" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Mənim qurğum" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Seçilmiş sahə divar kağızına tətbiq ediləcək" +msgid "IDS_IV_BODY_MODEL" +msgstr "Model" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Seçilmiş sahə çap ediləcək" +msgid "IDS_IV_BODY_ME" +msgstr "Mən" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Siz yaxınlıqdakı cihazlardan istifadə edərək medianı digər cihazlarla paylaşa bilərsiniz" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "İstehsalçı" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Seçilmiş sahə kontakt şəklinə tətbiq ediləcək" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Uzunluq" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Ekran kilidi" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Yeri" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Məkan" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Yerlər" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Yeri" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "En" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "%s-də" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "İnterval" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Fərdi" + +msgid "IDS_IV_BODY_IN" +msgstr "Böyüt" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Mümkün deyil" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Əsas ekran" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Əsas və kilid ekranları" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Göndərilir" + +msgid "IDS_IV_BODY_FLASH" +msgstr "İşartı menyu" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Fayl adı" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Faylın yeri" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Faylın formatı" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "Nümayiş vaxtı" -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "İcra et" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Məkan teqlərini görmək üçün Kamerada GPS teqlərini aktivləşdirin." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Hava teqlərini görmək üçün hava piktoqramında avtomatik təzələməni aktivləşdirin." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Davam etmə müddəti" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM məlumatı" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Bir daha göstərmə" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Təkrar soruşma" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Displey" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Tarix yaradıldı" + +msgid "IDS_IV_BODY_CROP" +msgstr "Yığ" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Etiket yarat" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Say" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Buludlu gün" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Aydın gecə" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Zəng edənin şəkli" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Əsas" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "İstifadəsi mümkün olanlar" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Avtomatik" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Proqramlara uyğun rəng mövzuları tətbiq edin." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Apertura" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "İsitqamət" +msgid "IDS_IV_BODY_ANY" +msgstr "Hər hansı" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "İstehsalçı" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Sevimlilərə əlavə et" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Linzanın uzunluğu" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Yığılmış vaxt" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "İsitqamət" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Simvol sayı maksimuma çatıb." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Model" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Mümkün olmadı" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Ad əlavə et" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Zəng edənin kimliyi kimi təyin et" +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "QB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Redaktə et" + +msgid "IDS_ST_BODY_DATE" +msgstr "Tarix" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Hesablar" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Yüklə" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Şəkilləri Dropbox-a yüklədikdən sonra elementlər göstəriləcək." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Yüklənmə..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Şəkillər əlavə et" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Şəkilləri sevimli olaraq etiketlədikdən sonra şəkillər göstəriləcək." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Üz təyini silinsin?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Adı təyin et" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "%s kimi təsdiq et" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Tərtibat" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d şəkil əlavə edildi" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Albom ləğv ediləcək." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Yükləmə başladılır..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Yaddaş kifayət etmir. Xahiş olunur bəzi elementləri silin" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Şəxsi yaddaş" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Bura sürüklə." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Təsvir əlavə etmək üçün vurun." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Fayl artıq mövcuddur." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Bu element silinəcək." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Şəkilləri Facebook-a yüklədikdən sonra elementlər göstəriləcək." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Yanlış simvol." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Ələ işlət" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "İşlənir..." + +msgid "IDS_ST_BODY_OK" +msgstr "Oldu" + +msgid "IDS_ST_SK_RENAME" +msgstr "Adını dəyişdir" + +msgid "IDS_COM_BODY_NONE" +msgstr "Yoxdur" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d seçilmişdir" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Cihazın yaddaşı" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD kart" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Sürət" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Fon musiqisi" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 san" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 san" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 san" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Yaddaşın yeri" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Fayl ölçüsü" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 albom silinəcək." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostolgiya" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Bulanıq" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Yüngül parıltı" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Dəyişiklikləri yadda saxla" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Dəyişikliklər saxlansın və ya ləğv edilsin?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Ləğv et" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Saxla" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Şərab" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Günəş işığı" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Köhnə foto" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Boz şkala" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sepia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Solğun rənglər" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "İşıqlanma" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Sarı Parıltı" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Kəskin" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Eskiz" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Çevrilmiş Rənglər" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Yağlı Boya" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Afişa" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Cizgi filmi" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Pop Sənəti" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Sehirli Qələm" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Blok siyahısına əlavə edilib." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Döndər" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Cihazınızın yaddaşında kifayət qədər yer yoxdur. Parametrlər > Enerji və yaddaş > Yaddaş seçin və bir neçə faylı silərək yenidən cəhd edin." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Slayd intervalı" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Slayd intervalı" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Kontaktın şəkli" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Yoxdur" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Redaktə et" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Adını dəyiş" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Fərqli qur" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Yüklə" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Adını dəyiş" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Adını dəyiş" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Adı dəy" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Təyinat qovluğunda artıq bu adda fayl mövcuddur." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Əvəz et" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Fərqli qur" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Əsas ekranın divar kağızı" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Kilid ekranının divar kağızı" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Əsas və kilid ekr divar kağz" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Təfsilatlar" + +msgid "IDS_IV_BODY_DATE" +msgstr "Tarix" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Şəkli saxlamaq mümkün deyil" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Cihazın yaddaşında kifayət qədər yer (%d MB) yoxdur." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "SD kartınızda kifayət qədər yer (%d MB) yoxdur." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Bəzi faylları silin və yenidən cəh edin." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Şəkli saxla" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Cihazın yaddaşında kifayət qədər yer (%d MB qalıb) yoxdur. Bu element SD kartınızın yaddaşında saxlanılacaq." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "SD kartın yaddaşında kifayət qədər yer (%d MB qalır) yoxdur. Bu element cihazınızın yaddaşında saxlanacaq." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Bu təsvir silinəcək." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Dayan" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Sil" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Xəta" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Ərazi seç" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Tamam" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Bu elementi yükləmək olmadı." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Neqativ" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "HAZIR" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "LƏĞV ET" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Neqativ" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Qalereyanı açmaq mümkün olmadı." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Yüklənir..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Yüklənir..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Yükləmə baş tutmadı." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Şəkil yüklənir..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Söndür" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Yükləmək mümkün deyil" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobil tarif söndürüldü. Wi-Fi şəbəkəsinə qoşulun və ya Mobil tarifi aktivləşdirin və yenidən cəhd edin." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Göndərmə" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 saniyə" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d saniyə" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Effekt" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Effektlər" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Axın" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Solğunlaşdır" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Üz göstərilmir" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Miqyasını artır" diff --git a/res/po/bg.po b/res/po/bg.po old mode 100755 new mode 100644 index 27790b8..8bf6b4a --- a/res/po/bg.po +++ b/res/po/bg.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Добави към дом." +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Лична" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Авто" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Преименуване" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Този видеоклип ще бъде изтрит." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Името на файла вече се използва." + +msgid "IDS_ST_BODY_OFF" +msgstr "Изключено" + +msgid "IDS_COM_BODY_DONE" +msgstr "Готово" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Светкавица" +msgid "IDS_COM_SK_STOP" +msgstr "Стоп" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s е деактивирано в това приложение. За да активирате тази функция, отидете на %2$s, изберете тази функция и след това изберете това приложение." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Готово" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Отказ" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Въведете име" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Без име" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Има само един албум." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Можете да изберете до %d елемента." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Детайли" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Изтриване" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Изтриване?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Отказ" + +msgid "IDS_IV_POP_DELETED" +msgstr "Изтрито." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Любими" + +msgid "IDS_IV_SK_SAVE" +msgstr "Запази" + +msgid "IDS_IV_POP_SAVED" +msgstr "Записан." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Настройки" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Размер" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Няма информация" + +msgid "IDS_IV_SK_YES" +msgstr "Да" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Копирай в клипборда" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Фокусно разстояние" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Светкавица вкл." -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Светкавица изкл." +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Програма за преглед на изображения" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Баланс на бялото" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Всички снимки" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Авто" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Ориентация" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Създ. таг" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Изберете картина" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Баланс на бялото" +msgid "IDS_MP_BODY_DURATION" +msgstr "Времетраене" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Натрупано време" +msgid "IDS_ST_POP_SET" +msgstr "Настрой" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Добави таг" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Тагове" -msgid "IDS_IV_POP_ADDED" -msgstr "Добавен" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Добави коментар" -msgid "IDS_IV_BODY_ANY" -msgstr "Всеки" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Прегледайте вашата мултимедия на други устройства, като използвате устройства наблизо." -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Налични употреби" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Видео файловете не съдържат информация за хората, тъй като не поддържат функцията за отбелязване на лица." -msgid "IDS_IV_BODY_BASIC" -msgstr "Базово" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Това изображение не може да се сподели. То е защитено с DRM." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Изобр. повикващ" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Файлът не може да се отвори." -msgid "IDS_IV_BODY_COUNT" -msgstr "Броене" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Записаната информация за времето може да е различна от действителното време поради интервала на актуализиране." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Дата на създаване" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Личното съдържание, копирано в клипборда, ще се използва за създаване на ново съдържание. Новото ви съдържание може да не се скрие автоматично." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Дисплей" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Изображението е твърде малко." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Въведете име на таг" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Информацията за датата се показва само когато се виждат други тагове." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Празен запис" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Чукнете и задръжте миниатюрите, за да изберете най-добрите снимки." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Изпълни" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Настройки на слайдшоу" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Формат на файла" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Задаване на тапет за началния екран и екрана за заключване" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Местоположение на файла" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Задаване на тази снимка като ИД на повикващ за %s?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Препращане" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Задаване като идентификация на обаждащия се" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Тапет начален екран" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Изпращане..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Невъзможно" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Избор на устр-во" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Индивидуален" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD картата е извадена." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Интервал" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Отказано разрешение." -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Невалиден файл на изображение" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Няма местоположение" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Геогр. ширина" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Няма отбелязани с таг лица. Отбележете лица с таг в снимката" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Местоположения" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Няма разпознати лица." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Тапет заключен екран" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Няма достатъчно памет. Изтрийте някои елементи" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Геогр. дължина" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Връзката с мрежата е неуспешна." msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Достигнат е максималният брой знаци (%d)" +msgstr "Достигнат е максималният брой знаци (%d)." -msgid "IDS_IV_BODY_N_A" -msgstr "н.д." +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Невалиден файл на изображение." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Нов таг" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Със светкавица" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Отказано разрешение" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Файловият формат не се поддържа." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Lъзможно" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Празен запис" -msgid "IDS_IV_BODY_PRINT" -msgstr "Отпечатаване" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Въведете име на таг." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Печат чрез Bluetooth" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Активирайте автоматично опресняване в тапета с времето, за да видите тагове за времето." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Разделителна способност" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Изтеглянето завършено" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Състояние на правата" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Най-добра снимка" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD картата е извадена" +msgid "IDS_IV_POP_ADDED" +msgstr "Добавен." -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Избор на устр-во" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Напишете надпис" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Име на сървър" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "С движение" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Задаване като" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Непредпочитано" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Задаване на тапет за началния екран и екрана за заключване" +msgid "IDS_IV_OPT_TRIM" +msgstr "Орязване" -msgid "IDS_IV_OPT_SHARE" -msgstr "Споделям" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Отбел. на лице с таг" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Отбелязване на приятел с таг" + +msgid "IDS_IV_OPT_TAG" +msgstr "Таг" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Започване на слайдшоу" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "Слайдшоу" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Отброяване по време" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Слайдшоу" -msgid "IDS_IV_OPT_TRIM" -msgstr "Орязване" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Показване на елементите" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Неограничен" +msgid "IDS_IV_OPT_SHARE" +msgstr "Споделям" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Валидност" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Завъртане надясно" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Доставчик" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Завъртане наляво" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Премахни тага" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Опресняване" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Печат чрез Bluetooth" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Ръчно откриване" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Тапет на началния екран и на заключен екран" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Скрити елементи" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Получаване на указания" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "Прехвърляне на файл" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Не показвай отново" +msgid "IDS_IV_OPT_ERASER" +msgstr "Гума" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Чукнете и задръжте в две точки, след което наклонете устройството напред-назад, за да намалите или увеличите екрана" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Редакт. етик. за вр." + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Редакт.таг" + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Редактиране на надпис" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Изтриване на надпис" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Копирай в клипборда" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Инфо за връзка" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Облак" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Споделяне на снимки с приятели" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Най-добро лице" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Като видео файлове" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Като файлове с изображения" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Анимирана снимка" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Добав. етикет за времето" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Добавяне на име" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Добавяне на надпис" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Музика за слайдшоу" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Сподели звук и снимки" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Задаване като" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Изпр. тази снимка до" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Изберете запис за споделяне" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Скорост на възпроизвеждане" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Тапет заключен екран" msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Научете за накланянето" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Тапет начален екран" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Редакт. етик. за вр." + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Редактир. серийна снимка" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Достъпни устройства" + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "Всички албуми" -msgid "IDS_IV_OPT_TAG" -msgstr "Таг" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Добави таг" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Тапет на началния екран и на заключен екран" +msgid "IDS_IV_BUTTON_STOP" +msgstr "Стоп" -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "С движение" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Сканиране" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Начален и заключен екран" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Можете да споделите мултимедията си с други устройства, като използвате устройства наблизо." -msgid "IDS_IV_BODY_CROP" -msgstr "Изрязване" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "С %s и %d други" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Начален екран" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "С %s" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Заключен екран" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Баланс на бялото" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Завъртане наляво" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Време" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Завъртане надясно" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Време" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Ръчно откриване" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Доставчик" -msgid "IDS_IV_BODY_ME" -msgstr "Мен" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Валидност" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Редакт.таг" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Неограничен" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Премахни тага" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Невъзможно зареждане на снимката." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Отброяване по време" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Чукнете лицата, за да видите информация за хората." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Чукнете и задръжте в две точки, след което наклонете устройството напред-назад, за да намалите или увеличите екрана." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Слънчев ден" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Снежен ден" msgid "IDS_IV_BODY_SHARE_VIA" msgstr "Споделяне чрез" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Не изпращай" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Име на сървър" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Споделяне на снимки с приятели" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Изберете област, за да изрежете снимката." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Маркиране на хора в снимки" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Избраната област ще бъде отпечатана." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Програма за преглед на изображения" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Избраната зона ще бъде приложена към тапета." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Избраната зона ще бъде приложена към снимката на записа." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Състояние на правата" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Разделителна способност" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Премахване от предпочитаните" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Дъждовен ден" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Отпечатване" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Възможно" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Хора" + +msgid "IDS_IV_BODY_N_A" +msgstr "н.д." + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Няма таг" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Нов таг" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" msgstr "Устройства наблизо" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Изберете област, за да изрежете снимката" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Моето устройство" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Избраната зона ще бъде приложена към тапета" +msgid "IDS_IV_BODY_MODEL" +msgstr "Модел" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Избраната област ще бъде отпечатана" +msgid "IDS_IV_BODY_ME" +msgstr "Мен" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Можете да споделите мултимедията си с други устройства, като използвате устройства наблизо" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Производител" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Избраната зона ще бъде приложена към снимката на записа" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Геогр. дължина" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Заключен екран" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Позиция" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Местопол." + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Местоположения" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Позиция" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Геогр. ширина" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "В %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Интервал" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Индивидуален" + +msgid "IDS_IV_BODY_IN" +msgstr "Вход" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Невъзможно" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Начален екран" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Начален и заключен екран" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Препращане" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Flash меню" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Име на файл:" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Местоположение на файла" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Формат на файла" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "Време на експ." -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Изпълни" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Активирайте GPS таговете в Камера, за да видите таговете за местоположение." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Активирайте автоматично опресняване на визуалния елемент за времето, за да видите тагове за времето." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Времетраене" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM информация" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Не показвай отново" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Не питай повече" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Дисплей" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Дата на създаване" + +msgid "IDS_IV_BODY_CROP" +msgstr "Изрязване" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Създ. таг" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Броене" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Облачен ден" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Ясна нощ" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Изобр. повикващ" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Базово" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Налични употреби" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Авто" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Приложете тема със съвпадащ цвят към приложенията." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Бленда" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Ориентация" +msgid "IDS_IV_BODY_ANY" +msgstr "Всеки" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Производител" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Добави към Предпочитани" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Фокусно разстояние" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Натрупано време" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Ориентация" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Достигнат максимален брой знаци." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Модел" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Неуспешно" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Добавяне на име" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Задаване като идентификация на обаждащия се" +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Редактиране" + +msgid "IDS_ST_BODY_DATE" +msgstr "Дата" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Акаунти" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Изтегляне" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "След като качите снимки в Dropbox, елементите ще се покажат." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Смъкване..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Добавяне на картини" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "След като отбележите снимки като предпочитани, те ще се покажат." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Премахване на идентификацията на лице?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Възлагане на име" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Потвърди като %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Оформление" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "Добавени са %d снимки" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Албумът ще бъде отменен." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Стартира се изтегляне..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Няма достатъчно памет. Изтрийте някои елементи" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Лично място за съхранение" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Плъзнете тук." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Чукнете, за да добавите изображения." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Файлът вече съществува." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Този елемент ще бъде изтрит." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "След като качите снимки във Facebook, елементите ще се покажат." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Невалиден символ." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Ръчно" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Обработване..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Ново име" + +msgid "IDS_COM_BODY_NONE" +msgstr "Няма" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d избрани" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Памет на устройството" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD карта" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Скорост" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Фонова музика" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 сек" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 сек" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 сек" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Местоположение на паметта" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Размер на файл" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 албум ще бъде изтрит." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Носталгия" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Замъгляване" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Меко сияние" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Записване на промените" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Искате ли да запишете промените си, или да ги отхвърлите?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Отхвър." + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Запази" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Стари" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Слънце" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Стара снимка" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Ретро" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Скала на сивото" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Сепия" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Избледнели цветове" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Осветяване надолу" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Жълт отблясък" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Изостряне" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Скица" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Обърнати цветове" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Маслени бои" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Постеризиране" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Карикатура" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Поп изкуство" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Магическо перо" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Добавен към списък блокирани." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Завъртане" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Няма достатъчно място в паметта на устройството ви. Отидете в Настройки > Захранване и памет > Памет, след което изтрийте някои файлове и опитайте отново." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Интервал между слайдовете" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Интервал между слайдовете" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Картина на контакта" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Няма" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Редактиране" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Преименуване" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Задаване като" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Изтегляне" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Преименуване" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Преименуване" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Преимен." + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Вече съществува файл с това име в папката местоназначение." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Замени" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Задаване като" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Тапет на началния екран" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Тапет за заключен екран" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Тапети начален/заключен екран" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Детайли" + +msgid "IDS_IV_BODY_DATE" +msgstr "Дата" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Изображ. не може да се запише" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Няма достатъчно място (%d MB) в паметта на устройството." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Няма достатъчно място (%d MB) в паметта на SD картата." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Изтрийте някои файлове и опитайте отново." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Записване на изображение" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Няма достатъчно място (остават %d MB) в паметта на устройството. Този елемент ще се запише на SD картата." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Няма достатъчно място (остават %d MB) в SD картата. Този елемент ще се запише в паметта на устройството." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Това изображение ще бъде изтрито." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Стоп" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Изтриване" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Грешка" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Изберете област" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Готово" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Неуспешно зареждане на този елемент." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Негатив" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "ГОТОВО" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ОТКАЗ" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Негатив" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Галерия не може да се отвори." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Зарежда се..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Зареждане" + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Зареждане неуспешно." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Зареждане на изображение..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Изхвърл." + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Не може да се изтегли" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Мобилните данни са изключени. Свържете се към Wi-Fi мрежа или включете мобилните данни и опитайте отново." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Не изпращай" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 секунда" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d секунди" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Ефект" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Ефекти" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Изтичане" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Избледняване" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Не е разпознато лице" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Увеличаване" diff --git a/res/po/ca.po b/res/po/ca.po old mode 100755 new mode 100644 index 96fedee..dd1ae9c --- a/res/po/ca.po +++ b/res/po/ca.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Afegir a l'inici" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Privat" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Auto" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Canviar nom" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "S'esborrarà aquest vídeo" + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "El nom de fitxer està en ús." + +msgid "IDS_ST_BODY_OFF" +msgstr "Desactivat" + +msgid "IDS_COM_BODY_DONE" +msgstr "Finalitzat" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Flaix" -msgid "IDS_CAM_BODY_ISO" -msgstr "ISO" +msgid "IDS_COM_SK_STOP" +msgstr "Aturar" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Copiar al porta-retalls" +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s s'ha deshabilitat en aquesta aplicació. Per habilitar aquesta funció, vagi a %2$s, seleccioni aquesta funció i, a continuació, seleccioni aquesta aplicació." -msgid "IDS_CAM_BODY_FLASH_ON" -msgstr "Flaix activat" +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "Acceptar" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Flaix desactivat" +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Fet" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Balanç de blancs" +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Cancel·lar" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Auto" +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Introduir nom" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Crear etiq" +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Sense nom" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Balanç de blancs" +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Només hi ha un àlbum" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Temps acumulat" +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Pot seleccionar fins a %d elements" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Afeg etiq" +msgid "IDS_IV_OPT_DETAILS" +msgstr "Detalls" -msgid "IDS_IV_POP_ADDED" -msgstr "Afegit" +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Esborrar" -msgid "IDS_IV_BODY_ANY" -msgstr "Qualsevol" +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Esborrar?" -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Usos disponibles" +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cancel" -msgid "IDS_IV_BODY_BASIC" -msgstr "Bàsic" +msgid "IDS_IV_POP_DELETED" +msgstr "Esborrat" -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Imatge de la persona que truca" +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Preferit" -msgid "IDS_IV_BODY_COUNT" -msgstr "Comptatge" +msgid "IDS_IV_SK_SAVE" +msgstr "Desar" -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Data creació" +msgid "IDS_IV_POP_SAVED" +msgstr "Desat" -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Pantalla" +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Ajustaments" -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Introduir nom d'etiqueta" +msgid "IDS_IV_BODY_SIZE" +msgstr "Mida" -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "L'entrada és buida" +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Desconegut" -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Executar" +msgid "IDS_IV_SK_YES" +msgstr "Sí" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Format del fitxer" +msgid "IDS_CAM_BODY_ISO" +msgstr "ISO" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Ubicació del fitxer" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Distància focal" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Reenviant" +msgid "IDS_CAM_BODY_FLASH_ON" +msgstr "Flaix activat" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Fons pantalla inici" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Visor d'imatges" -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "No és possible" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Totes les fotos" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Individual" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Orientació" -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Interval" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Seleccionar imatge" -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Arxiu d'imatges no vàlid" +msgid "IDS_MP_BODY_DURATION" +msgstr "Durada" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Latitud" +msgid "IDS_ST_POP_SET" +msgstr "Definir" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Ubicacions" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Etiquetes" -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Bloq fons pant inici" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Afegir coment" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Longitud" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Veure el seu multimèdia a altres dispositius mitjançant dispositius propers" -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "S'ha assolit el nombre màxim de caràcters (%d)" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Els fitxers de vídeo no contenen informació sobre persones atès que no admeten la funció d'etiqueta de cara" -msgid "IDS_IV_BODY_N_A" -msgstr "N/D" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "No es pot compartir aquesta imatge. Està protegida per DRM." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Nova etiqueta" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "No s'ha pogut obrir el fitxer" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Permís denegat" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "La informació del temps gravada pot ser diferent de l'actual per l'interval d'actualització" -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Possible" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "El contingut personal copiat al porta-retalls es pot utilitzar per crear contingut nou. El seu contingut nou no es pot amagar automàticament." -msgid "IDS_IV_BODY_PRINT" -msgstr "Imprimir" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "La imatge és massa petita" -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Imprimir mitjançant Bluetooth" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "La informació relativa a la data només es visualitza si hi ha altres etiquetes visibles." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Resolució" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Mantingui tocades les miniatures per seleccionar les millors fotos" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Estat correcte" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Ajustaments de la presentació de diapositives" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "Sense targeta SD" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Definir fons de la pantalla d'inici i bloquejar pantalla" + +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Definir aquesta foto com a ID de persona que truca de %s?" + +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Definir com a ID de la persona que truca" + +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Enviant..." msgid "IDS_IV_POP_SELECT_DEVICE" msgstr "Seleccioni dispositiu" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Nom del servidor" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "Sense targeta SD" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Definir com a" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Permís denegat" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Definir fons de la pantalla d'inici i bloquejar pantalla" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Sense ubicació" -msgid "IDS_IV_OPT_SHARE" -msgstr "Compartir" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "No s'han etiquetat cares. Etiqueti cares a la foto." -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "Presentació de diapositives" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "No hi ha cares detectades" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Compte contrarellotge" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "No hi ha prou memòria. Esborrar-ne alguns elements." -msgid "IDS_IV_OPT_TRIM" -msgstr "Acoblar" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Ha fallat la connexió de xarxa" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Il·limitat" +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "S'ha assolit el nombre màxim de caràcters (%d)" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Validesa" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Arxiu d'imatges no vàlid" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Proveïdor" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Flaix utilitz" -msgid "IDS_IV_OPT_FILE_TRANSFER" -msgstr "Transferència de fitxer" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Format de fitxer no compatible" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "No tornar a mostrar" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "L'entrada és buida" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Mantingui tocats dos punts i inclini el dispositiu endavant i endarrere per reduir o ampliar la pantalla" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Introduir nom d'etiqueta" -msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" -msgstr "Més info inclinació" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Activi l'actualització automàtica al fons de pantalla del temps per veure les etiquetes del temps" -msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "Tots els àlbums" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Descàrrega completa" -msgid "IDS_IV_OPT_TAG" -msgstr "Etiqueta" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Best Photo" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Fons de pantalla de pantalla d'inici i bloqueig" +msgid "IDS_IV_POP_ADDED" +msgstr "Afegit" + +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Escriure llegenda" msgid "IDS_IV_OPT_USE_MOTION" msgstr "Utilitzar moviment" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Pantalla inici i bloqueig" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Treure de preferits" -msgid "IDS_IV_BODY_CROP" -msgstr "Retallar" +msgid "IDS_IV_OPT_TRIM" +msgstr "Acoblar" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Pantalla d'inici" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Etiquetar cara" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Bloquejar pantalla" +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Tag buddy" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Girar cap a l'esquerra" +msgid "IDS_IV_OPT_TAG" +msgstr "Etiqueta" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Iniciar presentació de diapositives" + +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "Presentació de diapositives" + +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Presentació diapositives" + +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Mostrar elements" + +msgid "IDS_IV_OPT_SHARE" +msgstr "Compartir" msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Girar cap a la dreta" +msgstr "Gira cap a la dreta" + +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Gira cap a l'esquerra" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Eliminar etiqueta" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Actualitzar" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Imprimir mitjançant Bluetooth" msgid "IDS_IV_OPT_MANUALLY_DETECT" msgstr "Detecció manual" -msgid "IDS_IV_BODY_ME" -msgstr "Jo" +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Fons de pantalla de pantalla d'inici i bloqueig" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Elements amagats" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Obtenir indicacions" + +msgid "IDS_IV_OPT_FILE_TRANSFER" +msgstr "Transferència de fitxer" + +msgid "IDS_IV_OPT_ERASER" +msgstr "Goma d'esborrar" + +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Editar etiq meteo" msgid "IDS_IV_OPT_EDIT_TAG" msgstr "Edit etiq" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Eliminar etiqueta" +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Editar llegenda" -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "Compartir mitjançant" +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Esborrar llegenda" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "No enviar" +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Copiar al porta-retalls" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Info de connexió" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" msgstr "Compartir foto d'amic" -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Etiqueta cares" +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Best face" -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Visor d'imatges" +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Com a fitxers de vídeo" -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "Dispositius propers" +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Com a fitxers d'imatge" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Seleccioni una àrea per retallar la foto" +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Foto animada" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "L'àrea seleccionada s'aplicarà al fons de pantalla" +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Afegir etiqueta meteorol." -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "S'imprimirà l'àrea seleccionada" +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Afegir nom" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Pot compartir els seus fitxers multimèdia amb altres dispositius mitjançant dispositius propers" +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Afegir llegenda" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "L'àrea seleccionada s'aplicarà a la foto de contacte" +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Música de presentació de diapositives" -msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "Temps expos" +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Comp fotos Sound & shot" -msgid "IDS_CAM_BODY_APERTURE" -msgstr "Obertura" +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Definir com a" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Orientació" +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Enviar aquesta foto a" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Fabricant" +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Seleccioni un contacte per compartir" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Distància focal" +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Velocitat de reproducció" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Orientació" +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Bloq fons pant inici" -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Model" +msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" +msgstr "Més info inclinació" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Afegir nom" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Fons pantalla inici" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Definir com a ID de la persona que truca" +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Editar etiq meteo" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Editar ràfega" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Dispositius dispon" + +msgid "IDS_IV_HEADER_ALL_ALBUMS" +msgstr "Tots els àlbums" + +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Afeg etiq" + +msgid "IDS_IV_BUTTON_STOP" +msgstr "Atur" + +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Escanejar" + +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Pot compartir els seus fitxers multimèdia amb altres dispositius mitjançant dispositius propers" + +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Amb %s i %d més" + +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Amb %s" + +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Balanç de blancs" + +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Meteorologia" + +msgid "IDS_IV_BODY_WEATHER" +msgstr "Temps" + +msgid "IDS_IV_BODY_VENDOR" +msgstr "Proveïdor" + +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Validesa" + +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Il·limitat" + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "No es pot carregar la foto" + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Compte contrarellotge" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Etiqueti les cares per veure informació sobre les persones" + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Mantingui tocats dos punts i inclini el dispositiu endavant i endarrere per reduir o ampliar la pantalla" + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Dia assolellat" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Dia nevós" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Compartir mitjançant" + +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Nom del servidor" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Seleccioni una àrea per retallar la foto" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "S'imprimirà l'àrea seleccionada" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "L'àrea seleccionada s'aplicarà al fons de pantalla" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "L'àrea seleccionada s'aplicarà a la foto de contacte" + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Estat correcte" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Resolució" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Eliminar de preferits" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Dia plujós" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Imprimir" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Possible" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Gent" + +msgid "IDS_IV_BODY_N_A" +msgstr "N/D" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Cap etiqueta" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Nova etiqueta" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "Dispositius propers" + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "El meu dispositiu" + +msgid "IDS_IV_BODY_MODEL" +msgstr "Model" + +msgid "IDS_IV_BODY_ME" +msgstr "Jo" + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Fabricant" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Longitud" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Bloquejar pantalla" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Ubicació" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Ubicació" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Ubicacions" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Ubicació" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Latitud" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "En %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Interval" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Individual" + +msgid "IDS_IV_BODY_IN" +msgstr "Ampliar" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "No és possible" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Pantalla d'inici" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Pantalla inici i bloqueig" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Reenviant" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Menú flaix" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Nom del fitxer" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Ubicació del fitxer" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Format del fitxer" + +msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" +msgstr "Temps expos" + +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Executar" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Habiliti etiquetes GPS a Càmera per veure les etiquetes d'ubicació" + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Activi l'actualització automàtica al widget del temps per veure les etiquetes del temps" + +msgid "IDS_IV_BODY_DURATION" +msgstr "Durada" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "Informació de DRM" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "No ho tornis a mostrar." + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "No ho tornis a preguntar" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Pantalla" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Data creació" + +msgid "IDS_IV_BODY_CROP" +msgstr "Retalla" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Crear etiq" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Comptatge" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Dia nuvolós" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Nit clara" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Imatge de la persona que truca" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Bàsic" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Usos disponibles" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Auto" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Apliqui un tema de color combinat a les aplicacions." + +msgid "IDS_IV_BODY_APERTURE" +msgstr "Obertura" + +msgid "IDS_IV_BODY_ANY" +msgstr "Qualsevol" + +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Afegir a Preferits" + +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Temps acumulat" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "S'ha assolit el nombre màxim de caràcters" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Error" + +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" + +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Editar" + +msgid "IDS_ST_BODY_DATE" +msgstr "Data" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Comptes" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Descarregar" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Després de carregar fotos a Dropbox, se'n mostraran els elements" + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Descarregant..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Afegir fotos" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Després d'etiquetar fotos com a preferides, es mostraran les seves fotos" + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Esborrar identificació de cares?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Assignar nom" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Confirmar com a %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Disseny" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d fotos afegides" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Es cancel·larà l'àlbum" + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Iniciant descàrrega..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "No hi ha prou memòria. Esborrar-ne alguns elements." + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Emmagatzematge privat" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Arrossegui aquí" + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Toqui per afegir imatges" + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "El fitxer ja existeix" + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "S'esborrarà aquest element" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Després de carregar fotos a Facebook, se'n mostraran els elements" + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Caràcter no vàlid" + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Manual" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "S'està processant..." + +msgid "IDS_ST_BODY_OK" +msgstr "Acceptar" + +msgid "IDS_ST_SK_RENAME" +msgstr "Canv. nom" + +msgid "IDS_COM_BODY_NONE" +msgstr "Cap" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d seleccionats" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Emmagatzematge de dispositiu" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "Targeta SD" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Velocitat" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Música de fons" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 s" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 s" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 s" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Ubicació d'emmagatzematge" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Mida d'arxiu" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "S'esborrarà 1 àlbum" + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostàlgia" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Desenfocar" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Resplendor suau" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Desar canvis" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Desar els canvis o descartar-los?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Descart" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Desar" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Vintage" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Llum de sol" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Foto antiga" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Escala de grisos" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sèpia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Colors esvanits" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Llum descendent" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Brillantor groga" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Enfocar" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Esbós" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Colors invertits" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Pintura oli" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Posteritzar" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Dibuixos animats" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Art pop" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Llapis màgic" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Afegit a llista de bloquejats" + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Girar" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "No hi ha prou espai a l'emmagatzematge del seu dispositiu. Vagi a Ajustaments > Energia i emmagatzematge > Emmagatzematge i esborri alguns fitxers i torni-ho a intentar." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Interval de diapositives" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Interval de diapositives" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Foto de contacte" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Cap" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Editar" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Canviar nom" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Definir com a" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Descarregar" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Canviar nom" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Canviar nom" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Canv nom" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Ja hi ha un fitxer amb aquest nom a la carpeta de destinació." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Substit" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Definir com a" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Fons de pantalla d'inici" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Fons de pantalla de bloqueig" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Fons pantalla inici i bloqueig" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Detalls" + +msgid "IDS_IV_BODY_DATE" +msgstr "Data" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "No es pot desar la imatge" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "No hi ha prou espai (%d MB) a l'emmagatzematge del dispositiu." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "No hi ha prou espai (%d MB) a la targeta SD" + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Esborri alguns fitxers i torni-ho a intentar." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Desar imatge" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "No hi ha prou espai (queden %d MB) a l'emmagatzematge del dispositiu. L'element es desarà a la targeta SD." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "No hi ha prou espai (queden %d MB) a la targeta SD. L'element es desarà a l'emmagatzematge del dispositiu." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "S'esborrarà aquesta imatge" + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Aturar" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Esborrar" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Error" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Seleccionar àrea" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Fet" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Error en carregar aquest element." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negatiu" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "REALITZAT" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CANCEL·LAR" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negatiu" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "No es pot obrir la Galeria." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Carregant..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Carregant..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Error en carregar" + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Carregant imatge..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Descartar" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "No es pot descarregar" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Les dades mòbils estan desactivades. Connecti's a una xarxa Wi-Fi o activi les dades mòbils i torni-ho a intentar." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "No enviar" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 segon" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d segons" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Efecte" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Efectes" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Flux" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Esvanir" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Cap cara detectada" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Apropar" diff --git a/res/po/cs.po b/res/po/cs.po old mode 100755 new mode 100644 index 655aa13..e6c8469 --- a/res/po/cs.po +++ b/res/po/cs.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Přidat do domů" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Soukromé" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Automaticky" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Přejmenovat" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Videoklip bude odstraněn." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Název souboru je již použit." + +msgid "IDS_ST_BODY_OFF" +msgstr "Vypnuto" + +msgid "IDS_COM_BODY_DONE" +msgstr "Hotovo" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Blesk" +msgid "IDS_COM_SK_STOP" +msgstr "Stop" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s je v této aplikaci vypnuto. Chcete-li funkci zapnout, přejděte na %2$s, vyberte tuto funkci a potom vyberte tuto aplikaci." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Hot." + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Zrušit" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Zadat jméno" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Žádný název" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Existuje pouze jedno album." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Můžete vybrat až %d položek." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Podrobnosti" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Odstranit" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Odstranit?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Storno" + +msgid "IDS_IV_POP_DELETED" +msgstr "Odstraněno." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Oblíbené" + +msgid "IDS_IV_SK_SAVE" +msgstr "Uložit" + +msgid "IDS_IV_POP_SAVED" +msgstr "Uloženo." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Nastavení" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Velikost" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Neznámé" + +msgid "IDS_IV_SK_YES" +msgstr "Ano" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Kopírovat do schránky" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Ohnisková vzdálenost" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Zapnout blesk" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Flash_Off" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Prohlížeč obrázků" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Vyvážení bílé" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Všechny obrázky" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Automaticky" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Orientace" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Vytv. zn." +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Vyberte obrázek" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Vyvážení bílé" +msgid "IDS_MP_BODY_DURATION" +msgstr "Trvání" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Celkový čas" +msgid "IDS_ST_POP_SET" +msgstr "Nastavit" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Přid. zn." +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Značky" -msgid "IDS_IV_POP_ADDED" -msgstr "Přidáno" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Přidat komentář" -msgid "IDS_IV_BODY_ANY" -msgstr "Vše" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Můžete zobrazit média v jiných zařízeních pomocí funkce nedaleká zařízení." -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Počet použití k dispozici" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Videosoubory neobsahují informace o lidech, protože nepodporují funkci značek obličeje." -msgid "IDS_IV_BODY_BASIC" -msgstr "Základní" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Obrázek nelze sdílet. Je chráněný pomocí DRM." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Obrázek volajícího" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Soubor nelze otevřít." -msgid "IDS_IV_BODY_COUNT" -msgstr "Počet" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Zaznamenané informace o počasí se mohou lišit od skutečného počasí z důvodu intervalu aktualizace." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Datum vytvoření" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Osobní obsah zkopírovaný do schránky je možné použít k vytvoření nového obsahu. Nový obsah pravděpodobně nebude automaticky skrytý." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Displej" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Obrázek je příliš malý." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Zadejte název značky" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Informace o datu je zobrazena pouze když jsou viditelné ostatní značky." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Prázdná položka" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Chcete-li vybrat nejlepší fotografie, klepněte na miniatury a podržte je." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Provést" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Nastavení prezentace" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Formát souboru" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Nastavit pozadí pro domovskou obrazovku a zamknout obrazovku" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Umístění souboru" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Chcete nastavit obrázek jako ID volajícího %s?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Předání" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Nastavit jako ID volajícího" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Pozadí dom. obrazovky" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Odesílání..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Nemožné" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Zvolte umístění" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Individuální" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD karta byla vyjmuta." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Interval" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Povolení bylo odepřeno." -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Neplatný soubor obrázku" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Žádné místo" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Zeměpisná šířka" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Nebyly označeny žádné obličeje. Označte obličeje v obrázku" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Polohy" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Nebyly rozpoznány žádné obličeje." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Zamknout pozadí obr." +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Nedostatek paměti. Odstraňte některé položky" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Zeměpisná délka" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Došlo k chybě síťového připojení." msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Bylo dosaženo maximálního počtu znaků (%d)" +msgstr "Bylo dosaženo maximálního počtu znaků (%d)." -msgid "IDS_IV_BODY_N_A" -msgstr "Nepoužito" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Neplatný soubor obrázku." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Nová značka" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Použit blesk" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Povolení bylo odepřeno" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Formát souboru není podporován." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Možné" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Prázdná položka." -msgid "IDS_IV_BODY_PRINT" -msgstr "Tisk" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Zadejte název značky." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Tisk přes Bluetooth" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Chcete-li zobrazit značky, zapněte v pozadí počasí automatickou aktualizaci." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Rozlišení" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Stahování dokončeno" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Stav práv" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Nejlepší fotografie" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD karta byla vyjmuta" +msgid "IDS_IV_POP_ADDED" +msgstr "Přidáno." -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Zvolte umístění" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Napište text" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Název serveru" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Použít pohyb" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Nastavit jako" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Neoblíbené" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Nastavit pozadí pro domovskou obrazovku a zamknout obrazovku" +msgid "IDS_IV_OPT_TRIM" +msgstr "Oříznout" -msgid "IDS_IV_OPT_SHARE" -msgstr "Sdílet" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Označit obličej" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Označit kamaráda" + +msgid "IDS_IV_OPT_TAG" +msgstr "Značka" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Spustit prezentaci" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "Prezentace" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Násobek času" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Prezentace" -msgid "IDS_IV_OPT_TRIM" -msgstr "Oříznout" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Zobrazit položky" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Neomezeno" +msgid "IDS_IV_OPT_SHARE" +msgstr "Sdílet" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Platnost" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Otočit doprava" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Dodavatel" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Otočit doleva" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Odebrat značku" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Obnovit" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Tisk přes Bluetooth" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Detekovat ručně" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Pozadí domovské obrazovky a zamknutého displeje" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Skryté položky" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Zjistit směry" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "Přenos souboru" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Znovu nezobrazovat" +msgid "IDS_IV_OPT_ERASER" +msgstr "Guma" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Chcete-li zmenšit nebo zvětšit displej, klepněte na dvě místa a držte je, a potom naklánějte zařízení dozadu a dopředu" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Upravit zn. počasí" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Upr. zn." + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Upravit titulek" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Odstranit popisek" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Kopírovat do schránky" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Info o připojení" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Sdílet fotografii kamaráda" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Nejl. obličej" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Jako videosoubory" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Jako soubory obrázku" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Animovaná fotografie" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Přidat značku počasí" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Přidat název" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Přidat titulek" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Hudba k prezentaci" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Sdílet obr. zvuk a foto" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Nastavit jako" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Odeslat obr. kamar." + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Vyberte kontakt, který chcete sdílet" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Rychlost přehrávání" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Zamknout pozadí obr." msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Informace o naklonění" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Pozadí dom. obrazovky" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Upravit zn. počasí" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Upravit sér. sním." + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Dostupná zařízení" + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "Všechna alba" -msgid "IDS_IV_OPT_TAG" -msgstr "Značka" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Přid. zn." -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Pozadí domovské obrazovky a zamknutého displeje" +msgid "IDS_IV_BUTTON_STOP" +msgstr "Stop" -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Použít pohyb" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Načíst" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Domovská a zamknutá obrazovka" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Můžete sdílet média s ostatními zařízeními pomocí funkce nedaleká zařízení." -msgid "IDS_IV_BODY_CROP" -msgstr "Oříznout" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "S %s a %d dalšími" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Domovská obrazovka" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "S %s" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Zamknout displej" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Vyvážení bílé" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Otočit doleva" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Počasí" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Otočit doprava" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Počasí" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Detekovat ručně" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Dodavatel" -msgid "IDS_IV_BODY_ME" -msgstr "Já" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Platnost" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Upr. zn." +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Neomezeno" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Odebrat značku" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Fotografii se nepodařilo načíst." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Násobek času" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Klepnutím na obličeje zobrazíte informace o lidech." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Chcete-li zmenšit nebo zvětšit displej, klepněte na dvě místa a držte je, a potom naklánějte zařízení dozadu a dopředu." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Slunečný den" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Zasněžený den" msgid "IDS_IV_BODY_SHARE_VIA" msgstr "Sdílet pomocí" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Neodesílat" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Název serveru" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Sdílet fotografii kamaráda" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Vyberte oblast pro oříznutí obrázku." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Vybraná oblast bude vytištěna." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Přiřaz. oblič." +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Vybraná oblast bude použita na pozadí." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Prohlížeč obrázků" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Vybraná oblast bude použita pro obrázek kontaktu." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Stav práv" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Rozlišení" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Odebrat z oblíbených položek" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Deštivý den" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Tisk" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Možné" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Lidé" + +msgid "IDS_IV_BODY_N_A" +msgstr "Nepoužito" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Žádná značka" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Nová značka" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" msgstr "Nedaleká zařízení" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Vyberte oblast pro oříznutí obrázku" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Toto zařízení" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Vybraná oblast bude použita na pozadí" +msgid "IDS_IV_BODY_MODEL" +msgstr "Model" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Vybraná oblast bude vytištěna" +msgid "IDS_IV_BODY_ME" +msgstr "Já" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Můžete sdílet média s ostatními zařízeními pomocí funkce nedaleká zařízení" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Výrobce" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Vybraná oblast bude použita pro obrázek kontaktu" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Zeměpisná délka" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Zamknout displej" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Místo" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Poloha" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Polohy" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Místo" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Zeměpisná šířka" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "Region: %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Interval" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Individuální" + +msgid "IDS_IV_BODY_IN" +msgstr "Zvětšit" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Nemožné" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Domovská obrazovka" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Domovská a zamknutá obrazovka" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Předání" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Menu Blesk" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Název souboru" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Umístění souboru" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Formát souboru" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "Doba expozice" -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Provést" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Chcete-li zobrazit značky polohy, zapněte ve Fotoaparátu značky GPS." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Chcete-li zobrazit značky, zapněte v nástroji počasí automatickou aktualizaci." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Trvání" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "Informace DRM" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Znovu nezobrazovat" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Příště se neptat" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Displej" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Datum vytvoření" + +msgid "IDS_IV_BODY_CROP" +msgstr "Oříznout" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Vytv. zn." + +msgid "IDS_IV_BODY_COUNT" +msgstr "Počet" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Oblačný den" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Jasná noc" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Obrázek volajícího" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Základní" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Počet použití k dispozici" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Automaticky" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Použije pro aplikace odpovídající barevné téma." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Clona" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Orientace" +msgid "IDS_IV_BODY_ANY" +msgstr "Vše" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Výrobce" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Přidat k oblíbeným položkám" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Ohnisková vzdálenost" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Celkový čas" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Orientace" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Bylo dosaženo maximálního počtu znaků." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Model" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Chyba" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Přidat jméno" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Nastavit jako ID volajícího" +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "kB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Upravit" + +msgid "IDS_ST_BODY_DATE" +msgstr "Datum" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Účty" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Stáhnout" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Až uložíte obrázky do Dropbox, položky se zobrazí." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Stahování..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Přidat obrázky" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Když označíte obrázky jako oblíbené, obrázky se zobrazí." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Odebrat identifikaci obličeje?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Přiřadit jméno" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Potvrdit jako %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Rozložení" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "Bylo přidáno %d obrázků" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Album bude zrušeno." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Spouští se stahování..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Nedostatek paměti. Odstraňte některé položky" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Soukromé úložiště" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Přetáhnout sem." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Klepnutím přidejte obrázky." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Soubor již existuje." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Položka bude odstraněna." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Až uložíte obrázky na Facebook, položky se zobrazí." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Chybný znak." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Ručně" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Probíhá zpracování..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Přejmenovat" + +msgid "IDS_COM_BODY_NONE" +msgstr "Žádná" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "Vybráno %d" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Paměť zařízení" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD karta" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Rychlost" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Zvuková kulisa" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 s" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 s" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 s" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Místo uložení" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Velikost souboru" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album bude odstraněno." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgie" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Rozmazaný" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Slabý svit" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Uložit změny" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Chcete uložit změny nebo je zrušit?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Zrušit" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Uložit" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Starobylá" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Sluníčko" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Stará fotografie" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Stupně šedi" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sépiový" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Vybledlé barvy" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Horní světlo" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Žlutá záře" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Zaostřit" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Skica" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Inverzní barvy" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Olejomalba" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Efektový filtr" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Komiks" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Pop art" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Kouzelné pero" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Přidán do seznamu blokovaných." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Otočit" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "V paměti zařízení není dostatek volného místa. Přejděte na Nastavení > Úspora energie a úložiště > Úložiště, odstraňte některé soubory a opakujte akci." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Interval snímku" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Interval snímku" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Obrázek kontaktu" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Žádné" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Upravit" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Přejmenovat" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Nastavit jako" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Stáhnout" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Přejmenovat" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Přejmenovat" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Přejm." + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "V cílové složce již existuje soubor s tímto názvem." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Nahradit" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Nastavit jako" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Pozadí domovské obrazovky" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Pozadí zamykací obrazovky" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Pozadí dom. obr. a zam. obr." + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Podrobnosti" + +msgid "IDS_IV_BODY_DATE" +msgstr "Datum" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Obrázek nelze uložit" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "V paměti zařízení není dostatek volného místa (%d MB)." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Na SD kartě není dostatek místa (%d MB)." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Odstraňte některé soubory a opakujte akci." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Uložit obrázek" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "V paměti zařízení není dostatek místa (zbývá %d MB). Položka bude uložena na SD kartu." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Na SD kartě není dostatek místa (zbývá %d MB). Položka bude uložena do paměti zařízení." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Obrázek bude odstraněn." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Stop" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Odstranit" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Chyba" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Vyberte oblast" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Hot." + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Položku se nepodařilo načíst." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negativní" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "HOTOVO" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ZRUŠIT" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negativní" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Galerii se nepodařilo otevřít." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Načítání..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Nahrávám..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Nahrání se nezdařilo." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Načítání obrázku..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Vyřadit" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Nelze stáhnout" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobilní data jsou vypnutá. Připojte se pomocí sítě Wi-Fi nebo zapněte Mobilní data a opakujte akci." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Neodesílat" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 sekunda" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "Počet sekund: %d" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Efekt" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Efekty" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Plynulý tok" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Zeslabit" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Nebyl rozpoznán žádný obličej" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Přiblížit" diff --git a/res/po/csv2po_v2 b/res/po/csv2po_v2 old mode 100644 new mode 100755 diff --git a/res/po/da.po b/res/po/da.po old mode 100755 new mode 100644 index 9a37c91..4b3e704 --- a/res/po/da.po +++ b/res/po/da.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Føj til start" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Privat" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Auto" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Omdøb" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Denne video vil blive slettet." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Filnavn allerede i brug." + +msgid "IDS_ST_BODY_OFF" +msgstr "Fra" + +msgid "IDS_COM_BODY_DONE" +msgstr "Udført" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Kameralys" +msgid "IDS_COM_SK_STOP" +msgstr "Stop" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s er deaktiveret i dette program. For at aktivere denne funktion skal du gå til %2$s, vælge denne funktion og derefter vælge dette program." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Udført" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Annullér" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Angiv navn" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Intet navn" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Der er kun ét album." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Du kan vælge op til %d elementer." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Detaljer" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Slet" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Slet?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Annullér" + +msgid "IDS_IV_POP_DELETED" +msgstr "Slettet." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Foretrukne" + +msgid "IDS_IV_SK_SAVE" +msgstr "Gem" + +msgid "IDS_IV_POP_SAVED" +msgstr "Gemt." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Indstillinger" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Størrelse" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Ukendt" + +msgid "IDS_IV_SK_YES" +msgstr "Ja" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Kopiér til udklipsholder" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Brændvidde" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Kameralys til" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Fotolys fra" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Billedvisning" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Hvidbalance" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Alle billeder" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Auto" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Orientering" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Opret kode" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Vælg billede" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Hvidbalance" +msgid "IDS_MP_BODY_DURATION" +msgstr "Varighed" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Samlet tid" +msgid "IDS_ST_POP_SET" +msgstr "Indstil" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Tilføj kode" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Tags" -msgid "IDS_IV_POP_ADDED" -msgstr "Tilføjet" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Tilføj komment." -msgid "IDS_IV_BODY_ANY" -msgstr "Vilkårlig" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Se dine medier på andre enheder ved hjælp af enheder i nærheden." -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Gange tilbage" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Videofiler indeholder ikke oplysninger om personer, da de ikke understøtter funktionen ansigtstagging." -msgid "IDS_IV_BODY_BASIC" -msgstr "Grundlæggende" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Kunne ikke dele dette billede. Det er DRM-beskyttet." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Opkalds-id-billede" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Kan ikke åbne fil." -msgid "IDS_IV_BODY_COUNT" -msgstr "Antal" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "De optagede vejroplysninger kan være forskellige fra det aktuelle vejr på grund af opdateringsintervallet." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Dato oprettet" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Det personlige indhold, der kopieres til udklipsholderen, kan bruges til at oprette nyt indhold. Dit nye indhold skjules muligvis ikke automatisk." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Skærm" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Billedet er for lille." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Indtast navn på kode" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Oplysninger om dato vises kun, når andre mærker er synlige." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Posten er tom" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Tap og hold nede på miniaturer for at vælge de bedste fotos." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Udfør" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Indstillinger for diasshow" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Filformat" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Angiv baggrund for startskærm, og låseskærm." -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Filplacering" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Indstil dette billede som %s's opkalds-id?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Viderestiller" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Angiv som opkalder-ID" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Baggr. for startskærm" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Sender..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Ikke mulig" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Vælg enhed" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Individuel" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD-kort fjernet." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Interval" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Tilladelse afslået." -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Ugyldig billedfil" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Ingen placering" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Breddegrad" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Ingen ansigter er blevet mærket. Mærk ansigter på billedet." -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Steder" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Ingen ansigter registreret." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Baggrund for skærmlås" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Der er ikke tilstrækkelig hukommelse. Slet nogle elementer." -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Længdegrad" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Netværksforbindelsen mislykkedes." msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Det maksimale antal tegn (%d) er nået" +msgstr "Det maksimale antal tegn (%d) er nået." -msgid "IDS_IV_BODY_N_A" -msgstr "Ikke tilgængelig" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Ugyldig billedfil." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Ny kode" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Blitz anvendt" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Tilladelse afslået" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Filformat understøttes ikke." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Muligt" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Posten er tom." -msgid "IDS_IV_BODY_PRINT" -msgstr "Udskriv" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Indtast navn på kode." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Udskriv via Bluetooth" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Aktivér automatisk opdatering i vejrtapetet for at se vejr-tags." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Opløsning" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Overførsel fuldført" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Status for rettigheder" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Bedste foto" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD-kort fjernet" +msgid "IDS_IV_POP_ADDED" +msgstr "Tilføjet." -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Vælg enhed" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Skriv tekst" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Servernavn" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Brug bevægelse" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Vælg som" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Ikke-favorit" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Angiv baggrund for startskærm, og lås skærm" +msgid "IDS_IV_OPT_TRIM" +msgstr "Beskær" -msgid "IDS_IV_OPT_SHARE" -msgstr "Del" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Kod ansigt" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Tagge ven" + +msgid "IDS_IV_OPT_TAG" +msgstr "Tag" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Start diasshow" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "Diasshow" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Tidsforbrug" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Diasshow" -msgid "IDS_IV_OPT_TRIM" -msgstr "Beskær" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Vis elementer" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Ubegrænset" +msgid "IDS_IV_OPT_SHARE" +msgstr "Del" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Gyldighed" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Rotér mod højre" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Sælger" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Rotér mod venstre" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Fjern mærke" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Opdatér" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Udskriv via Bluetooth" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Manuelt registreret" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Baggrund for startskærm og låseskærm" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Skjulte elementer" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Hent rutevejledninger" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "Filoverførsel" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Vis ikke igen" +msgid "IDS_IV_OPT_ERASER" +msgstr "Viskelæder" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Tryk og hold på to punkter, og vip enheden frem og tilbage for at reducere eller forstørre skærmen" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Redigér vejr-tag" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Red. kode" + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Redigér tekst" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Slet billedtekst" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Kopiér til udklipsholder" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Forbindelsesopl." + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Sky-tjeneste" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Del foto med ven" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Bedste ansigt" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Som videofiler" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Som billedfiler" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Animeret foto" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Tilføj vejr-tag" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Tilføj navn" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Tilføj tekst" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Musik til diasshow" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Del Lyd & billede-fotos" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Vælg som" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Send dette bill. til" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Vælg en kontakt, der skal deles" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Afspilningshastighed" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Baggrund for skærmlås" msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Lær om vip" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Baggr. for startskærm" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Redigér vejr-tag" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Red. burst-optagelse" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Tilgængelige enheder" + msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "Alle album" +msgstr "Alle albummer" -msgid "IDS_IV_OPT_TAG" -msgstr "Tag" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Tilføj tag" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Baggrund for startskærm og låseskærm" +msgid "IDS_IV_BUTTON_STOP" +msgstr "Stop" -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Brug bevægelse" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Scanning" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Start- og låseskærm" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Du kan dele dine medier med andre enheder ved hjælp af enheder i nærheden." -msgid "IDS_IV_BODY_CROP" -msgstr "Beskær" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Med %s og %d andre" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Startskærm" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Med %s" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Låseskærm" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Hvidbalance" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Rotér mod uret" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Vejr" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Rotér med uret" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Vejr" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Manuelt registreret" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Sælger" -msgid "IDS_IV_BODY_ME" -msgstr "Mig" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Gyldighed" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Red. kode" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Ubegrænset" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Fjern mærke" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Kan ikke indlæse foto." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Tidsforbrug" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "De registrerede vejroplysninger bør blive redigeret manuelt. Din enhed understøtter ikke registrerede vejroplysninger fra vejr-widgetten." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Tryk på ansigter for at få vist oplysninger om personerne." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Tryk og hold på to punkter, og vip enheden frem og tilbage for at reducere eller forstørre skærmen." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Solfyldt dag" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Snefyldt dag" msgid "IDS_IV_BODY_SHARE_VIA" msgstr "Del via" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Send ikke" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Servernavn" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Del foto med ven" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Vælg et område for at beskære billedet." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Ansigtskodning" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Det valgte område vil blive udskrevet." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Billedvisning" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Det valgte område vil blive anvendt på baggrunden." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Det valgte område vil blive anvendt på kontaktbilledet." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Status for rettigheder" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Opløsning" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Fjern fra favoritter" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Regnvejrsdag" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Udskriv" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Muligt" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Personer" + +msgid "IDS_IV_BODY_N_A" +msgstr "Ikke tilgængelig" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Intet tag" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Ny kode" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" msgstr "Enheder i nærheden" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Vælg et område for at beskære billedet" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Min enhed" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Det valgte område vil blive anvendt på baggrunden" +msgid "IDS_IV_BODY_MODEL" +msgstr "Model" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Det valgte område vil blive udskrevet" +msgid "IDS_IV_BODY_ME" +msgstr "Mig" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Du kan dele dine medier med andre enheder ved hjælp af enheder i nærheden" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Producent" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Det valgte område vil blive anvendt på kontaktbilledet" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Længdegrad" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Låseskærm" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Placering" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Placering" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Placering" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Placering" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Breddegrad" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "I %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Interval" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Individuel" + +msgid "IDS_IV_BODY_IN" +msgstr "Tm" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Ikke mulig" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Startskærm" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Start- og låseskærme" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Viderestilling" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Flash-menu" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Filnavn" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Filplacering" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Filformat" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "Eksponeringst." -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Udfør" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Aktivér GPS-tags i Kamera for at mærker for placering." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Aktivér automatisk opdatering i vejr-widget'en for at se vejr-tags." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Varighed" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM-oplysninger" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Vis ikke igen" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Spørg ikke igen" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Skærm" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Dato oprettet" + +msgid "IDS_IV_BODY_CROP" +msgstr "Beskær" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Opret kode" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Antal" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Skyet dag" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Klar nat" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Opkalds-id-billede" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Grundlæggende" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Gange tilbage" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Auto" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Anvend et matchende farvetema på applikationerne." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Åbning" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Orientering" +msgid "IDS_IV_BODY_ANY" +msgstr "Vilkårlig" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Producent" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Føj til Favoritter" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Brændvidde" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Samlet tid" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Orientering" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Det maksimale antal tegn er nået." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Model" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Mislykkedes" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Tilføj navn" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Angiv som opkalder-ID" +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Redigér" + +msgid "IDS_ST_BODY_DATE" +msgstr "Dato" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Konti" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Download" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Når du uploader billeder til Dropbox, vises elementer." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Downloader ..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Tilføj billeder" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Når du har mærket billeder som dine favoritter, vil billeder blive vist." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Fjern identifikation af ansigt?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Tildel navn" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Bekræft som %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Layout" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d billeder tilføjet" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Albummet vil blive annulleret." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Starter download ..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Der er ikke tilstrækkelig hukommelse. Slet nogle elementer." + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Privat lager" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Træk hertil." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Tryk for at tilføje billeder." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Fil findes allerede." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Dette element vil blive slettet." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Når du uploader billeder til Facebook, vises elementer." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Ugyldigt tegn." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Manuelt" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Arbejder..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Omdøb" + +msgid "IDS_COM_BODY_NONE" +msgstr "Ingen" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d valgt" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Enhedslager" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD-kort" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Hastighed" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Baggrundsmusik" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 sek." + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 sek." + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 sek." + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Lagerplacering" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Filstørrelse" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album vil blive slettet." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgi" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Sløring" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Blød glød" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Gem ændringer" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Gem dine ændringer eller slet dem?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Afvis" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Gem" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Vintage" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Solskin" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Gammelt foto" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Gråskala" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sepia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Falmede farver" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Lys nedad" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Gult skær" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Gør skarpere" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Skitse" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Inverterede farver" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Oliemaleri" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Posterisere" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Tegnefilm" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Pop-art" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Magisk pen" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Føjet til blokeringslisten." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Rotér" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Der er ikke tilstrækkelig ledig plads på din enheds lager. Gå til Indstillinger > Strøm og lager > Lagring, slet nogle filer, og prøv igen." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Diasinterval" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Diasinterval" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Kontaktbillede" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Ingen" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Redigér" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Omdøb" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Angiv som" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Download" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Omdøb" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Omdøb" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Omdøb" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Der er allerede en fil med dette navn i destinationsmappen." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Erstat" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Angiv som" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Baggrund for startskærm" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Baggrund for låseskærm" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Baggr. til start- og låseskærm" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Detaljer" + +msgid "IDS_IV_BODY_DATE" +msgstr "Dato" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Kan ikke gemme billedet" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Der er ikke plads nok på din enheds lager (%d MB)." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Der er ikke tilstrækkelig plads (%d MB) på dit SD-kort." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Slet nogle filer, og prøv igen." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Gem billede" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Der er ikke tilstrækkelig plads (%d MB tilbage) på enhedens lager. Dette element bliver gemt på dit SD-kort." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Der er ikke tilstrækkelig plads (%d MB tilbage) på SD-kortet. Dette element bliver gemt i dit enhedslager." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Dette billede vil blive slettet." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Stop" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Slet" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Fejl" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Vælg område" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Udført" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Kunne ikke indlæse dette element." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negativ" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "UDFØRT" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ANNULLER" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negativ" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Kunne ikke åbne Galleri." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Indlæser ..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Indlæser data ..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Indlæsning mislykkedes." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Indlæser billede..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Slet" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Kunne ikke downloade" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobile data er slået fra. Opret forbindelse til et Wi-Fi-netværk, eller slå mobile data til, og prøv igen." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Send ikke" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 sekund" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d sekunder" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Effekt" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Effekter" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Forløb" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Udton" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Intet ansigt detekteret" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Zoom ind" diff --git a/res/po/de.po b/res/po/de.po new file mode 100644 index 0000000..1ffbdb5 --- /dev/null +++ b/res/po/de.po @@ -0,0 +1,996 @@ +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Privat" + +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Umbenennen" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Dieses Video wird gelöscht." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Dateiname wird bereits verwendet." + +msgid "IDS_ST_BODY_OFF" +msgstr "Aus" + +msgid "IDS_COM_BODY_DONE" +msgstr "OK" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" + +msgid "IDS_CAM_BODY_FLASH" +msgstr "Blitz" + +msgid "IDS_COM_SK_STOP" +msgstr "Stopp" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s ist in dieser Anwendung deaktiviert. Wenn Sie diese Funktion deaktivieren möchten, wechseln Sie zu %2$s, wählen Sie diese Funktion und dann diese Anwendung aus." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Fertig" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Abbrechen" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Name eingeben" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Kein Name" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Es ist nur ein Album vorhanden." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Sie können bis zu %d Elemente auswählen." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Details" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Löschen" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Löschen?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Abbruch" + +msgid "IDS_IV_POP_DELETED" +msgstr "Gelöscht" + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Favorit" + +msgid "IDS_IV_SK_SAVE" +msgstr "Speichern" + +msgid "IDS_IV_POP_SAVED" +msgstr "Gespeichert" + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Einstellungen" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Größe" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Unbekannt" + +msgid "IDS_IV_SK_YES" +msgstr "Ja" + +msgid "IDS_CAM_BODY_ISO" +msgstr "ISO" + +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Fokus" + +msgid "IDS_CAM_BODY_FLASH_ON" +msgstr "Blitz ein" + +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Bildanzeigeprogramm" + +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Alle Bilder" + +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Ausrichtung" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Bild auswählen" + +msgid "IDS_MP_BODY_DURATION" +msgstr "Dauer" + +msgid "IDS_ST_POP_SET" +msgstr "Eingestellt" + +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Tags" + +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Kommentar\nhzfg." + +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Zeigen Sie Ihre Medien auf anderen Geräten in der näheren Umgebung an." + +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Videodateien enthalten keine Informationen über Personen, da sie die Funktion „Gesichts-Tag“ nicht unterstützten." + +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Dieses Bild kann nicht freigegeben werden. Es ist DRM-geschützt." + +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Datei kann nicht geöffnet werden" + +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Die aufgezeichneten Wetterdaten können sich aufgrund des Aktualisierungsintervalls vom aktuellen Wetter unterscheiden." + +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Der persönliche Inhalt, der in die Zwischenablage kopiert wurde, kann verwendet werden, um neue Inhalte zu erstellen. Ihr neuer Inhalt wird möglicherweise nicht automatisch ausgeblendet." + +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Das Bild ist zu klein" + +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Die Datumsangaben werden nur dann angezeigt, wenn andere Tags sichtbar sind." + +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Miniaturansichten tippen und halten, um die besten Fotos auszuwählen." + +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Diashoweinstellungen" + +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Hintergrund für Start- und Sperrbildschirm" + +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Dieses Bild als Anrufer-ID von %s festlegen?" + +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Als Anruferkennung einstellen" + +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Wird gesendet..." + +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Gerät auswählen" + +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD-Karte entfernt" + +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Berechtigung abgelehnt" + +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Kein Standort" + +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Keine Gesichter getaggt. Markieren Sie Gesichter im Bild." + +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Keine Gesichter erkannt" + +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Nicht genügend Speicher. Löschen Sie einige Elemente" + +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Netzverbindung fehlgeschlagen" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Maximale Anzahl an Zeichen (%d) erreicht." + +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Ungültige Bilddatei" + +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Blitz verwend." + +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Dateiformat wird nicht unterstützt" + +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Eintrag ist leer" + +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Tag-Namen eingeben" + +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Automatische Aktualisierung für das Wetter-Hintergrundbild aktivieren, um Wetter-Tags zu erhalten." + +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Download beendet" + +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Bestes Foto" + +msgid "IDS_IV_POP_ADDED" +msgstr "Hinzugefügt" + +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Bildunterschrift schreiben" + +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Bewegung verwenden" + +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Favorit aufheben" + +msgid "IDS_IV_OPT_TRIM" +msgstr "Zuschneiden" + +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Gesicht markieren" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Tag-Buddy" + +msgid "IDS_IV_OPT_TAG" +msgstr "Tag-Info" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Diashow starten" + +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "Diashow" + +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Diashow" + +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Elemente anzeigen" + +msgid "IDS_IV_OPT_SHARE" +msgstr "Senden" + +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Nach rechts drehen" + +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Nach links drehen" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Tag entfernen" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Aktualisieren" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Über Bluetooth drucken" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Manuell erkennen" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Hintergrund für Start- und Sperrbildschirm" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Ausgeblendete Elemente" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Weg finden" + +msgid "IDS_IV_OPT_FILE_TRANSFER" +msgstr "Dateiübertragung" + +msgid "IDS_IV_OPT_ERASER" +msgstr "Radierer" + +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Wetter-Tag bearbeiten" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Tag bearb." + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Bildtext bearbeiten" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Beschriftung löschen" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "In Zwischenablage kopieren" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Verbindungs-Info" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Foto mit Freunden teilen" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Bestes Gesicht" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Als Videodateien" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Als Bilddateien" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Animiertes Foto" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Wetter-Tag hinzufügen" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Namen hinzufügen" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Bildtext hinzufügen" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Musik für Diashow" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Sound & Shot-Fotos teilen" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Einstellen als" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Dieses Bild senden an" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Freizugebenden Kontakt auswählen" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Wiedergabegeschwindigkeit" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Sperre-Hintergrund" + +msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" +msgstr "Kipp-Funktion" + +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Home-Hintergrund" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Wetter-Tag bearbeiten" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Serienbilder bearb." + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Verfügbare Geräte" + +msgid "IDS_IV_HEADER_ALL_ALBUMS" +msgstr "Alle Alben" + +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Tag hinzufügen" + +msgid "IDS_IV_BUTTON_STOP" +msgstr "Stopp" + +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Suchen" + +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Sie können Ihre Medien für andere Geräte in der Nähe freigeben." + +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Mit %s und %d anderen" + +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Mit %s" + +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Weißabgleich" + +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Wetter" + +msgid "IDS_IV_BODY_WEATHER" +msgstr "Wetter" + +msgid "IDS_IV_BODY_VENDOR" +msgstr "Anbieter" + +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Gültigkeit" + +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Unbegrenzt" + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Foto konnte nicht geladen werden" + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Zeitzählung" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "Die aufgezeichneten Wetterinformationen sollten manuell bearbeitet werden. Ihr Gerät unterstützt nicht den Empfang von aufgezeichneten Wetterinfos vom Wetter-Widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Tippen Sie auf Gesichter, um Informationen zu den Personen anzuzeigen." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Tippen und halten Sie zwei Punkte fest. Kippen Sie dann das Gerät hin und her, um den Bildschirm zu verkleinern oder zu vergrößern." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Sonniger Tag" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Verschneiter Tag" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Senden via" + +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Servername" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Bereich für das Zuschneiden des Bildes auswählen" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Ausgewählter Bereich wird gedruckt" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Der ausgewählte Bereich wird auf das Hintergrundbild angewendet." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Der ausgewählte Bereich wird auf das Kontaktbild angewendet." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Copyright-Status" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Auflösung" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Aus Favoriten entfernen" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Regnerischer Tag" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Drucken" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Möglich" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Teilnehmer" + +msgid "IDS_IV_BODY_N_A" +msgstr "Entfällt" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Kein Tag" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Neues Tag" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "Geräte in der Nähe" + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Mein Gerät" + +msgid "IDS_IV_BODY_MODEL" +msgstr "Modell" + +msgid "IDS_IV_BODY_ME" +msgstr "Ich" + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Hersteller" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Länge" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Sperrbildschirm" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Ort" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Standort" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Standorte" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Standort" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Breite" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "%s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Intervall" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Individuell" + +msgid "IDS_IV_BODY_IN" +msgstr "Rein" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Nicht möglich" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Startbildschirm" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Start- und Sperrbildschirm" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Weiterleitung" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Flash-Menü" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Dateiname" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Dateispeicherort" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Dateiformat" + +msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" +msgstr "Belichtungszeit" + +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Ausführen" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Aktivieren Sie in der Kamera „Geotagging“, um Geotags zu erhalten." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Automatische Aktualisierung im Wetter-Widget aktivieren, um Wetter-Tags zu erhalten." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Dauer" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM-Info" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Nicht mehr anzeigen" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Nicht erneut fragen" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Anzeige" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Erstellt am" + +msgid "IDS_IV_BODY_CROP" +msgstr "Zuschneiden" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Tag erst." + +msgid "IDS_IV_BODY_COUNT" +msgstr "Anzahl" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Bewölkter Tag" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Klare Nacht" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Anruferbild" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Einfach" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Verfügbare Nutzungen" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Auto" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Passende Farben auf Anwendungen anwenden." + +msgid "IDS_IV_BODY_APERTURE" +msgstr "Blende (Aperture)" + +msgid "IDS_IV_BODY_ANY" +msgstr "Jede" + +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Zu Favoriten hinzufügen" + +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Gesamtzeit" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Maximal zulässige Zeichenanzahl erreicht." + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Fehler" + +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" + +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Bearbeiten" + +msgid "IDS_ST_BODY_DATE" +msgstr "Datum" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Konten" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Herunterladen" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Nach dem Hochladen von Fotos auf Dropbox werden Elemente angezeigt." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Herunterladen..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Bilder hinzufügen" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Nachdem Sie Episoden als Favoriten gekennzeichnet haben, werden Bilder angezeigt." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Identifizierung von Gesichtern entfernen?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Namen zuweisen" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Als %s bestätigen." + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Layout" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d Bilder hinzugefügt" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Das Album wird storniert." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Starte Download..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Nicht genügend Speicher. Löschen Sie einige Elemente" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Privater Speicher" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Hierher ziehen" + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Bilder hinzufügen" + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Datei bereits vorhanden." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Dieses Element wird gelöscht." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Nach dem Hochladen von Fotos auf Facebook werden Elemente angezeigt." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Ungültiges Zeichen" + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Manuell" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Fehler" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Wird verarbeitet..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Umbenennen" + +msgid "IDS_COM_BODY_NONE" +msgstr "Ohne" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d ausgewählt" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Gerätespeicher" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD-Karte" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Geschwindigkeit" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Hintergrundmusik" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 Sek." + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 Sek." + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 Sek." + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Speicherort" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Dateigröße" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 Album wird gelöscht." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgie" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Unschärfe" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Sanftes Leuchten" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Speichern der Änderung" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Änderungen speichern oder verwerfen?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Verwerf." + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Speichern" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Klassisch" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Sonne" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Vergilbt" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Graustufen" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sepia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Verblasst" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Deckenstrahler" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Gelbglimm" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Schärfen" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Skizze" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Invertierte Farben" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Ölfarbe" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Farbtontrennung" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Cartoon" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Pop-Art" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Magic Pen" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Zur Sperrliste hinzugefügt" + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Ausrichten" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Es ist nicht genügend Gerätespeicher frei. Wechseln Sie zu „Einstellungen > Energie und Speicher > Speicher“, löschen Sie Dateien und versuchen Sie es dann erneut." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Dia-Intervall" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Dia-Intervall" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Kontaktbild" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Keine" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Bearbeiten" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Umbenennen" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Einstellen als" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Download" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Umbenennen" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Umbenennen" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Umben." + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Im Zielordner ist bereits eine Datei mit diesem Namen vorhanden." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Ersetzen" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Einstellen als" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Startbildschirm-Hintergrund" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Hintergrund (Sperrbildschirm)" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Start-/Sperrbildsch.-Hintergr." + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Details" + +msgid "IDS_IV_BODY_DATE" +msgstr "Datum" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Speich. von Bild nicht möglich" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Nicht genügend Gerätespeicher frei (%d MB)." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Nicht genügend Speicherplatz (%d MB) auf der SD-Karte frei." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Löschen Sie Dateien und versuchen Sie es erneut." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Bildspeicherung" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Nicht genügend Speicherplatz (%d MB frei) im Gerätespeicher. Das Element wird auf der SD-Karte gespeichert." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Nicht genügend Speicherplatz (%d MB frei) auf der SD-Karte. Das Element wird im Gerätespeicher gespeichert." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Dieses Bild wird gelöscht." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Stopp" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Löschen" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Fehler" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Bereichsauswahl" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Fertig" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Das Element konnte nicht geladen werden." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negativ" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "FERTIG" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ABBRECHEN" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negativ" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Galerie kann nicht geöffnet werden." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Laden..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Lädt..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Laden fehlgeschlagen" + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Bild wird geladen..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Verwerfen" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Download nicht möglich" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobile Daten sind deaktiviert. Stellen Sie eine Verbindung mit einem WLAN her oder aktivieren Sie mobile Daten und versuchen Sie es erneut." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Nicht senden" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 Sekunde" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d Sekunden" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Effekt" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Effekte" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Fließend" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Ausblenden" + +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Vergrößern" + diff --git a/res/po/de_DE.po b/res/po/de_DE.po deleted file mode 100755 index 56ea1b8..0000000 --- a/res/po/de_DE.po +++ /dev/null @@ -1,288 +0,0 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Zum Startbildschirm hzfg." - -msgid "IDS_CAM_BODY_AUTO" -msgstr "Auto" - -msgid "IDS_CAM_BODY_FLASH" -msgstr "Fotolicht" - -msgid "IDS_CAM_BODY_ISO" -msgstr "ISO" - -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "In Zwischenablage kopieren" - -msgid "IDS_CAM_BODY_FLASH_ON" -msgstr "Fotolicht ein" - -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Fotolicht aus" - -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Weißabgleich" - -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Automatisch" - -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Tag erst." - -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Weißabgl." - -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Gesamtzeit" - -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Tag hinzufügen" - -msgid "IDS_IV_POP_ADDED" -msgstr "Hinzugefügt" - -msgid "IDS_IV_BODY_ANY" -msgstr "Jede" - -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Verfügbare Nutzungen" - -msgid "IDS_IV_BODY_BASIC" -msgstr "Einfach" - -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Anruferbild" - -msgid "IDS_IV_BODY_COUNT" -msgstr "Anzahl" - -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Erstellt am" - -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Anzeige" - -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Tag-Namen eingeben" - -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Eintrag ist leer" - -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Ausführen" - -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Dateiformat" - -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Dateispeicherort" - -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Weiterleitung" - -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Home-Hintergrund" - -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Nicht möglich" - -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Individuell" - -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Intervall" - -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Ungültige Bilddatei" - -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Breite" - -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Standorte" - -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Sperre-Hintergrund" - -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Länge" - -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Maximale Anzahl an Zeichen (%d) erreicht." - -msgid "IDS_IV_BODY_N_A" -msgstr "Entfällt" - -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Neues Tag" - -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Berechtigung abgelehnt" - -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Möglich" - -msgid "IDS_IV_BODY_PRINT" -msgstr "Drucken" - -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Über Bluetooth drucken" - -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Auflösung" - -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Copyright-Status" - -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD-Karte entfernt" - -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Gerät auswählen" - -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Servername" - -msgid "IDS_IV_OPT_SET_AS" -msgstr "Einstellen als" - -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Hintergrund für Home-Bildschirm festlegen und Bildschirm sperren" - -msgid "IDS_IV_OPT_SHARE" -msgstr "Senden via" - -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "Diashow" - -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Zeitzählung" - -msgid "IDS_IV_OPT_TRIM" -msgstr "Zuschneiden" - -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Unbegrenzt" - -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Gültigkeit" - -msgid "IDS_IV_BODY_VENDOR" -msgstr "Anbieter" - -msgid "IDS_IV_OPT_FILE_TRANSFER" -msgstr "Dateiübertragung" - -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Nicht mehr anzeigen" - -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Tippen und halten Sie zwei Punkte fest. Kippen Sie dann das Gerät hin und her, um den Bildschirm zu verkleinern oder zu vergrößern." - -msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" -msgstr "Kipp-Funktion" - -msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "Alle Alben" - -msgid "IDS_IV_OPT_TAG" -msgstr "Tag-Info" - -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Hintergrund für gesperrten und Home-Bildschirm" - -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Bewegung verwenden" - -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Home- und Sperrbildschirm" - -msgid "IDS_IV_BODY_CROP" -msgstr "Zuschneiden" - -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Home-Bildschirm" - -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Sperrbildschirm" - -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Nach links drehen" - -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Nach rechts drehen" - -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Manuell erkennen" - -msgid "IDS_IV_BODY_ME" -msgstr "Ich" - -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Tag bearb." - -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Tag entfernen" - -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "Senden via" - -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Nicht senden" - -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Foto mit Buddy teilen" - -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Gesichtserk." - -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Bildanzeigeprogramm" - -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "Geräte in näherer Umgebung" - -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Bereich für das Zuschneiden des Bildes auswählen" - -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Der ausgewählte Bereich wird auf das Hintergrundbild angewendet." - -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Ausgewählter Bereich wird gedruckt" - -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Sie können Ihre Medien für andere Geräte in der näheren Umgebung freigeben." - -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Der ausgewählte Bereich wird auf das Kontaktbild angewendet." - -msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "Belichtungszeit" - -msgid "IDS_CAM_BODY_APERTURE" -msgstr "Blende (Aperture)" - -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Ausrichtung" - -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Hersteller" - -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Fokus" - -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Ausrichtung" - -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Modell" - -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Namen hinzufügen" - -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Als Anruferkennung einstellen" - -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Kein Gesicht erkannt" - diff --git a/res/po/el_GR.po b/res/po/el_GR.po old mode 100755 new mode 100644 index e4adf1f..c815784 --- a/res/po/el_GR.po +++ b/res/po/el_GR.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Προσθήκη σε αρχική σελίδα" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Προσωπικό" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Αυτόματο" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Μετονομασία" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Το βίντεο θα διαγραφεί." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Το όνομα αρχείου χρησιμοποιείται ήδη." + +msgid "IDS_ST_BODY_OFF" +msgstr "Ανενεργό" + +msgid "IDS_COM_BODY_DONE" +msgstr "Τέλος" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Φλας" +msgid "IDS_COM_SK_STOP" +msgstr "Διακοπή" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "Η δυνατότητα %1$s είναι απενεργοποιημένη για αυτήν την εφαρμογή. Για να ενεργοποιήσετε αυτήν τη λειτουργία, μεταβείτε στο %2$s, επιλέξτε την και, στη συνέχεια, επιλέξτε αυτήν την εφαρμογή." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Τέλος" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Ακύρωση" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Εισαγωγή ονόματος" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Κανένα όνομα" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Υπάρχει μόνο ένα άλμπουμ." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Μπορείτε να επιλέξετε μέχρι και %d στοιχεία." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Λεπτομέρειες" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Διαγραφή" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Διαγραφή;" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Ακύρωση" + +msgid "IDS_IV_POP_DELETED" +msgstr "Διαγράφηκε." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Αγαπημένα" + +msgid "IDS_IV_SK_SAVE" +msgstr "Αποθ/ση" + +msgid "IDS_IV_POP_SAVED" +msgstr "Αποθηκεύτηκε." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Ρυθμίσεις" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Μέγεθος" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Άγνωστο" + +msgid "IDS_IV_SK_YES" +msgstr "Ναι" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Αντιγραφή στο πρόχειρο" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Εστιακή απόσταση" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Φλας ενεργό" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Φλας ανενεργό" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Προβολή εικόνων" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Εξισορρόπηση λευκού" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Όλες οι εικόνες" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Αυτόματο" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Προσανατολισμός" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Δημ. ετικ." +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Επιλογή εικόνας" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Εξισορρόπ.λευκού" +msgid "IDS_MP_BODY_DURATION" +msgstr "Διάρκεια" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Συνολικός χρόνος" +msgid "IDS_ST_POP_SET" +msgstr "Ορισμός" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Πρ. ετικ." +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Ετικέτες" -msgid "IDS_IV_POP_ADDED" -msgstr "Προστέθηκε" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Προσθήκη σχολίου" -msgid "IDS_IV_BODY_ANY" -msgstr "Οποιοδήποτε" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Προβάλετε τα πολυμέσα σας σε άλλες συσκευές χρησιμοποιώντας τη δυνατότητα κοντινών συσκευών." -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Διαθέσιμες χρήσεις" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Τα αρχεία βίντεο δεν περιέχουν πληροφορίες σχετικά με άτομα, επειδή δεν υποστηρίζουν τη λειτουργία επισήμανσης με ετικέτα προσώπου." -msgid "IDS_IV_BODY_BASIC" -msgstr "Βασικός" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Δεν είναι δυνατή η κοινή χρήση αυτής της εικόνας. Η εικόνα διαθέτει προστασία δικαιωμάτων DRM." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Εικόνα καλούντος" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Δεν είναι δυνατό το άνοιγμα αρχείου." -msgid "IDS_IV_BODY_COUNT" -msgstr "Πλήθος αρχείων" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Οι εγγεγραμμένες πληροφορίες καιρού ενδέχεται να διαφέρουν από τον πραγματικό καιρό, λόγω του διαστήματος ενημέρωσης." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Ημερομηνία δημιουργίας" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Το προσωπικό περιεχόμενο που αντιγράφηκε στο πρόχειρο μπορεί να χρησιμοποιηθεί για τη δημιουργία νέου περιεχομένου. Ενδέχεται να μην γίνει αυτόματα απόκρυψη του νέου περιεχομένου." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Οθόνη" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Η εικόνα είναι πολύ μικρή." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Καταχώριση ονόματος ετικέτας" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Οι πληροφορίες ημερομηνίας εμφανίζονται μόνο όταν είναι ορατές οι άλλες ετικέτες." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Κενή καταχώρηση" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Πατήστε παρατεταμένα τις μικρογραφίες για να επιλέξετε τις καλύτερες φωτογραφίες." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Εκτέλεση" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Ρυθμίσεις παρουσίασης" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Μορφή αρχείου" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Ορισμός φόντου για την αρχική οθόνη και την οθόνη κλειδώματος" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Θέση αρχείου" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Ορισμός της εικόνας ως αναγνωριστικό καλούντα για το χρήστη %s;" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Προώθηση" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Ορισμός ως ταυτότητας καλούντος" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Φόντο αρχικής οθόνης" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Αποστολή..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Αδύνατο" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Επιλογή συσκευής" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Μεμονωμένο" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "Αφαιρέθηκε η κάρτα SD." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Διάστημα" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Δεν έχετε δικαίωμα πρόσβασης." -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Μη έγκυρο αρχείο εικόνας" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Καμία τοποθεσία" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Γεωγραφικό πλάτος" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Δεν έχουν προστεθεί ετικέτες σε πρόσωπα. Προσθέστε ετικέτες σε πρόσωπα της εικόνας" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Θέσεις" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Δεν ανιχνεύθηκαν πρόσωπα." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Φόντο οθόνης κλειδώμ." +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Δεν υπάρχει αρκετή μνήμη. Διαγράψτε ορισμένα στοιχεία" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Γεωγραφικό μήκος" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Αποτυχία σύνδεσης δικτύου." msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Συμπληρώθηκε ο μέγιστος αριθμός χαρακτήρων (%d)" +msgstr "Συμπληρώθηκε ο μέγιστος αριθμός χαρακτήρων (%d)." -msgid "IDS_IV_BODY_N_A" -msgstr "Μη διαθέσιμο" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Μη έγκυρο αρχείο εικόνας." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Νέα ετικέτα" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Χρήση φλας" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Δεν έχετε δικαίωμα πρόσβασης" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Μη υποστηριζόμενη μορφή αρχείου." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Δυνατό" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Κενή καταχώρηση." -msgid "IDS_IV_BODY_PRINT" -msgstr "Εκτύπωση" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Καταχώριση ονόματος ετικέτας." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Εκτύπωση μέσω Bluetooth" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Ενεργοποιήστε την αυτόματη ανανέωση στο φόντο καιρού, για να δείτε τις ετικέτες καιρού." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Ανάλυση" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Η λήψη ολοκληρώθηκε" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Κατάσταση δικαιώματος" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Καλύτερη φωτογραφία" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "Αφαιρέθηκε η κάρτα SD" +msgid "IDS_IV_POP_ADDED" +msgstr "Προστέθηκε." -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Επιλογή συσκευής" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Δημιουργία λεζάντας" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Όνομα διακομιστή" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Χρήση κίνησης" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Ορισμός ως" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Κατάργηση αγαπημένου" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Ορισμός φόντου για την αρχική οθόνη και την οθόνη κλειδώματος" +msgid "IDS_IV_OPT_TRIM" +msgstr "Ξάκρισμα" -msgid "IDS_IV_OPT_SHARE" -msgstr "Κοινόχρηστο" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Επισήμανση προσώπου" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Βοηθός Ετικετών" + +msgid "IDS_IV_OPT_TAG" +msgstr "Ετικέτα" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Έναρξη παρουσίασης" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "Παρουσίαση" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Χρονομετρημένη μέτρηση" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Παρουσίαση" -msgid "IDS_IV_OPT_TRIM" -msgstr "Ξάκρισμα" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Προβολή στοιχείων" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Απεριόριστες" +msgid "IDS_IV_OPT_SHARE" +msgstr "Κοινόχρηστο" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Ισχύς" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Περ. προς τα δεξιά" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Προμηθευτής" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Περ. προς τα αριστερά" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Κατάργηση ετικέτας" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Ανανέωση" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Εκτύπωση μέσω Bluetooth" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Μη αυτόματος εντοπισμός" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Ταπετσαρία αρχικής οθόνης και οθόνης κλειδώματος" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Κρυφά στοιχεία" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Λήψη οδηγιών" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "Μεταφορά αρχείου" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Να μην εμφανιστεί ξανά" +msgid "IDS_IV_OPT_ERASER" +msgstr "Λειτουργία αφαίρεσης" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Πατήστε παρατεταμένα δύο σημεία και περιστρέψτε τη συσκευή προς τα εμπρός ή προς τα πίσω για μεγέθυνση ή σμίκρυνση της οθόνης" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Επεξ.ετικέτας καιρού" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Επεξ.ετικ." + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Επεξεργασία λεζάντας" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Διαγραφή λεζάντας" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Αντιγρ. στο πρόχειρο" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Πληροφορίες σύνδεσης" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Κοινή χρήση φωτογραφ." + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Καλύτ. πρόσωπο" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Ως αρχεία βίντεο" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Ως αρχεία εικόνων" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Φωτογραφία με κίνηση" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Προσθήκη ετικέτας καιρού" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Προσθήκη ονόματος" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Προσθήκη λεζάντας" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Μουσική παρουσίασης" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Κοινή χρ.ήχου & φωτογρ." + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Ορισμός ως" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Αποστολή εικόνας σε" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Επιλέξτε επαφή για κοινή χρήση" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Ταχύτητα αναπαραγωγής" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Φόντο οθόνης κλειδώμ." msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Πληροφορίες για τη λειτουργία κλίσης" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Φόντο αρχικής οθόνης" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Επεξ.ετικέτας καιρού" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Επεξ. συνεχούς λήψης" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Διαθέσιμες συσκευές" + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "Όλα τα άλμπουμ" -msgid "IDS_IV_OPT_TAG" -msgstr "Ετικέτα" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Πρ. ετικ." -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Ταπετσαρία αρχικής οθόνης και οθόνης κλειδώματος" +msgid "IDS_IV_BUTTON_STOP" +msgstr "Διακ." -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Χρήση κίνησης" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Σάρωση" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Αρχική οθόνη και οθόνη κλειδώματος" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Μπορείτε να κάνετε κοινή χρήση των πολυμέσων σας με άλλες συσκευές χρησιμοποιώντας τη δυνατότητα κοντινών συσκευών." -msgid "IDS_IV_BODY_CROP" -msgstr "Περικοπή" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Με το χρήστη %s και %d άλλους" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Αρχική οθόνη" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Με %s" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Οθόνη κλειδώματος" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Εξισορρόπηση λευκού" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Περιστροφή προς τα αριστερά" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Καιρός" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Περιστροφή προς τα δεξιά" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Καιρός" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Μη αυτόματος εντοπισμός" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Προμηθευτής" -msgid "IDS_IV_BODY_ME" -msgstr "Εγώ" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Ισχύς" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Επεξ.ετικ." +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Απεριόριστες" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Κατάργηση ετικέτας" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Δεν είναι δυνατή η φόρτωση της φωτ." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Χρονομετρημένη μέτρηση" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Επιλέξτε πρόσωπα για να προβάλετε πληροφορίες σχετικά με τα άτομα." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Πατήστε παρατεταμένα δύο σημεία και περιστρέψτε τη συσκευή προς τα εμπρός ή προς τα πίσω για μεγέθυνση ή σμίκρυνση της οθόνης." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Ηλιόλουστη μέρα" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Χιονισμένη μέρα" msgid "IDS_IV_BODY_SHARE_VIA" msgstr "Κοινή χρήση μέσω" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Να μην γίνει αποστολή" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Όνομα διακομιστή" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Κοινή χρήση φωτογραφίας φίλου" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Επιλέξτε μια περιοχή για περικοπή της εικόνας." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Κωδικ. προσώπ" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Θα γίνει εκτύπωση της επιλεγμένης περιοχής." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Προβολή εικόνων" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Η επιλεγμένη περιοχή θα οριστεί ως φόντο." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Η επιλεγμένη περιοχή θα οριστεί ως εικόνα επαφής." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Κατάσταση δικαιώματος" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Ανάλυση" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Αφαίρεση από τα αγαπημένα" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Βροχερή μέρα" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Εκτύπωση" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Δυνατό" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Άνθρωποι" + +msgid "IDS_IV_BODY_N_A" +msgstr "Μη διαθέσιμο" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Δεν υπάρχει ετικέτα" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Νέα ετικέτα" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" msgstr "Κοντινές συσκευές" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Επιλέξτε μια περιοχή για περικοπή της εικόνας" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Η συσκευή μου" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Η επιλεγμένη περιοχή θα οριστεί ως φόντο" +msgid "IDS_IV_BODY_MODEL" +msgstr "Μοντέλο" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Θα γίνει εκτύπωση της επιλεγμένης περιοχής" +msgid "IDS_IV_BODY_ME" +msgstr "Εγώ" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Μπορείτε να κάνετε κοινή χρήση των πολυμέσων σας με άλλες συσκευές χρησιμοποιώντας τη δυνατότητα κοντινών συσκευών" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Κατασκευαστής" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Η επιλεγμένη περιοχή θα οριστεί ως εικόνα επαφής" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Γεωγραφικό μήκος" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Κλείδωμα Οθόνης" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Θέση" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Τοποθεσία" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Θέσεις" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Τοποθεσία" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Γεωγραφικό πλάτος" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "Στο/στην %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Διάστημα" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Μεμονωμένο" + +msgid "IDS_IV_BODY_IN" +msgstr "Σε" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Αδύνατο" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Αρχική οθόνη" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Αρχική οθόνη και οθόνη κλειδώματος" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Προώθηση" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Μενού Flash" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Όνομα αρχείου" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Θέση αρχείου" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Μορφή αρχείου" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "Χρόνος έκθεσης" -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Εκτέλεση" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Για να δείτε ετικέτες τοποθεσίας, ενεργοποιήστε τις ετικέτες GPS στην Κάμερα." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Ενεργοποιήστε την αυτόματη ενημέρωση στο widget καιρού, για να δείτε τις ετικέτες καιρού." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Διάρκεια" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "Πληροφορίες DRM" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Να μην εμφανιστεί ξανά" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Να μην ερωτηθώ ξανά" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Οθόνη" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Ημερομηνία δημιουργίας" + +msgid "IDS_IV_BODY_CROP" +msgstr "Περικοπή" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Δημ. ετικ." + +msgid "IDS_IV_BODY_COUNT" +msgstr "Πλήθος αρχείων" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Συννεφιασμένη μέρα" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Ξάστερη νύχτα" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Εικόνα καλούντος" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Βασικός" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Διαθέσιμες χρήσεις" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Auto" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Εφαρμόστε παρόμοιο θέμα χρωμάτων στις εφαρμογές." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Άνοιγμα" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Προσανατολισμός" +msgid "IDS_IV_BODY_ANY" +msgstr "Οποιοδήποτε" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Κατασκευαστής" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Προσθήκη στα αγαπημένα" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Εστιακή απόσταση" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Συνολικός χρόνος" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Προσανατολισμός" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Ο μέγιστος αριθμός χαρακτήρων συμπληρώθηκε." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Μοντέλο" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Απέτυχε" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Προσθήκη ονόματος" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Ορισμός ως ταυτότητας καλούντος" +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Επεξεργασία" + +msgid "IDS_ST_BODY_DATE" +msgstr "Ημερομηνία" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Λογαριασμοί" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Λήψη" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Τα στοιχεία θα εμφανιστούν μετά την αποστολή εικόνων στο Dropbox." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Λήψη..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Προσθήκη εικόνων" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Οι εικόνες θα εμφανιστούν αφού τις επισημάνετε ως αγαπημένες." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Να καταργηθεί η αναγνώριση προσώπων;" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Αντιστοίχιση ονόματος" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Επιβεβαίωση ως %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Διάταξη" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "Προστέθηκαν %d εικόνες" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Τα άλμπουμ θα ακυρωθούν." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Γίνεται έναρξη της λήψης..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Δεν υπάρχει αρκετή μνήμη. Διαγράψτε ορισμένα στοιχεία" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Απόρρητος χώρος αποθήκευσης" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Μεταφορά εδώ." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Πατήστε για προσθήκη εικόνων." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Το αρχείο υπάρχει ήδη." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Αυτό το στοιχείο θα διαγραφεί." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Τα στοιχεία θα εμφανιστούν μετά την αποστολή εικόνων στο Facebook." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Μη έγκυρος χαρακτήρας." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Χειροκίνητα" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Επεξεργασία..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Μετονομασία" + +msgid "IDS_COM_BODY_NONE" +msgstr "Κανένα" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "Επιλέχθηκαν %d" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Χώρος αποθήκευσης συσκευής" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "Κάρτα SD" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Ταχύτητα" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Μουσική παρασκηνίου" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 δευτ" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 δευτ" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 δευτ" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Θέση αποθήκευσης" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Μέγεθος αρχείου" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "Θα διαγραφεί 1 άλμπουμ." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Νοσταλγία" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Θάμπωμα" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Απαλή λάμψη" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Αποθήκευση αλλαγών" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Αποθήκευση των αλλαγών ή απόρριψή τους;" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Απόρριψη" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Αποθήκ." + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Χρονιά παραγωγής" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Λιακάδα" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Παλιά φωτογραφία" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Ρετρό" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Κλίμακα γκρι" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Σέπια" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Ξεθωριασμένα χρώματα" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Καθοδικό φως" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Κίτρινη λάμψη" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Αύξηση ευκρίνειας" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Σκίτσο" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Αντιστροφή χρωμάτων" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Ελαιογραφία" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Εφέ πόστερ" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Κινούμενα σχέδια" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Pop Art" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Μαγικό στυλό" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Προστέθηκε στη λίστα αποκλεισμού." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Περιστροφή" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Ο χώρος αποθήκευσης της συσκευής σας δεν επαρκεί. Μεταβείτε στις Ρυθμίσεις > Ενέργεια και χώρος αποθήκευσης > Χώρος αποθήκευσης και, στη συνέχεια, διαγράψτε ορισμένα αρχεία και δοκιμάστε ξανά." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Διάστημα διαφάνειας" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Διάστημα διαφάνειας" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Εικόνα επαφής" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Κανένα" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Επεξεργασία" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Μετονομασία" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Ορισμός ως" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Λήψη" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Μετονομασία" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Μετονομασία" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Μετονομ." + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Υπάρχει ήδη ένα αρχείο με αυτό το όνομα στο φάκελο προορισμού." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Αντικατ." + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Ορισμός ως" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Φόντο αρχικής οθόνης" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Φόντο οθόνης κλειδώματος" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Ταπετσ. αρχ. οθ. & οθ. κλειδ." + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Λεπτομέρειες" + +msgid "IDS_IV_BODY_DATE" +msgstr "Ημερομηνία" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Αδύνατη η αποθήκευση εικόνας" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Ο χώρος αποθήκευσης της συσκευής (%d MB) σας δεν επαρκεί." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Δεν υπάρχει αρκετός χώρος (%d MB) στη κάρτα σας SD." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Διαγράψτε ορισμένα αρχεία και δοκιμάστε ξανά." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Αποθήκευση εικόνας" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Ο χώρος αποθήκευσης της συσκευής δεν επαρκεί (απομένουν %d MB). Το στοιχείο θα αποθηκευτεί στην κάρτα SD." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Ο χώρος αποθήκευσης της κάρτας SD δεν επαρκεί (απομένουν %d MB). Το στοιχείο θα αποθηκευτεί στο χώρο αποθήκευσης της συσκευής." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Αυτή η εικόνα θα διαγραφεί." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Διακοπή" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Διαγραφή" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Σφάλμα" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Επιλογή περιοχής" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Τέλος" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Απέτυχε η φόρτωση αυτού του στοιχείου." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Αρνητικό" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "ΤΕΛΟΣ" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ΑΚΥΡΟ" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Αρνητικό" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Δεν είναι δυνατό το άνοιγμα της Συλλογής." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Φόρτωση..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Φόρτωση..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Αποτυχία φόρτωσης." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Φόρτωση εικόνας..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Απόρριψη" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Δεν είναι δυνατή η λήψη" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Τα δεδομένα κινητής τηλεφωνίας απενεργοποιήθηκαν. Συνδεθείτε σε ένα δίκτυο Wi-Fi ή ενεργοποιήστε τα δεδομένα κινητής τηλεφωνίας και δοκιμάστε ξανά." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Να μην γίνει αποστολή" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 δευτερόλεπτο" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d δευτερόλεπτα" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Εφέ" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Εφέ" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Ροή" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Σταδιακή εμφάνιση" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Δεν ανιχνεύθηκε πρόσωπο" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Μεγέθυνση" diff --git a/res/po/en.po b/res/po/en.po old mode 100755 new mode 100644 index 06c5745..f8a202b --- a/res/po/en.po +++ b/res/po/en.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Add to home" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Private" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Auto" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Rename" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "This video will be deleted." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "File name already in use." + +msgid "IDS_ST_BODY_OFF" +msgstr "Off" + +msgid "IDS_COM_BODY_DONE" +msgstr "Done" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Flash" +msgid "IDS_COM_SK_STOP" +msgstr "Stop" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s is disabled in this application. To enable this function, go to %2$s, select this function, and then select this application." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Done" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Cancel" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Enter name" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "No name" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "There is only one album." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "You can select up to %d items." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Details" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Delete" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Delete?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cancel" + +msgid "IDS_IV_POP_DELETED" +msgstr "Deleted." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Favourite" + +msgid "IDS_IV_SK_SAVE" +msgstr "Save" + +msgid "IDS_IV_POP_SAVED" +msgstr "Saved." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Settings" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Size" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Unknown" + +msgid "IDS_IV_SK_YES" +msgstr "Yes" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Copy to clipboard" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Focal length" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Flash on" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Flash off" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Image viewer" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "White balance" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "All pictures" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Auto" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Orientation" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Create tag" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Select picture" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "White balance" +msgid "IDS_MP_BODY_DURATION" +msgstr "Duration" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Accumulated time" +msgid "IDS_ST_POP_SET" +msgstr "Set" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Add tag" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Tags" -msgid "IDS_IV_POP_ADDED" -msgstr "Added" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Add comment" -msgid "IDS_IV_BODY_ANY" -msgstr "Any" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "View your media on other devices using nearby devices." -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Available uses" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Video files do not contain information about people as they do not support the face tag function." -msgid "IDS_IV_BODY_BASIC" -msgstr "Basic" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Unable to share this image. It is DRM protected." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Caller image" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Unable to open file." -msgid "IDS_IV_BODY_COUNT" -msgstr "Count" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "The recorded weather information may be different from the actual weather because of the update interval." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Date created" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "The personal content copied to the clipboard can be used to create new content. Your new content may not be hidden automatically." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Display" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "The image is too small." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Enter tag name" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "The date information is only displayed when other tags are visible." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Entry is empty" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Tap and hold thumbnails to select the best photos." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Execute" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Slideshow settings" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "File format" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Set wallpaper for home screen and lock screen." -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "File location" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Set this picture as %s's caller ID?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Forwarding" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Set as caller ID" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Home screen wallpaper" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Sending..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Impossible" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Select device" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Individual" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD card removed." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Interval" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Permission denied." -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Invalid image file" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "No location" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Latitude" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "No faces have been tagged. Tag faces in the picture." -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Locations" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "No faces detected." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Lock screen wallpaper" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Not enough memory. Delete some items." -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Longitude" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Network connection failed." msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Maximum number of characters (%d) reached" +msgstr "Maximum number of characters (%d) reached." -msgid "IDS_IV_BODY_N_A" -msgstr "N/A" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Invalid image file." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "New tag" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Flash used" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Permission denied" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "File format not supported." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Possible" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Entry is empty." -msgid "IDS_IV_BODY_PRINT" -msgstr "Print" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Enter tag name." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Print via Bluetooth" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Enable auto refresh in weather wallpaper to see weather tags." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Resolution" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Download complete" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Right status" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Best photo" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD card removed" +msgid "IDS_IV_POP_ADDED" +msgstr "Added." -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Select device" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Write caption" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Server name" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Use motion" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Set as" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Unfavourite" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Set wallpaper for home screen and lock screen" +msgid "IDS_IV_OPT_TRIM" +msgstr "Trim" -msgid "IDS_IV_OPT_SHARE" -msgstr "Share" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Tag face" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Tag buddy" + +msgid "IDS_IV_OPT_TAG" +msgstr "Tag" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Start slideshow" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "Slide show" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Timed count" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Slideshow" -msgid "IDS_IV_OPT_TRIM" -msgstr "Trim" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Show items" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Unlimited" +msgid "IDS_IV_OPT_SHARE" +msgstr "Share" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Validity" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Rotate right" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Vendor" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Rotate left" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Remove tag" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Refresh" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Print via Bluetooth" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Manually detect" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Home and lock screen wallpaper" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Hidden items" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Get directions" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "File transfer" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Do not show again" +msgid "IDS_IV_OPT_ERASER" +msgstr "Eraser" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Tap and hold at two points then tilt device back and forth to reduce or enlarge screen" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Edit weather tag" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Edit tag" + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Edit caption" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Delete caption" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Copy to clipboard" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Connection info" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Buddy photo share" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Best face" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "As video files" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "As image files" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Animated photo" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Add weather tag" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Add name" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Add caption" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Slideshow music" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Share sound & shot pics" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Set as" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Send picture to" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Select contact to share" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Play speed" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Lock screen wallpaper" msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Learn about tilt" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Home screen wallpaper" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Edit weather tag" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Edit burst shot" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Available devices" + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "All albums" -msgid "IDS_IV_OPT_TAG" -msgstr "Tag" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Add tag" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Home and lock screen wallpaper" +msgid "IDS_IV_BUTTON_STOP" +msgstr "Stop" -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Use motion" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Scan" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Home and lock screens" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "You can share your media with other devices using nearby devices." -msgid "IDS_IV_BODY_CROP" -msgstr "Crop" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "With %s and %d others" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Home screen" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "With %s" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Lock screen" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "White balance" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Rotate left" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Weather" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Rotate right" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Weather" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Manually detect" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Vendor" -msgid "IDS_IV_BODY_ME" -msgstr "Me" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Validity" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Edit tag" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Unlimited" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Remove tag" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Unable to load photo." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Timed count" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Tap faces to view information about the people." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Tap and hold at two points then tilt device back and forth to reduce or enlarge screen." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Sunny day" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Snowy day" msgid "IDS_IV_BODY_SHARE_VIA" msgstr "Share via" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Do not send" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Server name" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Buddy photo share" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Select an area to crop the picture." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Face tagging" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Selected area will be printed." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Image viewer" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Selected area will be applied to the wallpaper." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Selected area will be applied to the contact picture." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Right status" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Resolution" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Remove from favourites" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Rainy day" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Print" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Possible" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "People" + +msgid "IDS_IV_BODY_N_A" +msgstr "N/A" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "No tag" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "New tag" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" msgstr "Nearby devices" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Select an area to crop the picture" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "My device" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Selected area will be applied to the wallpaper" +msgid "IDS_IV_BODY_MODEL" +msgstr "Model" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Selected area will be printed" +msgid "IDS_IV_BODY_ME" +msgstr "Me" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "You can share your media with other devices using nearby devices" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Manufacturer" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Selected area will be applied to the contact picture" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Longitude" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Lock screen" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Location" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Location" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Locations" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Location" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Latitude" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "In %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Interval" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Individual" + +msgid "IDS_IV_BODY_IN" +msgstr "In" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Impossible" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Home screen" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Home and lock screens" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Forwarding" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Flash" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "File name" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "File location" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "File format" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "Exposure time" -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Execute" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Enable GPS tags in Camera to see location tags." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Enable auto refresh in the weather widget to see weather tags." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Duration" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM info" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Do not show again." + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Don't ask again" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Display" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Date created" + +msgid "IDS_IV_BODY_CROP" +msgstr "Crop" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Create tag" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Count" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Cloudy day" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Clear night" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Caller image" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Basic" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Available uses" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Auto" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Apply a matching colour theme to applications." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Aperture" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Orientation" +msgid "IDS_IV_BODY_ANY" +msgstr "Any" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Manufacturer" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Add to favourites" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Focal length" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Accumulated time" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Orientation" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Maximum number of characters reached." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Model" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Failed" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Add name" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Set as caller ID" +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Edit" + +msgid "IDS_ST_BODY_DATE" +msgstr "Date" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Accounts" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Download" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "After you upload pictures to Dropbox, items will be shown." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Downloading..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Add pictures" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "After you tag pictures as your favourites, pictures will be shown." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Remove face identification?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Assign name" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Confirm as %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Layout" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d pictures added" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "The album will be cancelled." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Starting download..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Not enough memory. Delete some items." + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Private storage" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Drag here." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Tap to add images." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "File already exists." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "This item will be deleted." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "After you upload pictures to Facebook, items will be shown." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Invalid character." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Manual" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Processing..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Rename" + +msgid "IDS_COM_BODY_NONE" +msgstr "None" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d selected" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Device storage" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD card" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Speed" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Background music" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 sec" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 secs" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 secs" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Storage location" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "File size" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album will be deleted." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgia" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Blur" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Soft Glow" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Save changes" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Save your changes or discard them?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Discard" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Save" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Vintage" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Sunshine" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Old Photo" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Greyscale" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sepia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Faded Colours" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Downlight" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Yellow Glow" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Sharpen" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Sketch" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Inverted Colours" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Oil Paint" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Posterise" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Cartoon" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Pop Art" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Magic Pen" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Added to block list." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Rotate" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "There is not enough space in your device storage. Go to Settings > Power and storage > Storage, then delete some files and try again." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Slide interval" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Slide interval" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Contact picture" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "None" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Edit" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Rename" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Set as" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Download" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Rename" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Rename" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Rename" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "There is already a file with this name in the destination folder." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Replace" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Set as" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Home screen wallpaper" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Lock screen wallpaper" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Home & lock screen wallpapers" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Details" + +msgid "IDS_IV_BODY_DATE" +msgstr "Date" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Unable to save image" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "There is not enough space (%d MB) in your device storage." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "There is not enough space (%d MB) on your SD card." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Delete some files and try again." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Save image" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "There is not enough space (%d MB remaining) in your device storage. This item will be saved on your SD card." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "There is not enough space (%d MB remaining) on the SD card. This item will be saved in your device storage." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "This image will be deleted." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Stop" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Delete" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Error" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Select area" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Done" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Failed to load this item." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negative" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "DONE" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CANCEL" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negative" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Unable to open Gallery." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Loading..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Loading..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Loading failed." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Loading image..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Discard" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Unable to download" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobile data is turned off. Connect to a Wi-Fi network or turn on Mobile data and try again." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Do not send" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 second" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d seconds" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Effect" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Effects" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Flow" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Fade" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "No face detected" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Zoom in" diff --git a/res/po/en_PH.po b/res/po/en_PH.po old mode 100755 new mode 100644 index 4855002..c63bd66 --- a/res/po/en_PH.po +++ b/res/po/en_PH.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Add to home" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Private" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Auto" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Rename" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "This video will be deleted." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "File name already in use." + +msgid "IDS_ST_BODY_OFF" +msgstr "Off" + +msgid "IDS_COM_BODY_DONE" +msgstr "Done" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Flash" -msgid "IDS_CAM_BODY_ISO" -msgstr "ISO" +msgid "IDS_COM_SK_STOP" +msgstr "Stop" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Copy to clipboard" +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s is disabled in this application. To enable this function, go to %2$s, select this function and then select this application." -msgid "IDS_CAM_BODY_FLASH_ON" -msgstr "Flash on" +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Flash off" +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Done" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "White balance" +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Cancel" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Auto" +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Enter name" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Create tag" +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "No name" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "White balance" +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "There is only one album." -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Accumulated time" +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "You can select up to %d items." -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Add tag" +msgid "IDS_IV_OPT_DETAILS" +msgstr "Details" -msgid "IDS_IV_POP_ADDED" -msgstr "Added" +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Delete" -msgid "IDS_IV_BODY_ANY" -msgstr "Any" +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Delete?" -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Available uses" +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cancel" -msgid "IDS_IV_BODY_BASIC" -msgstr "Basic" +msgid "IDS_IV_POP_DELETED" +msgstr "Deleted." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Caller image" +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Favorites" -msgid "IDS_IV_BODY_COUNT" -msgstr "Count" +msgid "IDS_IV_SK_SAVE" +msgstr "Save" -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Date created" +msgid "IDS_IV_POP_SAVED" +msgstr "Saved." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Display" +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Settings" -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Enter tag name" +msgid "IDS_IV_BODY_SIZE" +msgstr "Size" -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Phone contact is empty" +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Unknown" -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Execute" +msgid "IDS_IV_SK_YES" +msgstr "Yes" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "File format" +msgid "IDS_CAM_BODY_ISO" +msgstr "ISO" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "File location" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Focal length" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Forwarding" +msgid "IDS_CAM_BODY_FLASH_ON" +msgstr "Flash on" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Home screen wallpaper" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Image viewer" -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Impossible" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "All pictures" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Individual" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Orientation" -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Interval" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Select picture" -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Invalid image file" +msgid "IDS_MP_BODY_DURATION" +msgstr "Duration" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Latitude" +msgid "IDS_ST_POP_SET" +msgstr "Set" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Locations" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Tags" -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Lock screen wallpaper" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Add comment" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Longitude" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "View your media on other devices using nearby devices." -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Maximum number of characters (%d) reached" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Video files do not contain information about people as they do not support the face tag function." -msgid "IDS_IV_BODY_N_A" -msgstr "N/A" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Unable to share this image. It is DRM protected." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "New tag" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Unable to open file." -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Permission denied" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "The recorded weather information may be different from the actual weather because of the update interval." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Possible" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "The personal content copied to the clipboard can be used to create new content. Your new content may not be hidden automatically." -msgid "IDS_IV_BODY_PRINT" -msgstr "Print" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "The image is too small." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Print via Bluetooth" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "The date information is only displayed when other tags are visible." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Resolution" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Tap and hold thumbnails to select the best photos." -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Right status" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Slideshow settings" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD card removed" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Set wallpaper for home screen and lock screen" + +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Set this picture as %s's caller ID?" + +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Set as caller ID" + +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Sending..." msgid "IDS_IV_POP_SELECT_DEVICE" msgstr "Select device" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Server name" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD card removed." -msgid "IDS_IV_OPT_SET_AS" -msgstr "Set as" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Permission denied." -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Set wallpaper for home screen and lock screen" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "No location" -msgid "IDS_IV_OPT_SHARE" -msgstr "Share" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "No faces have been tagged. Tag faces in the picture" -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "Slide show" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "No faces detected." -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Timed count" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Not enough memory. Delete some items" -msgid "IDS_IV_OPT_TRIM" -msgstr "Trim" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Network connection failed." -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Unlimited" +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Maximum number of characters (%d) reached." -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Validity" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Invalid image file." -msgid "IDS_IV_BODY_VENDOR" -msgstr "Vendor" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Flash used" -msgid "IDS_IV_OPT_FILE_TRANSFER" -msgstr "File transfer" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "File format not supported." -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Do not show again" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Entry is empty." -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Tap and hold at two points then tilt device back and forth to reduce or enlarge screen" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Enter tag name." -msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" -msgstr "Learn about tilt" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Enable auto refresh in weather wallpaper to see weather tags." -msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "All albums" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Download complete" -msgid "IDS_IV_OPT_TAG" -msgstr "Tag" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Best photo" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Home and lock screen wallpaper" +msgid "IDS_IV_POP_ADDED" +msgstr "Added." + +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Write caption" msgid "IDS_IV_OPT_USE_MOTION" msgstr "Use motion" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Home and lock screens" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Unfavorite" -msgid "IDS_IV_BODY_CROP" -msgstr "Crop" +msgid "IDS_IV_OPT_TRIM" +msgstr "Trim" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Home screen" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Tag face" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Lock screen" +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Tag buddy" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Rotate left" +msgid "IDS_IV_OPT_TAG" +msgstr "Tag" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Start slideshow" + +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "Slide show" + +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Slideshow" + +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Show items" + +msgid "IDS_IV_OPT_SHARE" +msgstr "Share" msgid "IDS_IV_OPT_ROTATE_RIGHT" msgstr "Rotate right" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Rotate left" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Remove tag" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Refresh" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Print via Bluetooth" + msgid "IDS_IV_OPT_MANUALLY_DETECT" msgstr "Manually detect" -msgid "IDS_IV_BODY_ME" -msgstr "Me" +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Home and lock screen wallpaper" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Hidden items" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Get directions" + +msgid "IDS_IV_OPT_FILE_TRANSFER" +msgstr "File transfer" + +msgid "IDS_IV_OPT_ERASER" +msgstr "Eraser" + +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Edit weather tag" msgid "IDS_IV_OPT_EDIT_TAG" msgstr "Edit tag" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Remove tag" +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Edit caption" -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "Share via" +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Delete caption" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Do not send" +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Copy to clipboard" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Connection info" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" msgstr "Buddy photo share" -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Face tagging" +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Best face" -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Image viewer" +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "As video files" -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "Nearby devices" +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "As image files" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Select an area to crop the picture" +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Animated photo" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Selected area will be applied to the wallpaper" +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Add weather tag" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Selected area will be printed" +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Add name" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Add caption" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Slideshow music" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Share sound & shot pics" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Set as" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Send this picture to" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Select contact to share" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Play speed" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Lock screen wallpaper" + +msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" +msgstr "Learn about tilt" + +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Home screen wallpaper" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Edit weather tag" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Edit burst shot" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Available devices" + +msgid "IDS_IV_HEADER_ALL_ALBUMS" +msgstr "All albums" + +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Add tag" + +msgid "IDS_IV_BUTTON_STOP" +msgstr "Stop" + +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Scan" msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "You can share your media with other devices using nearby devices" +msgstr "You can share your media with other devices using nearby devices." -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Selected area will be applied to the contact picture" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "With %s and %d others" -msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "Exposure time" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "With %s" -msgid "IDS_CAM_BODY_APERTURE" -msgstr "Aperture" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "White balance" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Orientation" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Weather" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Manufacturer" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Weather" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Focal length" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Vendor" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Orientation" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Validity" -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Model" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Unlimited" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Add name" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Unable to load photo." -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Set as caller ID" +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Timed count" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Tap faces to view information about the people." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Tap and hold at two points then tilt device back and forth to reduce or enlarge screen." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Sunny day" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Snowy day" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Share via" + +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Server name" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Select an area to crop the picture." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Selected area will be printed." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Selected area will be applied to the wallpaper." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Selected area will be applied to the contact picture." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Right status" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Resolution" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Remove from favorites" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Rainy day" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Print" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Possible" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "People" + +msgid "IDS_IV_BODY_N_A" +msgstr "N/A" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "No tag" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "New tag" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "Nearby devices" + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "My device" + +msgid "IDS_IV_BODY_MODEL" +msgstr "Model" + +msgid "IDS_IV_BODY_ME" +msgstr "Me" + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Manufacturer" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Longitude" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Lock screen" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Location" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Location" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Locations" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Location" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Latitude" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "In %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Interval" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Individual" + +msgid "IDS_IV_BODY_IN" +msgstr "In" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Impossible" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Home screen" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Home and lock screens" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Forwarding" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Flash" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "File name" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "File location" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "File format" + +msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" +msgstr "Exposure time" + +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Execute" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Enable GPS tags in Camera to see location tags." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Enable auto refresh in the weather widget to see weather tags." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Duration" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM info" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Do not show again." + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Don't ask again" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Display" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Date created" + +msgid "IDS_IV_BODY_CROP" +msgstr "Crop" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Create tag" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Count" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Cloudy day" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Clear night" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Caller image" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Basic" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Available uses" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Auto" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Apply a matching colour theme to applications." + +msgid "IDS_IV_BODY_APERTURE" +msgstr "Aperture" + +msgid "IDS_IV_BODY_ANY" +msgstr "Any" + +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Add to Favorites" + +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Accumulated time" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Maximum number of characters reached." + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Failed" + +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" + +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Edit" + +msgid "IDS_ST_BODY_DATE" +msgstr "Date" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Accounts" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Download" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "After you upload pictures to Dropbox, items will be shown." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Downloading..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Add pictures" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "After you tag pictures as your favorites, pictures will be shown." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Remove face identification?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Assign name" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Confirm as %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Layout" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d pictures added" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "The album will be canceled." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Starting download..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Not enough memory. Delete some items" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Private storage" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Drag here" + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Tap to add images." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "File already exists." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "This item will be deleted." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "After you upload pictures to Facebook, items will be shown." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Invalid character." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Manual" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Processing..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Rename" + +msgid "IDS_COM_BODY_NONE" +msgstr "None" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d selected" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Device storage" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD card" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Speed" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Background music" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 sec" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 secs" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 secs" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Storage location" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "File size" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album will be deleted." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgia" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Blur" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Soft glow" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Save changes" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Save your changes or discard them?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Discard" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Save" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Vintage" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Sunshine" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Old Photo" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Grayscale" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sepia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Faded colors" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Downlight" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Yellow Glow" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Sharpen" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Sketch" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Inverted Colors" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Oil Paint" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Posterize" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Cartoon" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Pop Art" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Magic Pen" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Added to block list." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Rotate" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "There is not enough space in your device storage. Go to Settings > Power and storage > Storage, then delete some files and try again." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Slide interval" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Slide interval" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Contact picture" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "None" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Edit" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Rename" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Set as" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Download" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Rename" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Rename" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Rename" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "There is already a file with this name in the destination folder." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Replace" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Set as" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Home screen wallpaper" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Lock screen wallpaper" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Home & lock screen wallpapers" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Details" + +msgid "IDS_IV_BODY_DATE" +msgstr "Date" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Unable to save image" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "There is not enough space (%d MB) in your device storage." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "There is not enough space (%d MB) on your SD card." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Delete some files and try again." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Save image" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "There is not enough space (%d MB remaining) in your device storage. This item will be saved on your SD card." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "There is not enough space (%d MB remaining) on the SD card. This item will be saved in your device storage." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "This image will be deleted." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Stop" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Delete" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Error" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Select area" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Done" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Failed to load this item." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negative" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "DONE" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CANCEL" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negative" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Unable to open Gallery." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Loading..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Loading..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Loading failed." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Loading image..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Discard" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Unable to download" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobile data is turned off. Connect to a Wi-Fi network or turn on Mobile data and try again." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Do not send" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 second" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d seconds" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Effect" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Effects" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Flow" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Fade" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "No face detected" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Zoom in" diff --git a/res/po/en_US.po b/res/po/en_US.po old mode 100755 new mode 100644 index 406af9f..26ebcd7 --- a/res/po/en_US.po +++ b/res/po/en_US.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Add to home" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Private" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Auto" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Rename" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "This video will be deleted." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "File name already in use." + +msgid "IDS_ST_BODY_OFF" +msgstr "Off" + +msgid "IDS_COM_BODY_DONE" +msgstr "Done" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Flash" +msgid "IDS_COM_SK_STOP" +msgstr "Stop" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s is turned off in this application. To turn this function on, go to %2$s, select this function, then select this application." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Done" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Cancel" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Enter name" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "No name" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "There is only one album." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "You can select up to %d items." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Details" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Delete" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Delete?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cancel" + +msgid "IDS_IV_POP_DELETED" +msgstr "Deleted." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Favorite" + +msgid "IDS_IV_SK_SAVE" +msgstr "Save" + +msgid "IDS_IV_POP_SAVED" +msgstr "Saved." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Settings" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Size" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Unknown" + +msgid "IDS_IV_SK_YES" +msgstr "Yes" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Copy to clipboard" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Focal length" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Flash on" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Flash off" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Image viewer" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "White balance" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "All pictures" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Auto" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Orientation" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Create tag" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Select picture" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "White balance" +msgid "IDS_MP_BODY_DURATION" +msgstr "Duration" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Accumulated time" +msgid "IDS_ST_POP_SET" +msgstr "Set" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Add tag" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Tags" -msgid "IDS_IV_POP_ADDED" -msgstr "Added" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Add comment" -msgid "IDS_IV_BODY_ANY" -msgstr "Any" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "View your media on other devices using nearby devices." -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Available uses" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Video files do not contain information about people as they do not support the face tag function." -msgid "IDS_IV_BODY_BASIC" -msgstr "Basic" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Unable to share this image. It is DRM protected." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Caller image" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Unable to open file." -msgid "IDS_IV_BODY_COUNT" -msgstr "Count" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "The recorded weather information may be different from the actual weather because of the update interval." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Date created" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "The personal content copied to the clipboard can be used to create new content. Your new content may not be hidden automatically." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Display" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "The image is too small." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Enter tag name" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "The date information is only displayed when other tags are visible." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Entry is empty" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Press and hold thumbnails to select the best pictures." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Execute" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Slideshow settings" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "File format" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Set wallpaper for Home screen and lock screen" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "File location" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Set this picture as %s's caller ID?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Forwarding" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Set as caller ID" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Home screen wallpaper" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Sending..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Impossible" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Select device" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Individual" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD card removed." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Interval" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Permission denied." -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Invalid image file" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "No location" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Latitude" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "No faces have been tagged. Tag faces in the picture." -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Locations" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "No faces detected." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Lock screen wallpaper" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Not enough memory. Delete some items." -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Longitude" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Network connection failed." msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Maximum number of characters (%d) reached" +msgstr "Maximum number of characters (%d) reached." -msgid "IDS_IV_BODY_N_A" -msgstr "N/A" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Invalid image file." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "New tag" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Flash used" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Permission denied" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "File format not supported." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Possible" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Entry is empty." -msgid "IDS_IV_BODY_PRINT" -msgstr "Print" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Enter tag name." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Print via Bluetooth" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Turn on auto refresh in weather wallpaper to see weather tags." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Resolution" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Download complete" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Right status" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Best photo" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD card removed" +msgid "IDS_IV_POP_ADDED" +msgstr "Added." -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Select device" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Write caption" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Server name" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Use motion" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Set as" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Unfavorite" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Set wallpaper for home screen and lock screen" +msgid "IDS_IV_OPT_TRIM" +msgstr "Trim" + +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Tag face" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Tag buddy" + +msgid "IDS_IV_OPT_TAG" +msgstr "Tag" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Start slideshow" + +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "Slideshow" + +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Slideshow" + +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Show items" msgid "IDS_IV_OPT_SHARE" msgstr "Share" -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "Slide show" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Rotate right" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Timed count" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Rotate left" -msgid "IDS_IV_OPT_TRIM" -msgstr "Trim" +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Remove tag" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Unlimited" +msgid "IDS_IV_OPT_REFRESH" +msgstr "Refresh" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Validity" +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Print via Bluetooth" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Vendor" +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Manually detect" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Home and lock screen wallpaper" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Hidden items" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Get directions" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "File transfer" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Do not show again" +msgid "IDS_IV_OPT_ERASER" +msgstr "Eraser" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Tap and hold at two points then tilt device back and forth to reduce or enlarge screen" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Edit weather tag" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Edit tag" + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Edit caption" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Delete caption" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Copy to clipboard" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Connection info" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Buddy photo share" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Best face" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "As video files" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "As image files" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Animated photo" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Add weather tag" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Add name" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Add caption" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Slideshow music" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Share sound & shot pics" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Set as" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Send this picture to" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Select contact to share" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Play speed" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Lock screen wallpaper" msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Learn about tilt" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Home screen wallpaper" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Edit weather tag" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Edit burst shot" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Available devices" + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "All albums" -msgid "IDS_IV_OPT_TAG" -msgstr "Tag" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Add tag" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Home and lock screen wallpaper" +msgid "IDS_IV_BUTTON_STOP" +msgstr "Stop" -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Use motion" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Scan" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Home and lock screens" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "You can share your media with other devices using nearby devices." -msgid "IDS_IV_BODY_CROP" -msgstr "Crop" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "With %s and %d others" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Home screen" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "With %s" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Lock screen" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "White balance" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Rotate left" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Weather" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Rotate right" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Weather" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Manually detect" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Vendor" -msgid "IDS_IV_BODY_ME" -msgstr "Me" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Validity" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Edit tag" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Unlimited" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Delete tag" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Unable to load photo." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Timed count" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Tap faces to view information about the people." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Press and hold at two points then tilt device back and forth to reduce or enlarge screen." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Sunny day" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Snowy day" msgid "IDS_IV_BODY_SHARE_VIA" msgstr "Share via" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Do not send" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Server name" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Buddy photo share" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Select an area to crop the picture." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Face tagging" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Selected area will be printed." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Image viewer" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Selected area will be applied to the wallpaper." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Selected area will be applied to the contact picture." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Right status" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Resolution" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Remove from Favorites" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Rainy day" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Print" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Possible" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "People" + +msgid "IDS_IV_BODY_N_A" +msgstr "N/A" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "No tag" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "New tag" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" msgstr "Nearby devices" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Select an area to crop the picture" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "My device" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Selected area will be applied to the wallpaper" +msgid "IDS_IV_BODY_MODEL" +msgstr "Model" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Selected area will be printed" +msgid "IDS_IV_BODY_ME" +msgstr "Me" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "You can share your media with other devices using nearby devices" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Manufacturer" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Selected area will be applied to the contact picture" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Longitude" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Lock screen" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Location" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Location" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Locations" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Location" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Latitude" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "In %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Interval" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Individual" + +msgid "IDS_IV_BODY_IN" +msgstr "In" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Impossible" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Home screen" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Home and lock screens" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Forwarding" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Flash" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "File name" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "File location" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "File format" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "Exposure time" -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Execute" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Turn on GPS tags in Camera to see location tags." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Turn on auto refresh in the weather widget to see weather tags." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Duration" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM info" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Do not show again" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Don't ask again" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Display" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Date created" + +msgid "IDS_IV_BODY_CROP" +msgstr "Crop" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Create tag" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Count" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Cloudy day" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Clear night" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Caller image" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Basic" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Available uses" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Auto" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Apply a matching color theme to applications." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Aperture" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Orientation" +msgid "IDS_IV_BODY_ANY" +msgstr "Any" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Manufacturer" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Add to Favorites" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Focal length" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Accumulated time" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Orientation" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Maximum number of characters reached." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Model" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Failed" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Add name" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Set as caller ID" +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Edit" + +msgid "IDS_ST_BODY_DATE" +msgstr "Date" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Accounts" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Download" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "After you upload pictures to Dropbox, items will be shown." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Downloading..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Add pictures" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "After you tag pictures as your favorites, pictures will be shown." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Remove face identification?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Assign name" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Confirm as %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Layout" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d pictures added" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "The album will be canceled." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Starting download..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Not enough memory. Delete some items." + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Private storage" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Drag here" + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Tap to add images." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "File already exists." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "This item will be deleted." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "After you upload pictures to Facebook, items will be shown." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Invalid character." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Manual" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Processing..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Rename" + +msgid "IDS_COM_BODY_NONE" +msgstr "None" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d selected" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Device storage" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD card" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Speed" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Background music" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 sec" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 secs" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 secs" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Storage location" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "File size" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album will be deleted." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgia" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Blur" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Soft Glow" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Save changes" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Save your changes or discard them?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Discard" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Save" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Vintage" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Sunshine" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Old Photo" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Grayscale" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sepia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Faded Colors" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Downlight" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Yellow Glow" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Sharpen" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Sketch" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Inverted Colors" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Oil Paint" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Posterize" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Cartoon" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Pop Art" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Magic Pen" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Added to block list." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Rotate" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "There is not enough space in your device storage. Go to Settings > Power and storage > Storage, then delete some files and try again." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Slide interval" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Slide interval" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Contact picture" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "None" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Edit" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Rename" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Set as" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Download" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Rename" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Rename" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Rename" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "There is already a file with this name in the destination folder." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Replace" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Set as" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Home screen wallpaper" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Lock screen wallpaper" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Home & lock screen wallpapers" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Details" + +msgid "IDS_IV_BODY_DATE" +msgstr "Date" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Unable to save image" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "There is not enough space (%d MB) in your device storage." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "There is not enough space (%d MB) on your SD card." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Delete some files and try again." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Save image" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "There is not enough space (%d MB remaining) in your device storage. This item will be saved on your SD card." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "There is not enough space (%d MB remaining) on the SD card. This item will be saved in your device storage." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "This image will be deleted." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Stop" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Delete" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Error" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Select area" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Done" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Failed to load this item." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negative" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "DONE" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CANCEL" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negative" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Unable to open Gallery." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Loading..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Loading..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Loading failed." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Loading image..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Discard" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Unable to download" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobile data is turned off. Connect to a Wi-Fi network or turn on Mobile data, and try again." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Do not send" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 second" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d seconds" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Effect" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Effects" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Flow" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Fade" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "No face detected" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Zoom in" diff --git a/res/po/es_ES.po b/res/po/es_ES.po old mode 100755 new mode 100644 index e5591ff..c279c12 --- a/res/po/es_ES.po +++ b/res/po/es_ES.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Añadir a inicio" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Privado" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Auto" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Renombrar" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Se eliminará este vídeo" + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "El nombre de archivo ya está en uso." + +msgid "IDS_ST_BODY_OFF" +msgstr "Desactivado" + +msgid "IDS_COM_BODY_DONE" +msgstr "Hecho" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Flash" -msgid "IDS_CAM_BODY_ISO" -msgstr "ISO" +msgid "IDS_COM_SK_STOP" +msgstr "Parar" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Copiar en portapapeles" +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s está desactivado en esta aplicación. Para activar esta función, vaya a %2$s, seleccione esta función y, a continuación, seleccione esta aplicación." -msgid "IDS_CAM_BODY_FLASH_ON" -msgstr "Flash activado" +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "Aceptar" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Flash Desactivado" +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Hecho" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Balance de blancos" +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Cancelar" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Auto" +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Introducir nombre" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Crear etiq" +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Sin nombre" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Balance blanco" +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Solo hay un álbum" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Tiempo acumulado" +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Puede seleccionar hasta %d elementos" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Añad etiq" +msgid "IDS_IV_OPT_DETAILS" +msgstr "Detalles" -msgid "IDS_IV_POP_ADDED" -msgstr "Añadido" +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Eliminar" -msgid "IDS_IV_BODY_ANY" -msgstr "Cualquiera" +msgid "IDS_IV_POP_DELETE_Q" +msgstr "¿Eliminar?" -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Usos disponibles" +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cancelar" -msgid "IDS_IV_BODY_BASIC" -msgstr "Básico" +msgid "IDS_IV_POP_DELETED" +msgstr "Eliminado" -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Imagen de llamante" +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Favorito" -msgid "IDS_IV_BODY_COUNT" -msgstr "Contar" +msgid "IDS_IV_SK_SAVE" +msgstr "Guardar" -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Fecha de creación" +msgid "IDS_IV_POP_SAVED" +msgstr "Guardado" -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Pantalla" +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Ajustes" -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Introduzca el nombre de la etiqueta" +msgid "IDS_IV_BODY_SIZE" +msgstr "Tamaño" -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Entrada vacía" +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Desconocido" -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Ejecutar" +msgid "IDS_IV_SK_YES" +msgstr "Sí" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Formato de archivo" +msgid "IDS_CAM_BODY_ISO" +msgstr "ISO" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Ubicación de archivo" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Longitud focal" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Reenviando" +msgid "IDS_CAM_BODY_FLASH_ON" +msgstr "Flash activado" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Fondo de pantalla de inicio" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Visor de imágenes" -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Imposible" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Todas las imágenes" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Individual" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Orientación" -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Intervalo" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Seleccionar imagen" -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Archivo de imagen no válido" +msgid "IDS_MP_BODY_DURATION" +msgstr "Duración" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Latitud" +msgid "IDS_ST_POP_SET" +msgstr "Definir" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Ubicaciones" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Etiquetas" -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Fondo de pantalla de bloqueo" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Añadir coment." -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Longitud" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Ver sus archivos multimedia en otros dispositivos utilizando dispositivos cercanos" -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Número máximo de caracteres (%d) alcanzado" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Los archivos de vídeo no contienen información sobre personas puesto que no admiten la función de etiquetado de cara" -msgid "IDS_IV_BODY_N_A" -msgstr "N/A" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "No se puede compartir esta imagen. Está protegida por DRM." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Nueva etiqueta" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "No se puede abrir el archivo" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Permiso denegado" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "La información del tiempo grabada puede ser diferente de la real por el intervalo de actualización" -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Posible" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "El contenido personal copiado en el portapapeles se puede utilizar para crear contenido nuevo. Es posible que el contenido nuevo no se oculte automáticamente." -msgid "IDS_IV_BODY_PRINT" -msgstr "Imprimir" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "La imagen es demasiado pequeña" -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Imprimir por Bluetooth" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "La información relativa a la fecha solo se visualiza si hay otras etiquetas visibles." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Resolución" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Mantenga pulsadas las miniaturas para seleccionar las mejores fotos" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Estado correcto" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Configuración de presentación de diapositivas" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "Se ha extraído la tarjeta SD" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Definir fondo de pantalla para la pantalla de inicio y de bloqueo" + +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "¿Definir esta foto como ID del llamante de %s?" + +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Definir como ID de llamante" + +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Enviando..." msgid "IDS_IV_POP_SELECT_DEVICE" msgstr "Seleccione dispositivo" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Nombre de servidor" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "Se ha extraído la tarjeta SD" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Definir como" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Permiso denegado" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Definir fondo de pantalla para la pantalla de inicio y de bloqueo" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Sin ubicación" -msgid "IDS_IV_OPT_SHARE" -msgstr "Compartir" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "No se han etiquetado rostros. Etiquete rostros en la foto." -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "Presentación de diapositivas" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "No se han detectado rostros" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Recuento de tiempo" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "No hay memoria suficiente. Elimine algunos elementos." -msgid "IDS_IV_OPT_TRIM" -msgstr "Recortar" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Error de conexión de red" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Ilimitado" +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Número máximo de caracteres (%d) alcanzado" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Validez" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Archivo de imagen no válido" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Proveedor" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Flash usado" -msgid "IDS_IV_OPT_FILE_TRANSFER" -msgstr "Transferencia de archivo" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Formato de archivo no admitido" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "No mostrar de nuevo" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Entrada vacía" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Mantenga pulsado en dos puntos e incline el dispositivo hacia atrás y hacia adelante para reducir o ampliar la pantalla" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Introduzca el nombre de la etiqueta" -msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" -msgstr "Más información sobre la inclinación" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Active la actualización automática en el fondo de pantalla del tiempo para ver las etiquetas del tiempo" -msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "Todos los álbumes" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Descarga completa" -msgid "IDS_IV_OPT_TAG" -msgstr "Etiqueta" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Best photo" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Fondo de pantalla de pantalla de inicio y bloqueo" +msgid "IDS_IV_POP_ADDED" +msgstr "Añadido" + +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Escribir título" msgid "IDS_IV_OPT_USE_MOTION" msgstr "Utilizar movimiento" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Pantallas de inicio y de bloqueo" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Quitar de favoritos" -msgid "IDS_IV_BODY_CROP" +msgid "IDS_IV_OPT_TRIM" msgstr "Recortar" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Pantalla de inicio" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Etiquetar cara" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Pantalla de bloqueo" +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Tag buddy" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Girar a la izquierda" +msgid "IDS_IV_OPT_TAG" +msgstr "Etiqueta" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Iniciar presentación de diapositivas" + +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "Presentación de diapositivas" + +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Pres de diapositivas" + +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Mostrar elementos" + +msgid "IDS_IV_OPT_SHARE" +msgstr "Compartir" msgid "IDS_IV_OPT_ROTATE_RIGHT" msgstr "Girar a la derecha" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Girar a la izquierda" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Eliminar etiqueta" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Actualizar" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Imprimir por Bluetooth" + msgid "IDS_IV_OPT_MANUALLY_DETECT" msgstr "Detectar manualmente" -msgid "IDS_IV_BODY_ME" -msgstr "Yo" +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Fondo de pantalla de pantalla de inicio y bloqueo" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Elementos ocultos" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Obtener direcciones" + +msgid "IDS_IV_OPT_FILE_TRANSFER" +msgstr "Transferencia de archivo" + +msgid "IDS_IV_OPT_ERASER" +msgstr "Borrado" + +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Editar etiq tiempo" msgid "IDS_IV_OPT_EDIT_TAG" msgstr "Edit etiq" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Eliminar etiqueta" +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Editar título" -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "Compartir" +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Eliminar subtítulo" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "No enviar" +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Copiar en portapapeles" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Info de conexión" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" msgstr "Compartir foto de amigo" -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Etiq. de caras" +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Best face" -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Visor de imágenes" +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Como archivos de vídeo" -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "Dispositivos cercanos" +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Como archivos de imagen" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Seleccione un área para recortar la foto" +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Foto animada" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "El área seleccionada se aplicará al fondo de pantalla" +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Añadir etiqueta meteorol." -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Se imprimirá el área seleccionada" +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Añadir nombre" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Puede compartir su contenido multimedia con otros dispositivos mediante dispositivos cercanos" +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Añadir título" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "El área seleccionada se aplicará a la foto del contacto" +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Música de presentación de diapositivas" -msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "Tiempo expos" +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Comp fotos sound & shot" -msgid "IDS_CAM_BODY_APERTURE" -msgstr "Apertura" +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Definir como" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Orientación" +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Enviar foto a" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Fabricante" +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Seleccionar un contacto para compartir" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Longitud focal" +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Velocidad de reproducción" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Orientación" +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Fondo de pantalla de bloqueo" -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Modelo" +msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" +msgstr "Más información sobre la inclinación" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Añadir nombre" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Fondo de pantalla de inicio" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Definir como ID de llamante" +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Editar etiq tiempo" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Editar ráfaga de fotos" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Disposit dispon" + +msgid "IDS_IV_HEADER_ALL_ALBUMS" +msgstr "Todos los álbumes" + +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Añad etiq" + +msgid "IDS_IV_BUTTON_STOP" +msgstr "Parar" + +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Buscar" + +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Puede compartir su contenido multimedia con otros dispositivos mediante dispositivos cercanos" + +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Con %s y %d más" + +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Con %s" + +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Balance de blancos" + +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Tiempo" + +msgid "IDS_IV_BODY_WEATHER" +msgstr "Clima" + +msgid "IDS_IV_BODY_VENDOR" +msgstr "Proveedor" + +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Validez" + +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Ilimitado" + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "No se puede cargar la foto" + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Recuento de tiempo" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "La información meteorológica registrada debe editarse manualmente. Su dispositivo no admite la información meteorológica registrada por el widget del tiempo." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Pulse las caras para ver la información sobre las personas" + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Mantenga pulsado en dos puntos e incline el dispositivo hacia atrás y hacia adelante para reducir o ampliar la pantalla" + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Día soleado" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Día nevoso" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Compartir" + +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Nombre de servidor" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Seleccione un área para recortar la foto" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Se imprimirá el área seleccionada" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "El área seleccionada se aplicará al fondo de pantalla" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "El área seleccionada se aplicará a la foto del contacto" + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Estado correcto" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Resolución" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Eliminar de favoritos" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Día lluvioso" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Imprimir" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Posible" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Gente" + +msgid "IDS_IV_BODY_N_A" +msgstr "N/A" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "No hay etiquetas" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Nueva etiqueta" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "Dispositivos cercanos" + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Mi dispositivo" + +msgid "IDS_IV_BODY_MODEL" +msgstr "Modelo" + +msgid "IDS_IV_BODY_ME" +msgstr "Yo" + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Fabricante" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Longitud" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Pantalla Bloqueo" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Ubicación" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Ubicación" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Ubicaciones" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Ubicación" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Latitud" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "Dentro de %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Intervalo" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Individual" + +msgid "IDS_IV_BODY_IN" +msgstr "En" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Imposible" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Pantalla Inicio" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Pantallas Inicio y Bloqueo" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Reenviando" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Flash" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Nombre" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Ubicación de archivo" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Formato de archivo" + +msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" +msgstr "Tiempo expos" + +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Ejecutar" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Activar etiquetas GPS en Cámara para ver las etiquetas de ubicación" + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Active la actualización automática en el widget del tiempo para ver las etiquetas del tiempo" + +msgid "IDS_IV_BODY_DURATION" +msgstr "Duración" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "Información de DRM" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "No mostrar de nuevo" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "No preguntar de nuevo" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Pantalla" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Fecha de creación" + +msgid "IDS_IV_BODY_CROP" +msgstr "Recortar" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Crear etiq" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Contar" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Día nublado" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Noche despejada" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Imagen de llamante" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Básico" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Usos disponibles" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Auto" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Aplicar un tema de color que combine con las aplicaciones." + +msgid "IDS_IV_BODY_APERTURE" +msgstr "Apertura" + +msgid "IDS_IV_BODY_ANY" +msgstr "Cualquiera" + +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Añadir a Favoritos" + +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Tiempo acumulado" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Alcanzado el número máximo de caracteres" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Error" + +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" + +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Editar" + +msgid "IDS_ST_BODY_DATE" +msgstr "Fecha" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Cuentas" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Descargar" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Después de cargar fotos a Dropbox, se mostrarán elementos" + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Descargando..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Añadir imágenes" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Después de etiquetar fotos como favoritas, se mostrarán sus fotos" + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "¿Eliminar identificación de caras?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Asignar nombre" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Confirmar como %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Diseño" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d imágenes añadidas" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Se cancelará el álbum" + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Iniciando descarga..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "No hay memoria suficiente. Elimine algunos elementos." + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Almacenamiento privado" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Mover aquí" + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Pulse para añadir imágenes" + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "El archivo ya existe" + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Se eliminará este elemento" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Después de cargar fotos a Facebook, se mostrarán elementos" + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Carácter no válido" + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Manual" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Procesando..." + +msgid "IDS_ST_BODY_OK" +msgstr "Aceptar" + +msgid "IDS_ST_SK_RENAME" +msgstr "Camb. nom" + +msgid "IDS_COM_BODY_NONE" +msgstr "Ninguno" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d seleccionado" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Almacenamiento del dispositivo" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "Tarjeta SD" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Velocidad" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Música de fondo" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 seg" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 seg" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 seg" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Ubicación de almacenamiento" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Tamaño del archivo" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "Se eliminará 1 álbum" + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgia" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Desenfoque" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Resplandor suave" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Guardar cambios" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "¿Guardar cambios o descartarlos?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Descart" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Guardar" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Vintage" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Luz del sol" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Foto antigua" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Escala de grises" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sepia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Colores atenuados" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Luz descendente" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Brillo amarillo" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Enfocar" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Bosquejo" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Colores invertidos" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Pintura al óleo" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Posterizar" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Dibujo animado" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Arte pop" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Lápiz mágico" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Añadido a la lista Bloquear" + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Rotar" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "No queda espacio suficiente en el almacenamiento del dispositivo. Vaya a Ajustes > Alimentación y almacenamiento > Almacenamiento y, a continuación, elimine algunos archivos e inténtelo de nuevo." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Intervalo de diapositivas" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Intervalo de diapositivas" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Imagen del contacto" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Ninguna" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Editar" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Cambiar nombre" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Definir como" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Descargar" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Cambiar nombre" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Renombrar" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Renombr" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Ya hay un archivo con este nombre en la carpeta de destino." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Reempl" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Establecer como" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Fondo de la pantalla Inicio" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Fondo de pantalla de bloqueo" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Fondo pant de pant ini y bloq" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Detalles" + +msgid "IDS_IV_BODY_DATE" +msgstr "Fecha" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "No se puede guardar imagen" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "No hay espacio suficiente (%d MB) en el almacenamiento del dispositivo." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "No hay suficiente espacio (%d MB) en la tarjeta SD" + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Elimine algunos archivos y vuelva a intentarlo." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Guardar imagen" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "No hay espacio suficiente (%d MB restante/s) en el almacenamiento del dispositivo. Este elemento se guardará en la tarjeta SD." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "No hay espacio suficiente (%d MB restante/s) en la tarjeta SD. Este elemento se guardará en el almacenamiento de su dispositivo." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Esta imagen se eliminará" + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Detener" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Eliminar" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Error" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Seleccionar área" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Hecho" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Error al cargar este elemento." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negativo" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "HECHO" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CANCELAR" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negativo" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "No se puede abrir la galería." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Cargando..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Cargando..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Error al cargar" + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Cargando imagen..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Descartar" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "No se puede descargar" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Los datos móviles están desactivados. Conéctese a una red Wi-Fi o active los datos móviles y vuelva a intentarlo." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "No enviar" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 segundo" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d segundos" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Efecto" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Efectos" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Flujo" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Desvanecer" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Ninguna cara detectada" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Acercar" diff --git a/res/po/es_MX.po b/res/po/es_MX.po deleted file mode 100755 index c1c5562..0000000 --- a/res/po/es_MX.po +++ /dev/null @@ -1,288 +0,0 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Añadir a inicio" - -msgid "IDS_CAM_BODY_AUTO" -msgstr "Automático" - -msgid "IDS_CAM_BODY_FLASH" -msgstr "Flash" - -msgid "IDS_CAM_BODY_ISO" -msgstr "ISO" - -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Copiar a portapapeles" - -msgid "IDS_CAM_BODY_FLASH_ON" -msgstr "Flash encendido" - -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Flash apagado" - -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Balance de blancos" - -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Auto" - -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Crear etiq" - -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Balance de blancos" - -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Tiempo acumulado" - -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Añadir etiqueta" - -msgid "IDS_IV_POP_ADDED" -msgstr "Añadido" - -msgid "IDS_IV_BODY_ANY" -msgstr "Cualquiera" - -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Usos disponibles" - -msgid "IDS_IV_BODY_BASIC" -msgstr "Básico" - -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "ID del llamante" - -msgid "IDS_IV_BODY_COUNT" -msgstr "Recuento" - -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Fecha de creación" - -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Pantalla" - -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Introducir el nombre de la etiqueta" - -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Entrada vacía" - -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Ejecutar" - -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Formato del archivo" - -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Ubicación del archivo" - -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Reenvío" - -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Fondo pantalla inicio" - -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Imposible" - -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Individual" - -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Intervalo" - -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Archivo de imagen no válido" - -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Latitud" - -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Ubicaciones" - -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Fondo pantalla bloq." - -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Longitud" - -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Número máximo de caracteres (%d) alcanzado" - -msgid "IDS_IV_BODY_N_A" -msgstr "N/A" - -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Nueva etiqueta" - -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Permiso denegado" - -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Posible" - -msgid "IDS_IV_BODY_PRINT" -msgstr "Imprimir" - -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Imprimir vía Bluetooth" - -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Resolución" - -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Estados de derechos" - -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "Se ha extraído la tarjeta de memoria" - -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Seleccionar dispositivo" - -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Nombre de servidor" - -msgid "IDS_IV_OPT_SET_AS" -msgstr "Definir como" - -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Definir fondo para la pantalla de inicio y de bloqueo" - -msgid "IDS_IV_OPT_SHARE" -msgstr "Compartir" - -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "Presentación de diapositivas " - -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Recuento de tiempo" - -msgid "IDS_IV_OPT_TRIM" -msgstr "Recortar" - -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Ilimitado" - -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Validez" - -msgid "IDS_IV_BODY_VENDOR" -msgstr "Proveedor" - -msgid "IDS_IV_OPT_FILE_TRANSFER" -msgstr "Transferencia de archivos" - -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "No mostrar de nuevo" - -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Mantenga pulsado en dos puntos e incline el dispositivo hacia atrás y hacia adelante para reducir o ampliar la pantalla" - -msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" -msgstr "Conocer sobre inclinar para ampliar" - -msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "Todos los álbumes" - -msgid "IDS_IV_OPT_TAG" -msgstr "Etiqueta" - -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Fondo de pantalla de inicio y bloqueo de pantalla" - -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Utilizar movimiento" - -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Pantallas de inicio y de bloqueo" - -msgid "IDS_IV_BODY_CROP" -msgstr "Recortar" - -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Pantalla de inicio" - -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Pantalla de bloqueo" - -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Girar a la izquierda" - -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Girar a la derecha" - -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Detectar manualmente" - -msgid "IDS_IV_BODY_ME" -msgstr "Yo" - -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Edit. etiq." - -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Eliminar etiqueta" - -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "Compartir vía" - -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "No enviar" - -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Compartir foto de amigo" - -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Etiquetas de caras" - -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Visor de imágenes" - -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "Dispositivos cercanos" - -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Seleccione área para recortar la imagen" - -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "El área seleccionada se definirá como fondo" - -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Se imprimirá el área seleccionada" - -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Puede compartir su contenido multimedia con otros dispositivos usando dispositivos cercanos" - -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "El área seleccionada se definirá como ID del llamante" - -msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "Exposición" - -msgid "IDS_CAM_BODY_APERTURE" -msgstr "Apertura" - -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Orientación" - -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Fabricante" - -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Longitud focal" - -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Orientación" - -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Modelo" - -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Añadir nombre" - -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Definir como ID del llamante" - -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Ningún rostro detectado" - diff --git a/res/po/es_US.po b/res/po/es_US.po new file mode 100644 index 0000000..9267e84 --- /dev/null +++ b/res/po/es_US.po @@ -0,0 +1,996 @@ +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Privado" + +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Renombrar" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Este video se eliminará." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Nombre de archivo ya existe." + +msgid "IDS_ST_BODY_OFF" +msgstr "Desactivado" + +msgid "IDS_COM_BODY_DONE" +msgstr "Realizado" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" + +msgid "IDS_CAM_BODY_FLASH" +msgstr "Flash" + +msgid "IDS_COM_SK_STOP" +msgstr "Detener" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s está desactivado en esta aplicación. Para activar esta función, vaya a %2$s, seleccione esta función y, a continuación, seleccione esta aplicación." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "Aceptar" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Aceptar" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Cancelar" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Introducir nombre" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Sin nombre" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Sólo hay un álbum." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Puede seleccionar hasta %d elementos." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Detalles" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Eliminar" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "¿Eliminar?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cancelar" + +msgid "IDS_IV_POP_DELETED" +msgstr "Eliminado." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Favorito" + +msgid "IDS_IV_SK_SAVE" +msgstr "Guardar" + +msgid "IDS_IV_POP_SAVED" +msgstr "Guardado." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Ajustes" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Tamaño" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Desconocido" + +msgid "IDS_IV_SK_YES" +msgstr "Sí" + +msgid "IDS_CAM_BODY_ISO" +msgstr "ISO" + +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Longitud focal" + +msgid "IDS_CAM_BODY_FLASH_ON" +msgstr "Flash encendido" + +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Visor de imágenes" + +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Todas las imágenes" + +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Orientación" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Seleccionar imagen" + +msgid "IDS_MP_BODY_DURATION" +msgstr "Duración" + +msgid "IDS_ST_POP_SET" +msgstr "Definir" + +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Etiquetas" + +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Añadir comentario" + +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Vea su contenido multimedia en otros dispositivos mediante dispositivos cercanos." + +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Los archivos de video no contienen información acerca de las personas, ya que no son compatibles con la función de etiqueta de rostros." + +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "No se puede compartir esta imagen. Está protegida por DRM." + +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "No se puede abrir el archivo." + +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "La información de clima grabada puede diferir del clima actual debido al intervalo de actualización." + +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "El contenido personal copiado en el portapapeles se puede utilizar para crear contenido nuevo. Es posible que el contenido nuevo no se oculte automáticamente." + +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "La imagen es demasiado pequeña." + +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "La información de la fecha sólo aparece cuando las otras etiquetas son visibles." + +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Mantenga pulsadas las miniaturas para seleccionar las mejores imágenes." + +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Configurar presentación" + +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Definir fondo para la pantalla de inicio y de bloqueo" + +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "¿Definir esta imagen como ID del llamante de %s?" + +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Definir como imagen del contacto" + +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Enviando..." + +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Seleccionar dispositivo" + +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "Puede extraer de forma segura la tarjeta de memoria." + +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Permiso denegado." + +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Sin ubicación" + +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "No se etiquetaron rostros. Etiquete los rostros en la imagen" + +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "No se detectaron rostros." + +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Memoria insuficiente. Elimine algunos elementos" + +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Error de conexión de red." + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Número máximo de caracteres (%d) alcanzado." + +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Archivo de imagen no válido." + +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Flash usado" + +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Formato de archivo no admitido." + +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Entrada vacía." + +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Introducir el nombre de la etiqueta." + +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Activar actualización automática en el fondo de pantalla del clima para ver las etiquetas de clima." + +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Descarga completa" + +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Mejor imagen" + +msgid "IDS_IV_POP_ADDED" +msgstr "Añadido." + +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Escribir subtítulo" + +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Utilizar movimiento" + +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Eliminar de favoritos" + +msgid "IDS_IV_OPT_TRIM" +msgstr "Recortar" + +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Etiquetar rostro" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Etiquetar amigo" + +msgid "IDS_IV_OPT_TAG" +msgstr "Etiqueta" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Iniciar presentación de diapositivas" + +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "Presentación de diapositivas " + +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Pres de diapositivas" + +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Mostrar elementos" + +msgid "IDS_IV_OPT_SHARE" +msgstr "Compartir" + +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Girar a la derecha" + +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Girar a la izquierda" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Eliminar etiqueta" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Actualizar" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Imprimir vía Bluetooth" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Detectar manualmente" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Fondo de pantalla de inicio y bloqueo de pantalla" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Elementos ocultos" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Obtener indicaciones" + +msgid "IDS_IV_OPT_FILE_TRANSFER" +msgstr "Transferencia de archivos" + +msgid "IDS_IV_OPT_ERASER" +msgstr "Borrador" + +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Editar etiqueta" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Edit. etiq." + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Editar subtítulo" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Eliminar subtítulo" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Copiar a portapapeles" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Inform. de conexión" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Compartir imagen de amigo" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Mejor rostro" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Como archivos de video" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Como archivos de imagen" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Imagen animada" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Añadir etiqueta de clima" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Añadir nombre" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Añadir subtítulo" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Música de presentación" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Imágenes Sonido/Captura" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Definir como" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Enviar imagen a" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Seleccione un contacto para compartir" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Velocidad de reproducción" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Fondo pantalla bloq." + +msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" +msgstr "Conocer sobre inclinar para ampliar" + +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Fondo pantalla inicio" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Editar etiqueta" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Editar ráfaga de imág." + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Dispositivos disponibles" + +msgid "IDS_IV_HEADER_ALL_ALBUMS" +msgstr "Todos los álbumes" + +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Añadir etiqueta" + +msgid "IDS_IV_BUTTON_STOP" +msgstr "Det." + +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Buscar" + +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Puede compartir su contenido multimedia con otros dispositivos usando dispositivos cercanos." + +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Con %s y %d otros" + +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Con %s" + +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Balance de blancos" + +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Clima" + +msgid "IDS_IV_BODY_WEATHER" +msgstr "Clima" + +msgid "IDS_IV_BODY_VENDOR" +msgstr "Proveedor" + +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Validez" + +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Ilimitado" + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "No es posible cargar la imagen." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Recuento de tiempo" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Pulse los rostros para ver información acerca de las personas." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Mantenga pulsado en dos puntos e incline el dispositivo hacia atrás y hacia adelante para reducir o ampliar la pantalla." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Día soleado" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Día nevado" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Compartir vía" + +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Nombre de servidor" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Seleccione área para recortar la imagen." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Se imprimirá el área seleccionada." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "El área seleccionada se definirá como fondo de pantalla." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "El área seleccionada se definirá como ID del llamante." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Estados de derechos" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Resolución" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Eliminar de favoritos" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Día lluvioso" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Imprimir" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Posible" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Personas" + +msgid "IDS_IV_BODY_N_A" +msgstr "N/A" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Sin etiqueta" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Nueva etiqueta" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "Dispositivos cercanos" + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Mi dispositivo" + +msgid "IDS_IV_BODY_MODEL" +msgstr "Modelo" + +msgid "IDS_IV_BODY_ME" +msgstr "Yo" + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Fabricante" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Longitud" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Pantalla de bloqueo" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Ubicación" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Ubicación" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Ubicaciones" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Ubicación" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Latitud" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "En %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Intervalo" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Individual" + +msgid "IDS_IV_BODY_IN" +msgstr "En" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Imposible" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Pantalla de inicio" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Pantallas de inicio y bloqueo" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Reenvío" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Menú flash" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Nombre del archivo" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Ubicación del archivo" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Formato del archivo" + +msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" +msgstr "Exposición" + +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Ejecutar" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Activar etiqueta GPS en Cámara para ver las etiquetas de ubicación." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Activar actualización automática en el widget del clima para ver las etiquetas de clima." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Duración" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "Información de DRM" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "No volver a mostrar" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "No preguntar de nuevo" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Pantalla" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Fecha de creación" + +msgid "IDS_IV_BODY_CROP" +msgstr "Recortar" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Crear etiq" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Recuento" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Día nublado" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Noche clara" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "ID del llamante" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Básico" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Usos disponibles" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Automático" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Aplique un tema de color que coincida a las aplicaciones." + +msgid "IDS_IV_BODY_APERTURE" +msgstr "Apertura" + +msgid "IDS_IV_BODY_ANY" +msgstr "Cualquiera" + +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Añadir a favoritos" + +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Tiempo acumulado" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Se ha alcanzado el número máximo de caracteres." + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Error" + +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" + +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Editar" + +msgid "IDS_ST_BODY_DATE" +msgstr "Fecha" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Cuentas" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Descargar" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Después de cargar imágenes en Dropbox, se mostrarán los elementos." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Descargando..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Añadir imágenes" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Se mostrarán las imágenes después de etiquetarlas como favoritas." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "¿Eliminar la identificación de rostros?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Asignar nombre" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Confirmar como %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Diseño" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d imágenes añadidas" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Se descartará el álbum." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Iniciando descarga..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Memoria insuficiente. Elimine algunos elementos" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Almacenamiento privado" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Arrastre aqui." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Pulse para añadir imágenes." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Archivo ya existe." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Se eliminará este elemento." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Después de cargar imágenes en Facebook, se mostrarán los elementos." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Carácter no válido." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Manual" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Procesando..." + +msgid "IDS_ST_BODY_OK" +msgstr "Aceptar" + +msgid "IDS_ST_SK_RENAME" +msgstr "Renombrar" + +msgid "IDS_COM_BODY_NONE" +msgstr "Ninguno" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d seleccionado(s)" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Almacenamiento del dispositivo" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "Tarjeta de memoria" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Velocidad" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Reproducción en segundo plano" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 seg." + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 seg." + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 seg." + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Ubicación de almacenamiento" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Tamaño del archivo" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "Se eliminará 1 álbum." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgia" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Desenfoque" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Brillo suave" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Guardar cambios" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "¿Desea guardar sus cambios o prefiere descartarlos?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Descart." + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Guardar" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Diseño antiguo" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Luz del sol" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Foto antigua" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Escala de grises" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sepia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Colores difuminados" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Luz descendente" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Resplandor amarillo" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Enfocar" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Bosquejo" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Colores invertidos" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Pintura al óleo" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Posterizar" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Caricatura" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Arte pop" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Lápiz mágico" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Añadido a la lista de bloqueados." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Rotar" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "No hay espacio suficiente en el almacenamiento del dispositivo. Vaya a Configuración > Batería y almacenamiento > Almacenamiento, elimine algunos archivos e inténtelo de nuevo." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Intervalo entre diapositivas" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Intervalo entre diapositivas" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Imagen de contacto" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Ninguno" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Editar" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Renombrar" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Configurar como" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Descargar" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Renombrar" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Cambiar nombre" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Renomb." + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Ya hay un archivo con este nombre en la carpeta de destino." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Reempl." + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Definir como" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Fondo de pantalla de inicio" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Fondo de pantalla de bloqueo" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Fondos pant. inicio y de bloq." + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Detalles" + +msgid "IDS_IV_BODY_DATE" +msgstr "Fecha" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "No se pudo guardar la imagen" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "No hay espacio suficiente (%d MB) en el almacenamiento del dispositivo." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "No hay espacio suficiente (%d MB) en su tarjeta de memoria." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Elimine algunos archivos e inténtelo de nuevo." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Guardar imagen" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "No hay espacio suficiente (quedan %d MB) en el almacenamiento del dispositivo. Este elemento se guardará en la tarjeta de memoria." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "No hay espacio suficiente (quedan %d MB) en la tarjeta de memoria. Este elemento se guardará en el almacenamiento del dispositivo." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Se eliminará esta imagen." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Detener" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Eliminar" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Error" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Seleccionar área" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Aceptar" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Error al cargar este elemento." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negativo" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "REALIZADO" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CANCELAR" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negativo" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "No se puede abrir la galería." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Cargando..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Cargando..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Falló la carga." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Cargando imagen…" + +msgid "IDS_IV_SK_DISCARD" +msgstr "Descartar" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "No es posible descargar" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Datos móviles está desactivada. Conéctese a una red Wi-Fi o active Datos móviles e inténtelo de nuevo." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "No enviar" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 segundo" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d segundos" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Efectos" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Efectos" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Flujo" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Aparecer" + +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Aumentar" + diff --git a/res/po/et.po b/res/po/et.po old mode 100755 new mode 100644 index efc7218..ad157d5 --- a/res/po/et.po +++ b/res/po/et.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Lisa avaekraanile" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Privaatne" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Automaatne" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Nimeta ümber" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "See video kustutatakse." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Failinimi on juba kasutusel" + +msgid "IDS_ST_BODY_OFF" +msgstr "Väljas" + +msgid "IDS_COM_BODY_DONE" +msgstr "Valmis" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Välk" +msgid "IDS_COM_SK_STOP" +msgstr "Lõpeta" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s on selles rakenduses desaktiveeritud. Selle funktsiooni aktiveerimiseks avage menüü %2$s, valige see funktsioon ja seejärel valige see rakendus." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Valmis" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Tühista" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Sisestage nimi" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Nimi puudub" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Ainult uks album." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Te voite valida kuni %d uksust." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Üksikasjad" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Kustuta" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Kustutada?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Tühista" + +msgid "IDS_IV_POP_DELETED" +msgstr "Kustutatud." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Lemmik" + +msgid "IDS_IV_SK_SAVE" +msgstr "Salvesta" + +msgid "IDS_IV_POP_SAVED" +msgstr "Salvestatud." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Seaded" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Suurus" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Tundmatu" + +msgid "IDS_IV_SK_YES" +msgstr "Jah" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Kopeeri lõikelauale" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Fookuskaugus" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Välk sees" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Välk väljas" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Pildivaatur" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Valge tasakaal" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Kõik pildid" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Autom." +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Paigutus" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Loo silt" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Vali pilt" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Valge tasakaal" +msgid "IDS_MP_BODY_DURATION" +msgstr "Kestvus" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Kogunenud aeg" +msgid "IDS_ST_POP_SET" +msgstr "Määra" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Lisa silt" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Sildid" -msgid "IDS_IV_POP_ADDED" -msgstr "Lisatud" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Lisa komment" -msgid "IDS_IV_BODY_ANY" -msgstr "Ükskõik milline" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Saate jagada oma meediumi teiste seadmetega, kasutades lahedalolevaid seadmeid." -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Võimalikud kasutusviisid" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Videofailid ei sisalda teavet inimeste kohta, kuna failid ei toeta nao sildi funktsiooni." -msgid "IDS_IV_BODY_BASIC" -msgstr "Põhiline" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Seda pilti ei saa jagada. See on DRM-kaitsega." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Helistaja pilt" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Faili ei saa avada." -msgid "IDS_IV_BODY_COUNT" -msgstr "Loendamine" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Salvestatud ilmateade voib erineda varskendamise intervalli tottu tegelikust ilmast." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Kuupäev loodud" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Lõikelauale kopeeritud isiklikku sisu saab kasutada uue sisu loomiseks. Teie uut sisu ei pruugita peita automaatselt." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Ekraan" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Pilt on liiga vaike." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Sisestage sildi nimi" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Kuupäevateave kuvatakse ainult siis, kui teised sildid on nähtavad." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Kirje on tühi" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Toksake ja hoidke sorme pisipiltidel, et valida parimaid fotosid." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Käivita" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Slaidiseansi seaded" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Failivorming" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Määra taustpilt avaekraanile ja lukustusekraanile" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Faili asukoht" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Kas määrata see pilt kontakti %s helistajatunnuseks?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Edastamine" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Määra helistaja tunnuseks" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Avaekr. taustp." +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Saatmine..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Võimatu" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Vali seade" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Individuaalne" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD-kaart on eemaldatud." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Intervall" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Loast keelduti." -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Vigane pildifail" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Asukohta pole" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Laiuskraad" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Ühtegi nägu pole sildistatud. Sildistage pildil olevad näod" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Asukohad" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Ühtegi nägu ei tuvastatud." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Lukustusekr. taustp." +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Mälu pole piisavalt. Kustutage mõned üksused" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Pikkuskraad" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Võrguühendus nurjus." msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Maksimaalne tähemärkide arv (%d) on saavutatud" +msgstr "Maksimaalne tähemärkide arv (%d) on saavutatud." -msgid "IDS_IV_BODY_N_A" -msgstr "Pole teada" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Vigane pildifail." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Uus silt" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Kasut. välku" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Loast keelduti" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Failivormingut ei toetata." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Võimalik" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Kirje on tuhi." -msgid "IDS_IV_BODY_PRINT" -msgstr "Prindi" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Sisestage sildi nimi." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Prindi Bluetoothi kaudu" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Aktiveerige automaatne varskendamine ilmateate taustpildil, et naha ilmasilte." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Eraldusvõime" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Allalaadimine on lõpule viidud" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Õiguse olek" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Parim foto" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD-kaart on eemaldatud" +msgid "IDS_IV_POP_ADDED" +msgstr "Lisatud." -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Vali seade" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Lisage pealdis" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Serveri nimi" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Kasuta liigutusi" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Määra" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Eemalda lemmikutest" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Määra taustpilt avaekraanile ja lukustusekraanile" +msgid "IDS_IV_OPT_TRIM" +msgstr "Lõika" -msgid "IDS_IV_OPT_SHARE" -msgstr "Jaga" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Sildista nägu" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Sõbersilt" + +msgid "IDS_IV_OPT_TAG" +msgstr "Silt" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Käivita slaidiseanss" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "Slaidiseanss" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Piiratud aeg" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Slaidiseanss" -msgid "IDS_IV_OPT_TRIM" -msgstr "Lõika" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Näita üksusi" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Piiramatu" +msgid "IDS_IV_OPT_SHARE" +msgstr "Jaga" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Kehtivus" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Pööra paremale" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Tarnija" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Pööra vasakule" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Eemalda silt" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Värskenda" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Prindi Bluetoothi kaudu" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Tuvasta käsitsi" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Ava- ja lukustusekraani taustpilt" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Peidetud üksused" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Hankige juhised" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "Faili edastamine" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Ära näita uuesti" +msgid "IDS_IV_OPT_ERASER" +msgstr "Kustukumm" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Ekraani vähendamiseks või suurendamiseks toksake ja hoidke sõrme kahel punktil ning seejärel kallutage telefoni edasi-tagasi" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Redigeer. ilmasilti" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Red. silti" + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Redigeeri pealdist" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Kustuta pealdis" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Kopeeri lõikelauale" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Ühenduse teave" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Sõbrafoto jagamine" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Parim nägu" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Videofailidena" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Pildifailidena" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Animeeritud foto" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Lisa ilmasilt" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Lisa nimi" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Lisa pealdis" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Slaidiseansi muusika" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Jaga Heli ja võtte pil." + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Määra" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Saada see pilt" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Valige jagamiseks kontakt" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Esituskiirus" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Lukustusekr. taustp." msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Kallutamise teave" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Avaekr. taustp." + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Redigeer. ilmasilti" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Redigeeri sarivõtet" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Saadaolevad seadmed" + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "Kõik albumid" -msgid "IDS_IV_OPT_TAG" -msgstr "Silt" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Lisa silt" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Ava- ja lukustusekraani taustpilt" +msgid "IDS_IV_BUTTON_STOP" +msgstr "Lõpeta" -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Kasuta liigutusi" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Otsi" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Ava- ja lukustusekraanid" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Saate jagada oma meediumi teiste seadmetega, kasutades lahedalolevaid seadmeid." -msgid "IDS_IV_BODY_CROP" -msgstr "Kärbi" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Kontaktiga %s ja veel %d teisega" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Avaleht" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Koos kontaktiga %s" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Lukusta ekraan" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Valge tasakaal" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Pööra vasakule" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Ilm" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Pööra paremale" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Ilm" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Tuvasta käsitsi" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Tarnija" -msgid "IDS_IV_BODY_ME" -msgstr "Mina" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Kehtivus" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Red. silti" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Piiramatu" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Eemalda silt" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Fotot ei saa laadida." -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "Jaga:" +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Piiratud aeg" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Ära saada" +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Sõbrafoto jagamine" +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Toksake nagusid, et kuvada teavet inimeste kohta." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Näomärgistus" +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Ekraani vahendamiseks voi suurendamiseks toksake ja hoidke sorme kahel punktil ning seejarel kallutage telefoni edasi-tagasi." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Pildivaatur" +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Päikesepaisteline päev" -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "Lähedalasuvad seadmed" +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Lumine päev" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Valige pildil piirkond, mida kärpida" +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Jagamine" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Valitud piirkond rakendatakse taustpildile" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Serveri nimi" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Valige pildil piirkond, mida karpida." msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Valitud piirkond prinditakse" +msgstr "Valitud piirkond prinditakse." -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Saate jagada oma meediumi teiste seadmetega, kasutades lähedalolevaid seadmeid" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Valitud piirkond rakendatakse taustpildile." msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Valitud piirkond rakendatakse kontakti pildile" +msgstr "Valitud piirkond rakendatakse kontakti pildile." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Õiguse olek" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Eraldusvõime" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Eemalda lemmikutest" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Vihmane päev" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Prindi" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Võimalik" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Inimesed" + +msgid "IDS_IV_BODY_N_A" +msgstr "Pole teada" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Silti pole" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Uus silt" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "Läh. asuvad sead." + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Minu seade" + +msgid "IDS_IV_BODY_MODEL" +msgstr "Mudel" + +msgid "IDS_IV_BODY_ME" +msgstr "Mina" + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Tootja" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Pikkuskraad" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Lukustusekraan" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Asukoht" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Asukoht" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Asukohad" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Asukoht" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Laiuskraad" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "Asukohas %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Intervall" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Individuaalne" + +msgid "IDS_IV_BODY_IN" +msgstr "Lähemale" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Võimatu" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Avaleht" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Ava- ja lukustusekraanid" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Edastamine" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Flash-menüü" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Failinimi" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Faili asukoht" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Failivorming" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "Säriaeg" -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Käivita" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Aktiveerige Kaameras GPS-sildid, et naha asukohasilte." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Ilmasiltide nagemiseks aktiveerige ilmavidinas automaatne varskendamine." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Kestus" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM-i teave" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Ära näita uuesti" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Ära küsi enam" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Ekraan" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Kuupäev loodud" + +msgid "IDS_IV_BODY_CROP" +msgstr "Kärbi" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Loo silt" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Loendamine" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Pilvine päev" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Selge öö" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Helistaja pilt" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Põhiline" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Võimalikud kasutusviisid" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Auto." + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Saate rakendada ühtiva värviteema rakendustele." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Ava" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Paigutus" +msgid "IDS_IV_BODY_ANY" +msgstr "Ükskõik milline" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Tootja" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Lisa Lemmikutesse" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Fookuskaugus" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Kogunenud aeg" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Lubatud arv märke on täis." + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Nurjus" + +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "kB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Muuda" + +msgid "IDS_ST_BODY_DATE" +msgstr "Kuupäev" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Kontod" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Lae alla" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Uksused kuvatakse parast piltide uleslaadimist Dropboxi." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Allalaadimine..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Lisage pilte" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Pildid kuvatakse parast nende markimist lemmikutena." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Kas eemaldada näotuvastus?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Määrake nimi" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Kinnita isikuna %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" msgstr "Paigutus" -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Mudel" +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "Lisati %d pilti" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Lisa nimi" +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Album tuhistatakse." -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Määra helistaja tunnuseks" +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Allalaadimise alustamine..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Mälu pole piisavalt. Kustutage mõned üksused" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Privaatne mälu" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Lohistage siia." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Toksake piltide lisamiseks." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Fail on juba olemas." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "See uksus kustutatakse." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Uksused kuvatakse parast piltide uleslaadimist Facebooki." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Kehtetu märk." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Käsitsi" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Töötlemine..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Nim. ümb." + +msgid "IDS_COM_BODY_NONE" +msgstr "Puudub" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d on valitud" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Seadme mälu" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD-kaart" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Kiirus" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Taustamuusika" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 sek" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 sek" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 sek" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Salvestamiskoht" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Faili suurus" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album kustutatakse." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgia" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Hägusus" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Pehme helendus" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Muudatuste salvestamine" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Kas salvestada muudatused või loobuda nendest?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Loobu" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Salvesta" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Päikesepaiste" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Vana foto" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Halltoonid" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Seepia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Hajutatud värvid" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Allvalgus" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Kollane kuma" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Teravusta" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Visand" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Pööratud värvid" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Õlimaal" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Plakatiefekt" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Karikatuur" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Popkunst" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Maagiline pliiats" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Lisatud blokeeritute loendisse." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Pööra" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Seadme mälus pole piisavalt ruumi. Avage menüü Seaded > Toide ja mälu > Mälu, seejärel kustutage mõned failid ja proovige uuesti." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Slaidide intervall" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Slaidide intervall" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Kontakti pilt" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Puudub" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Redigeeri" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Nimeta ümber" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Määra" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Laadi alla" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Nimeta ümber" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Nimeta ümber" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Nim. üm." + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Sellenimeline fail on sihtkaustas juba olemas." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Asenda" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Määra" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Avaekraani taustpilt" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Lukustusekraani taustpilt" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Ava- ja luk.ekr. taustpildid" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Üksikasjad" + +msgid "IDS_IV_BODY_DATE" +msgstr "Kuupäev" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Pilti ei saa salvestada" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Seadme mälus pole piisavalt ruumi (%d MB)." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "SD-kaardil pole piisavalt ruumi (%d MB)." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Kustutage mõned failid ja proovige uuesti." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Pildi salvestamine" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Seadme mälus pole piisavalt ruumi (%d MB on jäänud). See üksus salvestatakse teie SD-kaardile." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "SD-kaardil pole piisavalt ruumi (%d MB on jäänud). See üksus salvestatakse seadme mällu." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "See pilt kustutatakse." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Lõpeta" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Kustuta" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Tõrge" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Piirkonna valimine" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Valmis" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Üksuse laadimine nurjus." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negatiiv" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "VALMIS" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "TÜHISTA" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negatiiv" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Galeriid ei saa avada." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Laadimine..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Laadimine..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Laadimine nurjus." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Pildi laadimine..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Hülga" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Ei saa alla laadida" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobiilne andmeside on välja lülitatud. Looge ühendus Wi-Fi võrguga või lülitage mobiilne andmeside sisse ja proovige uuesti." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Ära saada" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 sekund" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d sekundit" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Efekt" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Efektid" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Kiirus" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Hajumine" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Nägu pole tuvastatud" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Suurenda" diff --git a/res/po/eu.po b/res/po/eu.po old mode 100755 new mode 100644 index 5348751..83625d0 --- a/res/po/eu.po +++ b/res/po/eu.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Gehitu nagusira" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Pribatua" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Auto" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Berrizendatu" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Bideo hau ezabatuko da" + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Fitxategi izena aurretik erabiltzen ari zara." + +msgid "IDS_ST_BODY_OFF" +msgstr "Desaktibatuta" + +msgid "IDS_COM_BODY_DONE" +msgstr "Amaituta" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Flasha" -msgid "IDS_CAM_BODY_ISO" -msgstr "ISO" +msgid "IDS_COM_SK_STOP" +msgstr "Gelditu" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Kopiatu arbelera" +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s desgaituko da aplikazio honetan. Funtzio hori gaitzeko, zoaz %2$s-ra, hautatu funtzio hori eta, ondoren, hautatu aplikazio hau." -msgid "IDS_CAM_BODY_FLASH_ON" -msgstr "Flasha aktibatuta" +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "Ados" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Flasha desaktibatuta" +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Egina" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Zuri-balantzea" +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Utzi" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Auto" +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Izena idatzi" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Sor. etik." +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Izenik gabe" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Zuri-balantzea" +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Album bakarra dago" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Metatutako denbora" +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "%d elementu arte aukera ditzakezu" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Gehi. etik." +msgid "IDS_IV_OPT_DETAILS" +msgstr "Xehetasunak" -msgid "IDS_IV_POP_ADDED" -msgstr "Gehituta" +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Ezabatu" -msgid "IDS_IV_BODY_ANY" -msgstr "Edozein" +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Ezabatu?" -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Erabilera eskuragarriak" +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Ezeztatu" -msgid "IDS_IV_BODY_BASIC" -msgstr "Oinarrizkoa" +msgid "IDS_IV_POP_DELETED" +msgstr "Ezabatua" -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Dei egilearen irudia" +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Gogokoena" -msgid "IDS_IV_BODY_COUNT" -msgstr "Kontatu" +msgid "IDS_IV_SK_SAVE" +msgstr "Gorde" -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Sortze data" +msgid "IDS_IV_POP_SAVED" +msgstr "Gordeta" -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Pantaila" +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Ezarpenak" -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Adierazi etiketa izena" +msgid "IDS_IV_BODY_SIZE" +msgstr "Tamaina" -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Sarrera hutsik dago" +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Ezezaguna" -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Abiarazi" +msgid "IDS_IV_SK_YES" +msgstr "Bai" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Fitxategiaren formatua" +msgid "IDS_CAM_BODY_ISO" +msgstr "ISO" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Fitxategi kokapena" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Distantzia-fokala" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Birbidaltzea" +msgid "IDS_CAM_BODY_FLASH_ON" +msgstr "Flasha aktibatuta" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Hasierako pantailako horma papera" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Irudi bisorea" -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Ezinezkoa" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Irudi guztiak" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Indibiduala" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Orientazioa" -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Tartea" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Argazkia aukeratu" -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Irudi fitxategi baliogabea" +msgid "IDS_MP_BODY_DURATION" +msgstr "Iraupena" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Latitudea" +msgid "IDS_ST_POP_SET" +msgstr "Ezarri" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Kokapenak" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Etiketak" -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Blokeo pantailako horma papera" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Gehitu iruzkina" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Longitudea" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Ikusi zure multimedia beste gailu batzuetan gertuko gailuen bidez" -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Gehienezko karaktere kopurura (%d) iritsi zara" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Bideo fitxategiek ez dute pertsonei buruzko informaziorik ez dutelako aurpegi etiketatze funtzioa onartzen" -msgid "IDS_IV_BODY_N_A" -msgstr "E/A" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Ezin da irudi hau partekatu. DRMz babestuta dago." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Etiketa berria" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Ezin izan da fitxategia ireki" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Baimena ukatuta" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Baliteke grabatutako eguraldi informazioa eta uneko eguraldia ezberdinak izatea eguneraketa tartea dela eta" -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Posible" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Arbelean kopiatutako eduki pertsonala eduki berria sortzeko erabili daiteke. Baliteke zure eduki berria automatikoki ez ezkutatzea." -msgid "IDS_IV_BODY_PRINT" -msgstr "Inprimatu" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Irudia txikiegia da" -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Bluetooth bidez inprimatu" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Dataren informazioa beste etiketa batzuk ikusgai daudenean soilik erakusten da." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Bereizmena" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Ukitu eta eutsi irudi txikiak Best photo hautatzeko" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Egoera egokia" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Erakusketaren ezarpenak" + +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Ezarri horma papera hasierako pantailarako eta blokeo pantailarako" + +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Ezarri argazki %s-(r)en deitzaile ID gisa?" + +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Dei egilearen ID gisa ezarri" + +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Bidaltzen" + +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Aukeratu gailua" msgid "IDS_IV_POP_SD_CARD_REMOVED" msgstr "SD txartela kenduta" -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Gailua aukeratu" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Baimena ukatuta" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Zerbitzariaren izena" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Kokalekurik ez" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Honela zehaztu" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Ez da aurpegirik etiketatu. Etiketatu aurpegiak argazkian." -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Ezarri horma papera hasierako pantailarako eta blokeo pantailarako" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Ez da aurpegirik antzeman" -msgid "IDS_IV_OPT_SHARE" -msgstr "Partekatu" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Ez dago memoria nahikoa. Elementu batzuk ezabatu." -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "Diapositiba aurkezpena" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Sareko konexioak huts egin du" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Mugatutako zenbaketa" +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Gehienezko karaktere kopurura (%d) iritsi zara" -msgid "IDS_IV_OPT_TRIM" -msgstr "Kimatu" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Irudi fitxategi baliogabea" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Mugagabea" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Flash erab." -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Baliozkotasuna" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Fitxategiaren formatua ez da onartzen" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Hornitzailea" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Sarrera hutsik dago" -msgid "IDS_IV_OPT_FILE_TRANSFER" -msgstr "Fitxategi transferentzia" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Adierazi etiketa izena" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Ez erakutsi berriro" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Gaitu freskatze automatikoa eguraldiaren horma paperean eguraldi etiketak ikusteko" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Ukituta eutsi bi puntutan, okertu atzera eta aurrera gailua pantaila txikitu edo handitzeko" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Deskarga osatuta" -msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" -msgstr "Ikasi inklinatzeari buruz" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Best photo" -msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "Album guztiak" +msgid "IDS_IV_POP_ADDED" +msgstr "Gehituta" + +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Idatzi epigrafea" + +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Erabili mugimendua" + +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Gogokoa ez" + +msgid "IDS_IV_OPT_TRIM" +msgstr "Kimatu" + +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Etiketatu aurpegia" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Tag buddy" msgid "IDS_IV_OPT_TAG" msgstr "Etiketa" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Pantaila nagusiaren eta blokeo pantailaren horma papera" +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Hasi diaporama" -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Erabili mugimendua" +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "Diapositiba aurkezpena" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Hasiera eta blokeo pantailak" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Diaporama" -msgid "IDS_IV_BODY_CROP" -msgstr "Moztu" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Erakutsi elementuak" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Hasierako pantaila" +msgid "IDS_IV_OPT_SHARE" +msgstr "Partekatu" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Blokeatu pantaila" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Eskuinera biratu" msgid "IDS_IV_OPT_ROTATE_LEFT" msgstr "Ezkerrera biratu" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Eskuinera biratu" +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Ezabatu etiketa" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Eguneratu" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Bluetooth bidez inprimatu" msgid "IDS_IV_OPT_MANUALLY_DETECT" msgstr "Hauteman eskuz" -msgid "IDS_IV_BODY_ME" -msgstr "Nik " +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Pantaila nagusiaren eta blokeo pantailaren horma papera" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Ezkutatutako elementuak" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Lortu helbideak" + +msgid "IDS_IV_OPT_FILE_TRANSFER" +msgstr "Fitxategi transferentzia" + +msgid "IDS_IV_OPT_ERASER" +msgstr "Borratzekoa" + +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Edit. eguraldi etik." msgid "IDS_IV_OPT_EDIT_TAG" msgstr "Edit. etik." -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Ezabatu etiketa" +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Editatu epigrafea" -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "Partekatu honen bidez" +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Ezabatu epigrafea" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Ez bidali" +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Kopiatu arbelera" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Konexio informazioa" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Hodeia" msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" msgstr "Lagun argazkiak partekatzea" -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Aurpegi etik." +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Aurpegi onena" -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Irudi bisorea" +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Bideo fitxategi gisa" -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "Gertuko gailuak" +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Irudi fitxategi gisa" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Hautatu eremua argazkia mozteko" +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Argazki animatua" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Hautatutako eremua horma paperari aplikatuko zaio" +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Gehitu eguraldi etiketa" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Hautatutako eremua inprimatuko da" +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Gehitu izena" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Zure multimedia beste gailu batzuekin parteka dezakezu gertuko gailuen bidez" +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Gehitu epigrafea" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Hautatutako eremua kontaktuaren argazkiari aplikatuko zaio" +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Diaporama musika" -msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "Espos. denbora" +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Part. soinua/atera arg." -msgid "IDS_CAM_BODY_APERTURE" -msgstr "Irekidura" +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Honela zehaztu" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Orientazioa" +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Bidali argazkia honi" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Fabrikatzailea" +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Hautatu partekatzeko kontaktu bat" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Distantzia-fokala" +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Erreprodukzioaren abiadura" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Orientazioa" +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Blokeo pantailako horma papera" -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Modeloa" +msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" +msgstr "Ikasi inklinatzeari buruz" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Izena gehitu" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Hasierako pantailako horma papera" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Dei egilearen ID gisa ezarri" +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Edit. eguraldi etik." + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Edit. jarr. ateraldia" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Gailu eskuragarriak" + +msgid "IDS_IV_HEADER_ALL_ALBUMS" +msgstr "Album guztiak" + +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Gehi. etik." + +msgid "IDS_IV_BUTTON_STOP" +msgstr "Geld." + +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Eskaneatzea" + +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Zure multimedia beste gailu batzuekin parteka dezakezu gertuko gailuen bidez" + +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "%s eta beste %d-(e)kin" + +msgid "IDS_IV_BODY_WITH_PS" +msgstr "%s-(r)ekin" + +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Zuri-balantzea" + +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Eguraldia" + +msgid "IDS_IV_BODY_WEATHER" +msgstr "Eguraldia" + +msgid "IDS_IV_BODY_VENDOR" +msgstr "Hornitzailea" + +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Baliozkotasuna" + +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Mugagabea" + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Ezin da argazkia kargatu" + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Mugatutako zenbaketa" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Ukitu aurpegiak jendeari buruzko informazioa ikusteko" + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Ukituta eutsi bi puntutan, okertu atzera eta aurrera gailua pantaila txikitu edo handitzeko" + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Egun eguzkitsua" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Elur eguna" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Partekatu honen bidez" + +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Zerbitzariaren izena" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Hautatu eremua argazkia mozteko" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Hautatutako eremua inprimatuko da" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Hautatutako eremua horma paperari aplikatuko zaio" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Hautatutako eremua kontaktuaren argazkiari aplikatuko zaio" + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Egoera egokia" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Bereizmena" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Gogokoenetatik kendu" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Egun euritsua" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Inprimatu" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Posible" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Jendea" + +msgid "IDS_IV_BODY_N_A" +msgstr "E/A" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Eranskailurik ez" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Etiketa berria" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "Gertuko gailuak" + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Nire gailua" + +msgid "IDS_IV_BODY_MODEL" +msgstr "Modeloa" + +msgid "IDS_IV_BODY_ME" +msgstr "Nik " + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Fabrikatzailea" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Longitudea" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Blokeo pantaila" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Kokalekua" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Kokalekua" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Kokapenak" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Kokalekua" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Latitudea" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "Non: %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Tartea" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Indibiduala" + +msgid "IDS_IV_BODY_IN" +msgstr "Barruko" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Ezinezkoa" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Hasierako pantaila" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Hasiera eta blokeo pantailak" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Birbidaltzea" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Flasha" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Fitxategiaren izena" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Fitxategi kokapena" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Fitxategiaren formatua" + +msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" +msgstr "Espos. denbora" + +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Abiarazi" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Gaitu GPS etiketak Kameran kokapen etiketak ikusteko" + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Gaitu freskatze automatikoa eguraldiaren widgetean eguraldi etiketak ikusteko" + +msgid "IDS_IV_BODY_DURATION" +msgstr "Iraupena" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM informazioa" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Ez erakutsi berriro" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Ez galdetu berriz" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Pantaila" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Sortze data" + +msgid "IDS_IV_BODY_CROP" +msgstr "Moztu" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Sor. etik." + +msgid "IDS_IV_BODY_COUNT" +msgstr "Kontatu" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Egun lainotua" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Gau oskarbia" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Dei egilearen irudia" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Oinarrizkoa" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Erabilera eskuragarriak" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Auto" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Aplikatu bat datorren kolore gaia aplikazioei." + +msgid "IDS_IV_BODY_APERTURE" +msgstr "Irekidura" + +msgid "IDS_IV_BODY_ANY" +msgstr "Edozein" + +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Gehitu gogokoetan" + +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Metatutako denbora" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Gehienezko karaktere kopurura heldu zara" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Huts egin du" + +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" + +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Editatu" + +msgid "IDS_ST_BODY_DATE" +msgstr "Data" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Kontuak" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Deskargatu" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Argazkiak Dropboxera igo ondoren, elementuak erakutsiko dira" + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Deskargatzen..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Gehitu argazkiak" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Etiketak gogoko moduan etiketatu ondoren, argazkiak erakutsiko dira" + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Kendu aurpegi identifikazioa?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Esleitu izena" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Baieztatu %s gisa" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Diseinua" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d argazki gehituta" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Albuma ezeztatuko da" + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Deskarga hasten..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Ez dago memoria nahikoa. Elementu batzuk ezabatu." + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Biltegi pribatua" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Arrastatu hona" + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Sakatu irudiak gehitzeko" + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Fitxategia badago lehendik" + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Elementu hau ezabatu egingo da" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Argazkiak Facebookera igo ondoren, elementuak erakutsiko dira" + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Karaktere baliogabea" + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Eskuzkoa" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Prozesatzen..." + +msgid "IDS_ST_BODY_OK" +msgstr "Onartu" + +msgid "IDS_ST_SK_RENAME" +msgstr "Berrizendatu" + +msgid "IDS_COM_BODY_NONE" +msgstr "Bat ere ez" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d aukeratuta" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Gailu biltegia" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD txartela" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Abiadura" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Atzealdeko musika" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 seg." + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 seg." + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 seg." + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Biltegi kokapena" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Artxiboaren tamaina" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album ezabatuko da." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgia" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Lausotu" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Distira leuna" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Gorde aldaketak" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Gorde aldaketak edo baztertu?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Baztertu" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Gorde" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Vintage" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Egunsentia" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Argazki zaharra" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retroa" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Gris eskala" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sepia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Kolore itzaliak" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Fokua" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Distira horia" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Zorroztu" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Zirriborroa" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Alderantzikatutako koloreak" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Olio pintura" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Posterizatu" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Marrazkia" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Pop art" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Boligrafo magikoa" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Blokeo zerrendara gehitu da" + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Biratu" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Ez dago nahikoa espazio gailuaren biltegian. Joan Ezarpenak > Bateria eta biltegia > Biltegia aukerara, ezabatu fitxategi batzuk eta saiatu berriz." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Diapositiba tartea" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Diapositiba tartea" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Kontaktu argazkia" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Batere ez" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Editatu" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Berrizendatu" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Ezarri honela" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Deskargatu" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Berrizendatu" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Berrizendatu" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Berriz." + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Izen bera duen fitxategi bat dago helmuga karpetan." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Ordeztu" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Ezarri honela" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Pantaila nagusiko horma papera" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Blokeo pantailako horma papera" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Bl. pan / pan. nag. hor. pap." + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Xehetasunak" + +msgid "IDS_IV_BODY_DATE" +msgstr "Data" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Ezin izan da irudia gorde" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Ez dago nahikoa espazio (%d MB) gailuaren biltegian." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Ez dago nahikoa espazio (%d MB) zure SD txartelean" + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Ezabatu hainbat elementu eta saiatu berriz." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Gorde irudia" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Ez dago nahikoa espazio (%d MB geratzen dira) zure gailuaren biltegian. Elementu hau zure SD txartelean gordeko da." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Ez dago nahikoa espazio (%d MB geratzen dira) SD txartelean. Elementu hau zure gailuaren biltegian gordeko da." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Argazki hau ezabatuko da" + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Gelditu" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Ezabatu" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Errorea" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Hautatu eremua" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Egina" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Ezin izan da elementu hau kargatu." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negatiboa" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "EGINA" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "UTZI" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negatiboa" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Ezin da Galeria ireki." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Kargatzen..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Kargatzen..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Errorea kargatzerakoan" + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Irudia kargatzen..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Baztertu" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Ezin da deskargatu" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Datu mugikorrak itzalita daude. Konektatu Wi-Fi sare batera edo piztu datu mugikorrak eta saiatu berriz." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Ez bidali" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "Segundo 1" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d segundo" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Efektua" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Efektuak" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Fluxua" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Koloregabetu" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Ez da aurpegirik detektatu" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Gerturatu" diff --git a/res/po/fi.po b/res/po/fi.po old mode 100755 new mode 100644 index c133d41..cb1dd51 --- a/res/po/fi.po +++ b/res/po/fi.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Lisää etusivulle" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Yksityinen" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Automaattinen" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Nimeä uudelleen" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Tämä video poistetaan." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Tiedoston nimi jo käytössä." + +msgid "IDS_ST_BODY_OFF" +msgstr "Pois" + +msgid "IDS_COM_BODY_DONE" +msgstr "Valmis" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Salama" +msgid "IDS_COM_SK_STOP" +msgstr "Lopeta" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s on poistettu tässä sovelluksessa käytöstä. Voit ottaa toiminnon käyttöön siirtymällä kohteeseen %2$s, valitsemalla tämän toiminnon ja sitten valitsemalla tämän sovelluksen." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Valmis" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Peruuta" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Kirjoita nimi" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Ei nimeä" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Albumeita on vain yksi." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Voit valita enintään %d kohdetta." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Lisätiedot" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Poista" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Poistetaanko?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Peruuta" + +msgid "IDS_IV_POP_DELETED" +msgstr "Poistettu." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Suosikit" + +msgid "IDS_IV_SK_SAVE" +msgstr "Tallenna" + +msgid "IDS_IV_POP_SAVED" +msgstr "Tallennettu." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Asetukset" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Koko" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Tuntematon" + +msgid "IDS_IV_SK_YES" +msgstr "Kyllä" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Kopioi leikepöydälle" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Polttoväli" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Salama käytössä" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Salama pois päältä" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Kuvan katseluohjelma" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Valko-\ntasapaino" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Kaikki kuvat" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Auto" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Suuntaus" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Luo tunn." +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Valitse kuva" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Valkotasapaino" +msgid "IDS_MP_BODY_DURATION" +msgstr "Kesto" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Kertynyt aika" +msgid "IDS_ST_POP_SET" +msgstr "Aseta" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Lis. tunn." +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Tunnisteet" -msgid "IDS_IV_POP_ADDED" -msgstr "Lisätty" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Lisää kommentti" -msgid "IDS_IV_BODY_ANY" -msgstr "Mikä tahansa" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Näytä mediasisältö muissa laitteissa lähellä olevien laitteiden avulla." -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Jäljellä olevat käyttökerrat" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Videotiedostot eivät sisällä tietoja ihmisistä, sillä ne eivät tue kasvotunnistetoimintoa." -msgid "IDS_IV_BODY_BASIC" -msgstr "Perus" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Tätä kuvaa ei voi jakaa. Se on DRM-suojattu." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Soittajan kuva" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Tiedostoa ei voi avata." -msgid "IDS_IV_BODY_COUNT" -msgstr "Määrä" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Tallennetut säätiedot voivat poiketa todellisesta säästä päivitysaikavälin vuoksi." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Luontipäivämäärä" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Leikepöydälle kopioitua henkilökohtaista sisältöä voidaan käyttää uuden sisällön luontiin. Uutta sisältöä ei ehkä piiloteta automaattisesti." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Näyttö" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Kuva on liian pieni." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Anna tunnisteen nimi" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Päivämäärätiedot näytetään vain silloin, kun muut tunnisteet ovat näkyvissä." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Tyhjä tieto" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Valitse parhaat valokuvat painamalla pienoiskuvia jonkin aikaa." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Suorita" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Kuvaesityksen asetukset" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Tiedostomuoto" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Määritä alkunäytön ja lukitusnäytön taustakuvat." -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Tiedoston sijainti" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Asetetaanko tämä kuva soittajan %s tunnukseksi?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Edelleenlähetys" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Aseta soittajan tunnukseksi" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Alkunäytön taustakuva" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Lähetetään..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Mahdoton" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Valitse laite" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Yksittäinen" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD-kortti on poistettu." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Väli" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Lupa evätty." + +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Sijaintia ei ole" + +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Kasvoja ei ole merkitty. Merkitse kuvassa olevat kasvot." + +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Kasvoja ei tunnistettu." + +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Muisti ei riitä. Poista joitain kohteita." + +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Verkkoyhteys epäonnistui." + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Merkkien enimmäismäärä (%d) on saavutettu." msgid "IDS_IV_POP_INVALID_IMAGE_FILE" msgstr "Virheellinen kuvatiedosto" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Leveysaste" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Salama käytössä" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Sijainnit" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Tiedostomuotoa ei tueta." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Luk. näytön taustak." +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Tyhjä tieto" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Pituusaste" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Anna tunnisteen nimi." -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Merkkien enimmäismäärä (%d) on saavutettu" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Ota automaattinen päivitys säätaustakuvassa käyttöön säätunnisteiden tarkastelua varten." -msgid "IDS_IV_BODY_N_A" -msgstr "-" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Lataus valmis" -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Uusi tunniste" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Paras valokuva" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Lupa evätty" +msgid "IDS_IV_POP_ADDED" +msgstr "Lisätty." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Mahdollinen" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Kirjoita otsikko" -msgid "IDS_IV_BODY_PRINT" -msgstr "Tulosta" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Käytä liikettä" -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Tulosta Bluetoothin kautta" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Ei-suosikki" -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Tarkkuus" +msgid "IDS_IV_OPT_TRIM" +msgstr "Rajaa" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Oikeustila" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Merk. kasvot tunn." -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD-kortti on poistettu" +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Merkitse kaveri" -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Valitse laite" +msgid "IDS_IV_OPT_TAG" +msgstr "Tunniste" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Palvelimen nimi" +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Käynnistä kuvaesitys" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Aseta" +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "Diaesitys" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Määritä alkunäytön ja lukitusnäytön taustakuvat" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Kuvaesitys" + +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Näytä kohteet" msgid "IDS_IV_OPT_SHARE" msgstr "Jaa" -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "Diaesitys" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Kierrä myötäpäivään" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Ajoitettu määrä" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Kierrä vastapäivään" -msgid "IDS_IV_OPT_TRIM" -msgstr "Rajaa" +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Poista tunniste" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Rajoittamaton" +msgid "IDS_IV_OPT_REFRESH" +msgstr "Päivitä" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Kelpoisuus" +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Tulosta Bluetoothin kautta" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Toimittaja" +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Tunnista manuaalisesti" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Alku- ja lukitusnäytön taustakuva" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Piilotetut kohteet" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Hae sijainti" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "Tiedostonsiirto" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Älä näytä uudestaan" +msgid "IDS_IV_OPT_ERASER" +msgstr "Pyyhekumi" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Pienennä tai suurenna näyttöä pitämällä kahta pistettä painettuna ja kallistelemalla laitetta edestakaisin" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Muokkaa säätunnist." + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Muo. tunn." + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Muokkaa otsikkoa" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Poista kuvateksti" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Kopioi leikepöydälle" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Yhteystiedot" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Pilvi" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Kaverien valokuvien jakaminen" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Parhaat kasvot" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Videotiedostoina" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Kuvatiedostoina" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Animoitu valokuva" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Lisää säätunniste" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Lisää nimi" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Lisää kuvateksti" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Diaesityksen musiikki" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Jaa ääni ja kuva -kuvia" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Aseta" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Lähetä kuva hlölle" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Valitse jaettava yhteystieto" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Toistonopeus" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Luk. näytön taustak." msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Perehdy kallistukseen" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Alkunäytön taustakuva" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Muokkaa säätunnist." + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Muokkaa kuvasarjaa" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Käyt. olevat laitt." + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "Kaikki albumit" -msgid "IDS_IV_OPT_TAG" -msgstr "Tunniste" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Lisää tunniste" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Alku- ja lukitusnäytön taustakuva" +msgid "IDS_IV_BUTTON_STOP" +msgstr "Lop." -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Käytä liikettä" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Hae" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Alku- ja lukitusnäytöt" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Voit jakaa mediasisällön muiden laitteiden kanssa lähellä olevien laitteiden avulla." -msgid "IDS_IV_BODY_CROP" -msgstr "Rajaa" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Henkilön %s ja %d muun kanssa" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Alkunäyttö" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Mukana %s" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Lukitusnäyttö" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Valkotasapaino" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Kierrä vastapäivään" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Sää" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Kierrä myötäpäivään" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Sää" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Tunnista manuaalisesti" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Toimittaja" -msgid "IDS_IV_BODY_ME" -msgstr "Minä" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Kelpoisuus" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Muo. tunn." +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Rajoittamaton" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Poista tunniste" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Valokuvaa ei voi ladata." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Ajoitettu määrä" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "Tallennettuja säätietoja on muokattava manuaalisesti. Laite ei tue tallennettujen säätietojen vastaanottamista sääpienoisohjelmasta." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Napauta kasvoja ihmisten tietojen tarkastelua varten." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Pienennä tai suurenna näyttöä pitämällä kahta pistettä painettuna ja kallistelemalla laitetta edestakaisin." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Aurinkoinen päivä" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Luminen päivä" msgid "IDS_IV_BODY_SHARE_VIA" msgstr "Jakotapa" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Älä lähetä" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Palvelimen nimi" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Kaverien valokuvien jakaminen" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Valitse alue kuvan leikkaamista varten." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Kasvojen merk." +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Valittu alue tulostetaan." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Kuvan katseluohjelma" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Taustakuvana käytetään valittua aluetta." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Yhteyshenkilön kuvaan sovelletaan valittua aluetta." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Oikeustila" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Tarkkuus" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Poista suosikeista" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Sateinen päivä" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Tulosta" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Mahdollinen" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Ihmiset" + +msgid "IDS_IV_BODY_N_A" +msgstr "-" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Ei tunnistetta" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Uusi tunniste" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" msgstr "Lähellä olevat laitteet" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Valitse alue kuvan leikkaamista varten" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Oma laite" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Taustakuvana käytetään valittua aluetta" +msgid "IDS_IV_BODY_MODEL" +msgstr "Malli" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Valittu alue tulostetaan" +msgid "IDS_IV_BODY_ME" +msgstr "Minä" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Voit jakaa mediasisällön muiden laitteiden kanssa lähellä olevien laitteiden avulla" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Valmistaja" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Yhteyshenkilön kuvaan sovelletaan valittua aluetta" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Pituusaste" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Lukitusnäyttö" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Sijainti" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Sijainti" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Sijainnit" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Sijainti" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Leveysaste" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "Paikassa %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Väli" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Yksittäinen" + +msgid "IDS_IV_BODY_IN" +msgstr "Sisään" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Mahdoton" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Alkunäyttö" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Alku- ja lukitusnäytöt" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Edelleenlähetys" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Flash-valikko" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Tiedoston nimi" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Tiedoston sijainti" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Tiedostomuoto" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "Valotusaika" -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Suorita" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Ota GPS-tunnisteet kamerassa käyttöön sijaintitunnisteiden tarkastelua varten." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Ota automaattinen päivitys sääpienoisohjelmassa käyttöön säätunnisteiden tarkastelua varten." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Kesto" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM-tiedot" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Älä näytä uudestaan" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Älä kysy uudelleen" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Näyttö" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Luontipäivämäärä" + +msgid "IDS_IV_BODY_CROP" +msgstr "Rajaa" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Luo tunn." + +msgid "IDS_IV_BODY_COUNT" +msgstr "Määrä" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Pilvinen päivä" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Kirkas yö" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Soittajan kuva" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Perus" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Jäljellä olevat käyttökerrat" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Auto" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Käytä sovelluksissa vastaavaa väriteemaa." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Aukko" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Suuntaus" +msgid "IDS_IV_BODY_ANY" +msgstr "Mikä tahansa" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Valmistaja" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Lisää Suosikkeihin" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Polttoväli" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Kertynyt aika" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Suuntaus" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Merkkien enimmäismäärä saavutettu." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Malli" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Epäonnistui" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Lisää nimi" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Aseta soittajan tunnukseksi" +msgid "IDS_ST_BODY_MB" +msgstr "Mt" + +msgid "IDS_ST_BODY_KB" +msgstr "kt" + +msgid "IDS_ST_BODY_GB" +msgstr "Gt" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Muokkaa" + +msgid "IDS_ST_BODY_DATE" +msgstr "Päivämäärä" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Tilit" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Lataa" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Kun olet lähettänyt kuvia Dropboxiin, kohteet näytetään." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Ladataan..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Lisää kuvia" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Kuvat näytetään, kun olet merkinnyt ne suosikeiksi." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Poistetaanko kasvojen tunnistus?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Liitä nimi" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Vahvista henkilöksi %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Asettelu" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d kuvaa lisätty" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Albumi peruutetaan." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Lataus käynnistetään..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Muisti ei riitä. Poista joitain kohteita." + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Yksityinen tallennustila" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Vedä tänne." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Lisää kuvia napauttamalla." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Tiedosto on jo olemassa." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Tämä kohde poistetaan." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Kun olet lähettänyt kuvia Facebookiin, kohteet näytetään." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Virheellinen merkki" + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Manuaalinen" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Käsitellään..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Nim. uud." + +msgid "IDS_COM_BODY_NONE" +msgstr "Ei mitään" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d valittu" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Laitteen muisti" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD-kortti" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Nopeus" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Taustamusiikki" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 s" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 s" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 s" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Tallennuspaikka" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Tiedoston koko" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 albumi poistetaan." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgia" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Sumennus" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Pehmeä hehku" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Tallenna muutokset" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Tallennetaanko muutokset vai hylätäänkö ne?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Hylkää" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Tallenna" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Vanha" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Aurinko" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Vanha valokuva" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Harmaasävy" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Seepia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Haalistuneet värit" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Valokeila" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Keltainen hehku" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Terävöitä" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Luonnos" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Käänteiset värit" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Öljymaalaus" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Tee julisteeksi" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Sarjakuva" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Poptaide" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Taikakynä" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Lisätty estoluetteloon." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Kierrä" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Laitteen muistissa ei ole tarpeeksi tilaa. Valitse Asetukset > Virta ja tallennus > Tallennus, poista joitain tiedostoja ja yritä uudelleen." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Diojen näyttöväli" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Diojen näyttöväli" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Yhteyshenkilön kuva" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Ei mitään" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Muokkaa" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Nimeä uudelleen" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Määritä käyttökohteeksi" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Lataa" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Nimeä uudelleen" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Nimeä uud." + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Nim. uud." + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Kohdekansiossa on jo tämänniminen tiedosto." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Korvaa" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Aseta" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Alkunäytön taustakuva" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Lukitusnäytön taustakuva" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Alku- ja lukitusn. taustakuvat" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Lisätiedot" + +msgid "IDS_IV_BODY_DATE" +msgstr "Päivämäärä" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Kuvaa ei voi tallentaa" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Laitteen muistissa ei ole tarpeeksi tilaa (%d Mt)." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "SD-kortilla ei ole riittävästi tilaa (%d Mt)." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Poista joitain tiedostoja ja yritä uudelleen." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Tallenna kuva" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Laitteen muistissa ei ole tarpeeksi tilaa (%d Mt jäljellä). Kohde tallennetaan SD-kortille." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "SD-kortilla ei ole tarpeeksi tilaa (%d Mt jäljellä). Kohde tallennetaan laitteen muistiin." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Tämä kuva poistetaan." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Pysäytä" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Poista" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Virhe" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Valitse alue" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Valmis" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Kohteen lataaminen epäonnistui." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negatiivi" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "VALMIS" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "PERUUTA" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negatiivi" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Galleriaa ei voi avata." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Ladataan..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Ladataan..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Lataus epäonnistui." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Kuvaa ladataan..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Hylkää" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Lataus ei onnistu" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobiilidata on poistettu käytöstä. Muodosta yhteys Wi-Fi-verkon kautta tai ota mobiilidata käyttöön ja yritä uudelleen." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Älä lähetä" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 sekunti" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d sekuntia" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Tehoste" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Tehosteet" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Virtaus" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Häivytys" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Kasvoja ei tunnistettu" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Lähennä" diff --git a/res/po/fr.po b/res/po/fr.po new file mode 100644 index 0000000..0c325b5 --- /dev/null +++ b/res/po/fr.po @@ -0,0 +1,996 @@ +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Privé" + +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Renommer" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Cette vidéo va être supprimée." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Le nom de fichier est déjà utilisé." + +msgid "IDS_ST_BODY_OFF" +msgstr "Désactivé" + +msgid "IDS_COM_BODY_DONE" +msgstr "Effectué" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" + +msgid "IDS_CAM_BODY_FLASH" +msgstr "Flash" + +msgid "IDS_COM_SK_STOP" +msgstr "Arrêter" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "La fonction %1$s est désactivée dans cette application. Pour l'activer, accédez à %2$s, sélectionnez la fonction, puis cette application." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "OK" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Annuler" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Saisir un nom" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Aucun nom" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Un seul album existant." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Vous pouvez sélectionner jusqu'à %d éléments." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Détails" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Supprimer" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Supprimer ?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Annuler" + +msgid "IDS_IV_POP_DELETED" +msgstr "Supprimé" + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Favoris" + +msgid "IDS_IV_SK_SAVE" +msgstr "Sauveg." + +msgid "IDS_IV_POP_SAVED" +msgstr "Enregistré" + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Paramètres" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Taille" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Inconnu" + +msgid "IDS_IV_SK_YES" +msgstr "Oui" + +msgid "IDS_CAM_BODY_ISO" +msgstr "ISO" + +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Distance focale" + +msgid "IDS_CAM_BODY_FLASH_ON" +msgstr "Flash activé" + +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Visualiseur d'images" + +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Toutes les images" + +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Orientation" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Sélectionner image" + +msgid "IDS_MP_BODY_DURATION" +msgstr "Durée" + +msgid "IDS_ST_POP_SET" +msgstr "Appliqué" + +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Libellés" + +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Commenter" + +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Visionnez vos médias sur d'autres appareils à l'aide de la fonction Appareils à proximité." + +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Puisqu'ils ne prennent pas en charge la fonction de tags visage, les fichiers vidéo ne contiennent aucune information sur les personnes." + +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Impossible de partager cette image. Elle est protégée par DRM." + +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Impossible d'ouvrir le fichier." + +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Les informations météo enregistrées peuvent être différentes de la météo actuelle en raison de l'intervalle de mise à jour." + +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Vous pouvez utiliser le contenu personnel copié dans le presse-papiers pour créer un nouveau contenu. Votre nouveau contenu risque de ne pas être masqué automatiquement." + +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Image trop petite" + +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "La date est affichée uniquement lorsque d'autres tags sont visibles." + +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Maintenez votre doigt appuyé sur les miniatures pour sélectionner les meilleures photos." + +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Paramètres du diaporama" + +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Définir un fond d'écran pour les écrans d'accueil et de verrouillage" + +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Définir cette image comme ID appelant de %s ?" + +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Définir comme ID d'appelant" + +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Envoi..." + +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Sélectionnez un appareil" + +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "Carte SD retirée" + +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Autorisation refusée" + +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Pas d'emplacement" + +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Aucun visage n'a été tagué. Taguez des visages dans l'image." + +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Aucun visage détecté." + +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Mémoire insuffisante. Supprimez certains éléments." + +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Échec de connexion réseau." + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Le nombre maximum de caractères (%d) est atteint." + +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Format de fichier image non valide" + +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Flash utilisé" + +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Format de fichier non pris en charge" + +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Entrée vide" + +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Entrer un libellé." + +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Activez l'actualisation automatique dans le fond d'écran météo pour voir les tags météo." + +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Téléchargement terminé" + +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Meilleures poses" + +msgid "IDS_IV_POP_ADDED" +msgstr "Ajouté" + +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Ecrire une légende" + +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Utiliser les mouvements" + +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Retirer des favoris" + +msgid "IDS_IV_OPT_TRIM" +msgstr "Rogner" + +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Libellé de portrait" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Tag contextuel" + +msgid "IDS_IV_OPT_TAG" +msgstr "Libellé" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Lancer le diaporama" + +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "Diaporama" + +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Diaporama" + +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Afficher les éléments" + +msgid "IDS_IV_OPT_SHARE" +msgstr "Partager" + +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Rotation à droite" + +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Rotation à gauche" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Supprimer le libellé" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Actualiser" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Imprimer via Bluetooth" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Détecter manuellement" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Fonds d'écran de verrouillage et d'accueil" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Eléments masqués" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Obtenir des itinéraires" + +msgid "IDS_IV_OPT_FILE_TRANSFER" +msgstr "Transfert de fichiers" + +msgid "IDS_IV_OPT_ERASER" +msgstr "Gomme" + +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Modifier tag météo" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Modifier" + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Modifier la légende" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Supprimer les sous-titres" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Copier dans le presse-papier" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Infos connexion" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Partage de photo d'ami" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Meilleure photo" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "En tant que fichiers vidéo" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "En tant que fichiers image" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Photo animée" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Ajouter un tag météo" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Ajouter un nom" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Ajouter une légende" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Musique du diaporama" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Part. imag. Son & prise" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Définir comme" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Envoyer cette image à" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Sélectionner un contact pour partager" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Vitesse de lecture" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Fond d'écran de verrouillage" + +msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" +msgstr "Présentation de la fonction zoom" + +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Fond d'écran d'accueil" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Modifier tag météo" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Modifier rafale" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Périph. disponibles" + +msgid "IDS_IV_HEADER_ALL_ALBUMS" +msgstr "Tous les albums" + +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Libellé" + +msgid "IDS_IV_BUTTON_STOP" +msgstr "Arrêter" + +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Rechercher" + +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Vous pouvez partager vos médias avec d'autres appareils à l'aide de la fonction AllShare." + +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Avec %s et %d autres personnes" + +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Avec %s" + +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Balance des blancs" + +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Météo" + +msgid "IDS_IV_BODY_WEATHER" +msgstr "Météo" + +msgid "IDS_IV_BODY_VENDOR" +msgstr "Fournisseur" + +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Validité" + +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Illimité" + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Impossible de charger la photo." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Temps restant" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "Les informations météorologiques enregistrées doivent être modifiées manuellement. Votre appareil ne prend pas en charge la réception d'informations météo enregistrées depuis le widget Météo." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Appuyez sur les visages pour afficher des informations sur les personnes." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Appuyez de façon prolongée sur deux points, puis inclinez l'appareil d'avant en arrière pour réduire ou agrandir l'écran." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Ensoleillé" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Jour neigeux" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Partager via" + +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Nom du serveur" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Sélectionnez une zone pour rogner l'image." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "La zone sélectionnée sera imprimée." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "La zone sélectionnée sera appliquée au fond d'écran." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "La zone sélectionnée sera appliquée à l'image du contact." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Information sur les droits" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Résolution" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Supprimer des favoris" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Pluvieux" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Imprimer" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Possible" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Personnes" + +msgid "IDS_IV_BODY_N_A" +msgstr "N/A" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Aucun tag" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Nouveau libellé" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "Appareils à proximité" + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Mon appareil" + +msgid "IDS_IV_BODY_MODEL" +msgstr "Modèle" + +msgid "IDS_IV_BODY_ME" +msgstr "Moi" + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Fabricant" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Longitude" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Écran de verrouillage" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Emplacement" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Position" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Emplacements" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Localisation" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Latitude" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "%s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Intervalle" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Individuel" + +msgid "IDS_IV_BODY_IN" +msgstr "Avant" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Impossible" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Écran d'accueil" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Écrans d'accueil et de verrouillage" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Transfert" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Menu flash" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Nom de fichier" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Emplacement du fichier" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Format de fichier" + +msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" +msgstr "Temps d'expo." + +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Exécuter" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Activer les balises GPS pour voir les balises de localisation." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Activez l'actualisation auto dans le widget météo pour afficher les tags météo." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Durée" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "Infos DRM" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Ne plus afficher" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Ne plus demander" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Affichage" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Date créée" + +msgid "IDS_IV_BODY_CROP" +msgstr "Rogner" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Nv libellé" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Compte" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Nuageux" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Nuit claire" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Image d'appelant" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Basique" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Utilisations disponibles" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Auto" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Appliquez un thème de couleurs aux applications." + +msgid "IDS_IV_BODY_APERTURE" +msgstr "Ouverture" + +msgid "IDS_IV_BODY_ANY" +msgstr "N'importe" + +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Ajouter aux favoris" + +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Temps accumulé" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Nb max de caractères atteint" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Échec" + +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" + +msgid "IDS_ST_BODY_MB" +msgstr "Mo" + +msgid "IDS_ST_BODY_KB" +msgstr "Ko" + +msgid "IDS_ST_BODY_GB" +msgstr "Go" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Modifier" + +msgid "IDS_ST_BODY_DATE" +msgstr "Date" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Comptes" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Télécharger" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Des éléments seront affichés après avoir chargé des images sur Dropbox." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Téléchargement en cours." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Ajouter des images" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Une fois les photos favorites identifiées, celles-ci seront affichées." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Supprimer l'identification des visages ?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Attribuer un nom" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Confirmer en tant que %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Mise en forme" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d images ajoutées" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "L'album sera annulé." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Début du téléchargement..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Mémoire insuffisante. Supprimez certains éléments." + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Stockage privé" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Glissez ici." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Appuyer pour ajouter des images." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Le fichier existe déjà." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Cet élément va être supprimé." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Des éléments seront affichés après avoir chargé des images sur Facebook." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Caractère non valide" + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Manuel(le)" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Erreur" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Traitement..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Renommer" + +msgid "IDS_COM_BODY_NONE" +msgstr "Aucun(e)" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d sélectionné(s)" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Espace sur l'appareil" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "Carte SD" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Vitesse" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Musique en arrière-plan" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 sec" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 sec" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 sec" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Emplacement de stockage" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Taille du fichier" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album sera supprimé." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgie" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Flouter" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Éclat" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Enregistrer les modifications" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Enregistrer vos modifications ou annuler ?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Ignorer" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Enreg." + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Vintage" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Soleil" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Vieille photo" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Rétro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Échelle de gris" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sépia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Couleurs atténuées" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Spot" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Lueur jaune" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Améliorer la netteté" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Croquis" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Couleurs interverties" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Peinture à l’huile" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Postériser" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Dessin animé" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Pop art" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Stylo magique" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Ajouté à la liste rouge." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Pivoter" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Espace insuffisant sur votre appareil. Accédez à Paramètres > Alimentation et stockage > Stockage, supprimez des fichiers, puis réessayez." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Intervalle entre les diapos" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Intervalle entre les diapos" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Photo du contact" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Aucune" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Modifier" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Renommer" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Définir comme" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Télécharger" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Renommer" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Renommer" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Renommer" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Un fichier portant ce nom se trouve déjà dans le dossier de destination." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Rempl." + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Définir comme" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Fond d'écran d'accueil" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Fond d'écran de verrouillage" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Fonds d'écran accueil et verr." + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Détails" + +msgid "IDS_IV_BODY_DATE" +msgstr "Date" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Impos. d'enregistrer l'image" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "L'espace est insuffisant (%d Mo) sur votre appareil." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Espace insuffisant (%d Mo) sur votre carte SD." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Supprimez des éléments et réessayez." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Enregistrer l'image" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "L'espace sur votre appareil est insuffisant (%d Mo restant). L'élément va être enregistré sur votre carte SD." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "L'espace sur votre carte SD est insuffisant (%d Mo restant). L'élément va être enregistré dans votre appareil." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Cette image sera supprimée." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Arrêter" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Supprimer" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Erreur" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Sélect. une zone" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "OK" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Le chargement de cet élément a échoué." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Négatif" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "OK" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ANNULER" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Négatif" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Impossible d'ouvrir la galerie." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Chargement..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Chargement en cours." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Échec chargement." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Chargement image..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Ne pas enregistrer" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Téléchargement impossible" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Les données mobiles sont désactivées. Connectez-vous à un réseau Wi-Fi ou activez les données mobiles, puis réessayez." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Ne pas envoyer" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 seconde" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d secondes" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Effet" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Effets" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Circulation" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Fondu" + +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Zoom avant" + diff --git a/res/po/fr_CA.po b/res/po/fr_CA.po old mode 100755 new mode 100644 index 77312cb..97f5435 --- a/res/po/fr_CA.po +++ b/res/po/fr_CA.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Ajouter à l'accueil" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Privé" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Auto" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Renommer" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Cette vidéo va être supprimée." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Le nom de fichier est déjà utilisé." + +msgid "IDS_ST_BODY_OFF" +msgstr "Désactivé" + +msgid "IDS_COM_BODY_DONE" +msgstr "OK" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Flash" -msgid "IDS_CAM_BODY_ISO" -msgstr "ISO" +msgid "IDS_COM_SK_STOP" +msgstr "Arrêter" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Copier dans le presse-papier" +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "La fonction %1$s est désactivée dans cette application. Pour l'activer, accédez à %2$s, sélectionnez la fonction, puis cette application." -msgid "IDS_CAM_BODY_FLASH_ON" -msgstr "Flash activé" +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Flash désactivé" +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "OK" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Équilibre des blancs" +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Annuler" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Auto" +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Saisir un nom" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Nv libellé" +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Aucun nom" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Équilibre des blancs" +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Un seul album existant." -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Temps accumulé" +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Vous pouvez sélectionner jusqu'à %d éléments." -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Libellé" +msgid "IDS_IV_OPT_DETAILS" +msgstr "Détails" -msgid "IDS_IV_POP_ADDED" -msgstr "Ajouté" +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Supprimer" -msgid "IDS_IV_BODY_ANY" -msgstr "N'importe" +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Supprimer ?" -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Utilisations disponibles" +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Annuler" -msgid "IDS_IV_BODY_BASIC" -msgstr "Basique" +msgid "IDS_IV_POP_DELETED" +msgstr "Supprimé." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Image de l'appelant" +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Favori" -msgid "IDS_IV_BODY_COUNT" -msgstr "Compte" +msgid "IDS_IV_SK_SAVE" +msgstr "Sauv." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Date de création" +msgid "IDS_IV_POP_SAVED" +msgstr "Enregistré." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Affichage" +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Réglages" -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Entrer un libellé" +msgid "IDS_IV_BODY_SIZE" +msgstr "Taille" -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Entrée vide" +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Inconnu" -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Exécuter" +msgid "IDS_IV_SK_YES" +msgstr "Oui" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Format de fichier" +msgid "IDS_CAM_BODY_ISO" +msgstr "ISO" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Emplacement du fichier" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Distance focale" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Transfert" +msgid "IDS_CAM_BODY_FLASH_ON" +msgstr "Flash activé" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Papier peint d'accueil" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Visualiseur d'images" -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Impossible" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Toutes les photos" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Individuel" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Orientation" -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Intervalle" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Sélectionner une photo" -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Fichier image non valide" +msgid "IDS_MP_BODY_DURATION" +msgstr "Durée" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Latitude" +msgid "IDS_ST_POP_SET" +msgstr "Appliqué" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Emplacements" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Libellés" -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Fond d'écran verr." +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Commenter" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Longitude" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Visionnez vos médias sur d'autres appareils à l'aide de la fonction Appareils à proximité." -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Nombre maximum de caractères (%d) atteint" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Puisqu'ils ne prennent pas en charge la fonction d'identification du visage, les fichiers vidéos ne contiennent aucune information sur les personnes." -msgid "IDS_IV_BODY_N_A" -msgstr "s.o." +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Impossible de partager cette image. Elle est protégée par GDN." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Nouveau libellé" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Impossible d'ouvrir le fichier." -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Autorisation refusée" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Les informations météo enregistrées peuvent être différentes de la météo actuelle en raison de l'intervalle de mise à jour." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Possible" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Vous pouvez utiliser le contenu personnel copié dans le presse-papier pour créer un nouveau contenu. Votre nouveau contenu risque de ne pas être masqué automatiquement." -msgid "IDS_IV_BODY_PRINT" -msgstr "Imprimer" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Image trop petite" -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Imprimer via Bluetooth" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "La date est affichée uniquement lorsque d'autres libellés sont visibles." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Résolution" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Touchez longuement les miniatures pour sélectionner les meilleures photos." -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Information sur les droits" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Paramètres du diaporama" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "Carte SD retirée" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Définir un papier peint pour les écrans d'accueil et de verrouillage" + +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Définir cette image comme ID appelant de %s ?" + +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Définir comme ID appelant" + +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Envoi ..." msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Sélectionnez le périphérique" +msgstr "Sélectionnez l'appareil" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Nom du serveur" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "Carte SD retirée." -msgid "IDS_IV_OPT_SET_AS" -msgstr "Définir comme" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Autorisation refusée." -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Définir un papier peint pour les écrans d'accueil et de verrouillage" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Pas d'emplacement" -msgid "IDS_IV_OPT_SHARE" -msgstr "Partager" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Aucun visage n'a été identifié. Identifiez des visages dans l'image" -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "Diaporama" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Aucun visage détecté." -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Temps restant" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Mémoire insuffisante. Supprimez certains éléments" -msgid "IDS_IV_OPT_TRIM" -msgstr "Rogner" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Échec de connexion réseau." -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Illimité" +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Nombre maximum de caractères (%d) atteint" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Validité" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Fichier image non valide" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Fournisseur" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Flash utilisé" -msgid "IDS_IV_OPT_FILE_TRANSFER" -msgstr "Transfert de fichiers" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Format de fichier non pris en charge." -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Ne plus afficher" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Entrée vide" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Touchez longuement deux points, puis inclinez le périphérique d'avant en arrière pour réduire ou agrandir l'écran" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Entrer un libellé." -msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" -msgstr "Informations sur l'inclinaison" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Activez l'actualisation automatique dans le fond d'écran météo pour voir les tags météo." -msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "Tous les albums" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Téléchargement terminé" -msgid "IDS_IV_OPT_TAG" -msgstr "Étiqueter" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Meilleure photo" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Fond d'écran de verrouillage et accueil" +msgid "IDS_IV_POP_ADDED" +msgstr "Ajouté." + +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Écrire une légende" msgid "IDS_IV_OPT_USE_MOTION" msgstr "Utiliser les mouvements" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Écran d'accueil et écran verrouillé" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Retirer des favoris" -msgid "IDS_IV_BODY_CROP" +msgid "IDS_IV_OPT_TRIM" msgstr "Rogner" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Écran d'accueil" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Libellé de portrait" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Écran verrouillé" +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Identification contextuelle" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Pivoter vers la gauche" +msgid "IDS_IV_OPT_TAG" +msgstr "Étiqueter" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Lancer le diaporama" + +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "Diaporama" + +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Diaporama" + +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Afficher les éléments" + +msgid "IDS_IV_OPT_SHARE" +msgstr "Partager" msgid "IDS_IV_OPT_ROTATE_RIGHT" msgstr "Pivoter vers la droite" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Pivoter vers la gauche" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Supprimer le libellé" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Actualiser" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Imprimer via Bluetooth" + msgid "IDS_IV_OPT_MANUALLY_DETECT" msgstr "Détecter manuellement" -msgid "IDS_IV_BODY_ME" -msgstr "Moi" +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Fond d'écran de verrouillage et accueil" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Éléments masqués" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Obtenir des itinéraires" + +msgid "IDS_IV_OPT_FILE_TRANSFER" +msgstr "Transfert de fichiers" + +msgid "IDS_IV_OPT_ERASER" +msgstr "Gomme" + +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Modif. libellé météo" msgid "IDS_IV_OPT_EDIT_TAG" msgstr "Modifier l'identification" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Supprimer le libellé" +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Modifier la légende" -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "Partager via" +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Supprimer les sous-titres" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Ne pas envoyer" +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Copier dans le presse-papier" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Infos connexion" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Nuage" msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" msgstr "Partage de photo d'ami" -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Identification" +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Meilleure pose" -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Visualiseur d'images" +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "En tant que fichiers vidéos" -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "Appareils à proximité" +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "En tant que fichiers image" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Sélectionnez une zone pour rogner l'image" +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Photo animée" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "La zone sélectionnée sera appliquée au fond d'écran" +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Ajouter un libellé météo" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "La zone sélectionnée sera imprimée" +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Ajouter un nom" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Ajouter une légende" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Musique du diaporama" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Part. imag. Son & prise" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Définir comme" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Envoyer cette image à" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Sélectionner un contact pour partager" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Vitesse de lecture" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Fond d'écran verr." + +msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" +msgstr "Informations sur l'inclinaison" + +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Papier peint d'accueil" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Modif. libellé météo" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Modifier rafale" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Appareils disponibles" + +msgid "IDS_IV_HEADER_ALL_ALBUMS" +msgstr "Tous les albums" + +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Libellé" + +msgid "IDS_IV_BUTTON_STOP" +msgstr "Arrêter" + +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Rechercher" msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Vous pouvez partager vos médias avec d'autres appareils à l'aide de la fonction appareils à proximité" +msgstr "Vous pouvez partager vos médias avec d'autres appareils à l'aide de la fonction appareils à proximité." -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "La zone sélectionnée sera appliquée à l'image du contact" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Avec %s et %d autres personnes" -msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "Temps d'expo." +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Avec %s" -msgid "IDS_CAM_BODY_APERTURE" -msgstr "Ouverture" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Équilibre des blancs" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Orientation" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Météo" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Fabricant" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Météo" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Distance focale" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Fournisseur" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Orientation" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Validité" -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Modèle" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Illimité" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Ajouter un nom" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Impossible de charger la photo." -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Définir comme ID appelant" +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Temps restant" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "Les informations météorologiques enregistrées doivent être modifiées manuellement. Votre appareil ne prend pas en charge la réception d'informations météo enregistrées depuis le widget Météo." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Appuyez sur les visages pour afficher des informations sur les personnes." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Touchez longuement deux points, puis inclinez le périphérique d'avant en arrière pour réduire ou agrandir l'écran." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Ensoleillé" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Jour neigeux" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Partager via" + +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Nom du serveur" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Sélectionnez une zone pour rogner l'image." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "La zone sélectionnée sera imprimée." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "La zone sélectionnée sera appliquée au fond d'écran." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "La zone sélectionnée sera appliquée à l'image du contact." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Information sur les droits" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Résolution" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Supprimer des favoris" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Pluvieux" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Imprimer" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Possible" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Personnes" + +msgid "IDS_IV_BODY_N_A" +msgstr "s.o." + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Aucun tag" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Nouveau libellé" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "Appareils à proximité" + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Mon appareil" + +msgid "IDS_IV_BODY_MODEL" +msgstr "Modèle" + +msgid "IDS_IV_BODY_ME" +msgstr "Moi" + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Fabricant" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Longitude" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Écran verrouillé" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Emplacement" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Position" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Emplacements" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Localisation" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Latitude" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "%s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Intervalle" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Individuel" + +msgid "IDS_IV_BODY_IN" +msgstr "Avant" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Impossible" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Écran d'accueil" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Écran d'accueil et écran verrouillé" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Transfert" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Menu flash" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Nom de fichier" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Emplacement du fichier" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Format de fichier" + +msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" +msgstr "Temps d'expo." + +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Exécuter" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Activer les balises GPS pour voir les balises de localisation." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Activez l'actualisation auto dans le widget météo pour afficher les tags météo." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Durée" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "Infos GDN" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Ne plus afficher" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Ne plus demander" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Affichage" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Date de création" + +msgid "IDS_IV_BODY_CROP" +msgstr "Rogner" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Nv libellé" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Compte" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Nuageux" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Nuit claire" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Image de l'appelant" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Basique" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Utilisations disponibles" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Auto" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Appliquez un thème de couleurs aux applications." + +msgid "IDS_IV_BODY_APERTURE" +msgstr "Ouverture" + +msgid "IDS_IV_BODY_ANY" +msgstr "N'importe" + +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Ajouter aux favoris" + +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Temps accumulé" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Nb max de caractères atteint." + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Échec" + +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" + +msgid "IDS_ST_BODY_MB" +msgstr "Mo" + +msgid "IDS_ST_BODY_KB" +msgstr "Ko" + +msgid "IDS_ST_BODY_GB" +msgstr "Go" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Modifier" + +msgid "IDS_ST_BODY_DATE" +msgstr "Date" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Comptes" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Télécharger" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Les images s'afficheront après leur chargement sur Dropbox." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Téléchargement..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Ajouter des images" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Une fois les photos favorites identifiées, celles-ci s'afficheront." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Supprimer l'identification des visages ?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Attribuer un nom" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Confirmer en tant que %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Mise en forme" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d images ajoutées" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "L'album sera annulé." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Début du téléchargement..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Mémoire insuffisante. Supprimez certains éléments" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Stockage privé" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Glissez ici." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Touchez pour ajouter des images." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Le fichier existe déjà." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Cet élément va être supprimé." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Les images s'afficheront après leur chargement sur Facebook." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Caractère non valide." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Manuel" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Erreur" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Traitement..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Renommer" + +msgid "IDS_COM_BODY_NONE" +msgstr "Aucun" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d sélectionné(s)" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Espace sur l'appareil" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "Carte SD" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Vitesse" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Musique en arrière-plan" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 s" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 s" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 s" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Emplacement de stockage" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Taille du fichier" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album sera supprimé." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgie" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Flouter" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Éclat" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Enregistrer les modifications" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Enregistrer vos modifications ou annuler ?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Ignorer" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Enregistrer" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Ancien" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Soleil" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Vieille photo" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Rétro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Échelle de gris" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sépia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Couleurs atténuées" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Spot" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Lueur jaune" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Améliorer la netteté" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Croquis" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Couleurs interverties" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Peinture à l’huile" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Postériser" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Dessin animé" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Pop art" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Stylo magique" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Ajouté à la liste de noms bloqués" + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Pivoter" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Espace insuffisant sur votre appareil. Accédez à Paramètres > Alimentation et stockage > Stockage, supprimez des fichiers, puis réessayez." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Intervalle entre les diapos" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Intervalle entre les diapos" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Photo du contact" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Aucune" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Modifier" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Renommer" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Définir comme" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Télécharger" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Renommer" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Renommer" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Renommer" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Un fichier portant ce nom se trouve déjà dans le dossier de destination." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Rempl." + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Définir comme" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Fond d'écran d'accueil" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Fond d'écran verrouillé" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Fonds d'écran accueil et verr." + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Détails" + +msgid "IDS_IV_BODY_DATE" +msgstr "Date" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Impos. d'enregistrer l'image" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "L'espace est insuffisant (%d Mo) sur votre appareil." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Espace insuffisant (%d Mo) sur votre carte SD." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Supprimez des éléments et réessayez." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Enregistrer l'image" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "L'espace sur votre appareil est insuffisant (%d Mo restant). L'élément va être enregistré sur votre carte SD." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "L'espace sur votre carte SD est insuffisant (%d Mo restant). L'élément va être enregistré dans votre appareil." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Cette image sera supprimée." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Arrêter" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Supprimer" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Erreur" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Sélect. une zone" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "OK" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Le chargement de cet élément a échoué." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Négatif" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "OK" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ANNULER" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Négatif" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Impossible d'ouvrir la galerie." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Chargement..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Chargement..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Échec du chargement." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Chargement de l'image..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Ignorer" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Téléchargement impossible" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Les données mobiles sont désactivées. Connectez-vous à un réseau Wifi ou activez les données mobiles, puis réessayez." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Ne pas envoyer" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 seconde" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d secondes" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Effets" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Effets" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Circulation" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Fondu" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Aucun visage détecté" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Zoom avant" diff --git a/res/po/fr_FR.po b/res/po/fr_FR.po deleted file mode 100755 index 4329b30..0000000 --- a/res/po/fr_FR.po +++ /dev/null @@ -1,288 +0,0 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Ajouter à l'accueil" - -msgid "IDS_CAM_BODY_AUTO" -msgstr "Auto." - -msgid "IDS_CAM_BODY_FLASH" -msgstr "Flash" - -msgid "IDS_CAM_BODY_ISO" -msgstr "ISO" - -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Copier dans le presse-papiers" - -msgid "IDS_CAM_BODY_FLASH_ON" -msgstr "Flash activé" - -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Flash désactivé" - -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Balance des blancs" - -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Auto" - -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Nv libellé" - -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Balance des blancs" - -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Temps accumulé" - -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Libellé" - -msgid "IDS_IV_POP_ADDED" -msgstr "Ajouté" - -msgid "IDS_IV_BODY_ANY" -msgstr "N'importe" - -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Utilisations disponibles" - -msgid "IDS_IV_BODY_BASIC" -msgstr "Basique" - -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Image d'appelant" - -msgid "IDS_IV_BODY_COUNT" -msgstr "Compte" - -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Date créée" - -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Affichage" - -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Entrer un libellé" - -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Entrée vide" - -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Exécuter" - -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Format de fichier" - -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Emplacement du fichier" - -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Transfert" - -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Fond d'écran d'accueil" - -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Impossible" - -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Individuel" - -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Intervalle" - -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Format de fichier image non valide" - -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Latitude" - -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Emplacements" - -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Fond d'écran de verrouillage" - -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Longitude" - -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Le nombre maximum de caractères (%d) est atteint" - -msgid "IDS_IV_BODY_N_A" -msgstr "N/A" - -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Nouveau libellé" - -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Autorisation refusée" - -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Possible" - -msgid "IDS_IV_BODY_PRINT" -msgstr "Imprimer" - -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Imprimer via Bluetooth" - -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Résolution" - -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Information sur les droits" - -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "Carte SD retirée" - -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Sélectionnez le périphérique" - -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Nom du serveur" - -msgid "IDS_IV_OPT_SET_AS" -msgstr "Définir comme" - -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Définir un fond d'écran pour les écrans d'accueil et de verrouillage" - -msgid "IDS_IV_OPT_SHARE" -msgstr "Partager" - -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "Diaporama" - -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Temps restant" - -msgid "IDS_IV_OPT_TRIM" -msgstr "Rogner" - -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Illimité" - -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Validité" - -msgid "IDS_IV_BODY_VENDOR" -msgstr "Fournisseur" - -msgid "IDS_IV_OPT_FILE_TRANSFER" -msgstr "Transfert de fichiers" - -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Ne plus afficher" - -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Appuyez de façon prolongée sur deux points, puis inclinez l'appareil d'avant en arrière pour réduire ou agrandir l'écran" - -msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" -msgstr "Présentation de la fonction zoom" - -msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "Tous les albums" - -msgid "IDS_IV_OPT_TAG" -msgstr "Etiqueter" - -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Fonds d'écran de verrouillage et d'accueil" - -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Utiliser les mouvements" - -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Écrans d'accueil et de verrouillage" - -msgid "IDS_IV_BODY_CROP" -msgstr "Rogner" - -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Écran d'accueil" - -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Écran de verrouillage" - -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Rotation à gauche" - -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Rotation à droite" - -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Détecter manuellement" - -msgid "IDS_IV_BODY_ME" -msgstr "Moi" - -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Modifier" - -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Supprimer le libellé" - -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "Partager via" - -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Ne pas envoyer" - -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Partage de photo d'ami" - -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Etiqueter" - -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Visualiseur d'images" - -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "Appareils à proximité" - -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Sélectionnez une zone pour rogner l'image" - -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "La zone sélectionnée sera appliquée au fond d'écran" - -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "La zone sélectionnée sera imprimée" - -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Vous pouvez partager vos médias avec d'autres appareils à l'aide de la fonction appareils à proximité" - -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "La zone sélectionnée sera appliquée à l'image du contact" - -msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "Temps d'expo." - -msgid "IDS_CAM_BODY_APERTURE" -msgstr "Ouverture" - -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Orientation" - -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Fabricant" - -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Distance focale" - -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Orientation" - -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Modèle" - -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Ajouter un nom" - -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Définir comme ID d'appelant" - -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Aucun portrait détecté" - diff --git a/res/po/ga.po b/res/po/ga.po old mode 100755 new mode 100644 index 9cb505c..8672c3b --- a/res/po/ga.po +++ b/res/po/ga.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Cuir le baile" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Príobháideach" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Uath-" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Athainmnigh" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Scriosfar an físeán seo" + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Comhadainm in úsáid cheana." + +msgid "IDS_ST_BODY_OFF" +msgstr "As" + +msgid "IDS_COM_BODY_DONE" +msgstr "Déanta" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Splanc" -msgid "IDS_CAM_BODY_ISO" -msgstr "ISO" +msgid "IDS_COM_SK_STOP" +msgstr "Stop" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Cóipeáil chuig an ngearrthaisce" +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "Tá %1$s díchumasaithe san fheidhmchlár seo. Leis an bhfeidhm seo a chumasú, gabh chuig %2$s, roghnaigh an fheidhm seo, agus ansin roghnaigh an feidhmchlár seo." -msgid "IDS_CAM_BODY_FLASH_ON" -msgstr "Splanc ar siúl" +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Splanc as" +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Déanta" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Leibhéal bán" +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Cuir ar ceal" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Uath" +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Iontráil ainm" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Déan clib" +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Níl ainm ann" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Leibhéal bán" +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Níl ach albam amháin ann" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Am carnta" +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Is féidir leat suas le %d mír a roghnú" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Cuir clib leis" +msgid "IDS_IV_OPT_DETAILS" +msgstr "Sonraí" -msgid "IDS_IV_POP_ADDED" -msgstr "Curtha leis" +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Scrios" -msgid "IDS_IV_BODY_ANY" -msgstr "Ceann ar bith" +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Scrios?" -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Úsáidí atá ar fáil" +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cealaigh" -msgid "IDS_IV_BODY_BASIC" -msgstr "Bunúsach" +msgid "IDS_IV_POP_DELETED" +msgstr "Scriosta." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Íomhá ghlaoiteora" +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Ceanán" -msgid "IDS_IV_BODY_COUNT" -msgstr "Áireamh" +msgid "IDS_IV_SK_SAVE" +msgstr "Sábháil" -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Dáta a rinneadh" +msgid "IDS_IV_POP_SAVED" +msgstr "Sábháilte." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Taispeáint" +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Socruithe" -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Iontráil ainm clibe" +msgid "IDS_IV_BODY_SIZE" +msgstr "Méid" -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Tá an iontráil folamh" +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Anaithnid" -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Rith" +msgid "IDS_IV_SK_YES" +msgstr "Déan é" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Formáid an chomhaid" +msgid "IDS_CAM_BODY_ISO" +msgstr "ISO" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Suíomh comhaid" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Fad an fhócais" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Seoladh ar aghaidh" +msgid "IDS_CAM_BODY_FLASH_ON" +msgstr "Splanc ar siúl" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Cúlbhrat an sc. baile" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Amharcóir íomhánna" -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Dodhéanta" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Gach pictiúr" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Duine aonair" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Treoshuíomh" -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Eatramh" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Roghnaigh pictiúr" -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Comhad íomhá neamhbhailí" +msgid "IDS_MP_BODY_DURATION" +msgstr "Fad ama" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Leithead" +msgid "IDS_ST_POP_SET" +msgstr "Socraithe" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Suíomhanna" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Clibeanna" -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Cúlbhrat an sc. glasála" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Cuir trácht leis" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Domhanfad" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Amharc ar do mheáin ar ghléasanna eile ag baint úsáid as gléasanna in aice láimhe" -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Uaslíon na gcarachtar (%d) bainte amach" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Ní bhíonn faisnéis faoi dhaoine i gcomhaid físe toisc nach bhfuil tacú iontu d'fheidhm na clibeála aghaidhe" -msgid "IDS_IV_BODY_N_A" -msgstr "N/B" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Ní féidir an íomhá seo a chomhroinnt. Tá cosaint DRM uirthi." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Clib nua" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Ní féidir an comhad a oscailt." -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Cead séanta" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Is féidir go mbeidh an fhaisnéis thaifeadta faoin aimsir difriúil ón bhfíoraimsir mar gheall ar an eatramh nuashonraithe" -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Indéanta" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Is féidir an t-inneachar pearsanta arna chóipeáil leis an ngearrthaisce a úsáid le hinneachar nua a chruthú. Is féidir nach bhfolófar d'inneachar nua go huathoibríoch." -msgid "IDS_IV_BODY_PRINT" -msgstr "Priontáil" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Tá an íomhá róbheag" -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Priontáil le Bluetooth" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Ní thaispeántar faisnéis dáta ach amháin nuair a bhíonn clibeanna eile infheicthe" -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Taifeach" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Tapáil agus coinnigh mionsamhlacha leis na grianghraif is fearr a roghnú" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Stádas ceart" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Socruithe taispeántais sleamhnán" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "Cárta SD bainte" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Socraigh cúlbhrat don scáileán baile agus don scáileán glasála" + +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Socraigh an pictiúr seo mar ID glaoiteora %s?" + +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Socraigh mar ID glaoiteora" + +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Ag seoladh..." msgid "IDS_IV_POP_SELECT_DEVICE" msgstr "Roghnaigh gléas" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Ainm freastalaí" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "Cárta SD bainte." -msgid "IDS_IV_OPT_SET_AS" -msgstr "Socraigh mar" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Cead séanta." -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Socraigh cúlbhrat don scáileán baile agus don scáileán glasála" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Níl suíomh ann" -msgid "IDS_IV_OPT_SHARE" -msgstr "Comhroinn" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Níor clibeáladh aghaidheanna. Clibeáil aghaidheanna sa phictiúr." -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "Taispeántas sleamhnán" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Níor braitheadh aghaidheanna." -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Áireamh amaithe" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Easpa cuimhne. Scrios roinnt míreanna." -msgid "IDS_IV_OPT_TRIM" -msgstr "Bearr" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Theip ar nasc líonra." -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Gan teorainn" +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Uaslíon na gcarachtar (%d) bainte amach." -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Bailíocht" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Comhad íomhá neamhbhailí." -msgid "IDS_IV_BODY_VENDOR" -msgstr "Díoltóir" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Splanc á úsáid" -msgid "IDS_IV_OPT_FILE_TRANSFER" -msgstr "Aistriú comhaid" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Níl tacú ann d'fhormáid an chomhaid." -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Ná taispeáin arís" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Tá an iontráil folamh" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Tapáil agus coinnigh ag dhá phointe, ansin claon an gléas siar agus aniar leis an scáileán a laghdú nó a mhéadú" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Iontráil ainm clibe" -msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" -msgstr "Foghlaim faoi chlaonadh" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Cumasaigh uath-athnuachan sa chúlbhrat aimsire le clibeanna aimsire a fheiceáil." -msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "Gach albam" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Íoslódáilte" -msgid "IDS_IV_OPT_TAG" -msgstr "Clib" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Grianghraf is fearr" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Cúlbhrat baile agus don scáileán glasála" +msgid "IDS_IV_POP_ADDED" +msgstr "Curtha leis." + +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Scríobh foscríbhinn" msgid "IDS_IV_OPT_USE_MOTION" msgstr "Úsáid gluaisne" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Scáileáin bhaile agus ghlasála" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Ní ceanán é" -msgid "IDS_IV_BODY_CROP" +msgid "IDS_IV_OPT_TRIM" msgstr "Bearr" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Scáileán baile" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Clibeáil aghaidh" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Glasáil an scáileán" +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Clibeáil Cara" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Rothlaigh ar chlé" +msgid "IDS_IV_OPT_TAG" +msgstr "Clib" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Tosaigh ar thaispeántas sleamhnán" + +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "Taispeántas sleamhnán" + +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Taispeántas sleamhnán" + +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Taispeáin míreanna" + +msgid "IDS_IV_OPT_SHARE" +msgstr "Comhroinn" msgid "IDS_IV_OPT_ROTATE_RIGHT" msgstr "Rothlaigh ar dheis" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Rothlaigh ar chlé" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Bain clib" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Athnuaigh" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Priontáil le Bluetooth" + msgid "IDS_IV_OPT_MANUALLY_DETECT" msgstr "Aimsigh de láimh" -msgid "IDS_IV_BODY_ME" -msgstr "Mise" +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Cúlbhrat baile agus don scáileán glasála" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Míreanna folaithe" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Faigh eolas an bhealaigh" + +msgid "IDS_IV_OPT_FILE_TRANSFER" +msgstr "Aistriú comhaid" + +msgid "IDS_IV_OPT_ERASER" +msgstr "Scriosán" + +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Eagr. clib aimsire" msgid "IDS_IV_OPT_EDIT_TAG" msgstr "Eagr. clib" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Bain clib" +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Cur foscríbhinn in eagar" -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "Comhroinn le" +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Scrios foscríbhinn" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Ná seol" +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Cóipeáil chuig an ngearrthaisce" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Fais. faoi nascadh" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Scamall" msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" msgstr "Comhroinnt grianghraf idir chairde" -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Clibeáil aghaidhe" +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Aghaidh's fearr" -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Amharcóir íomhánna" +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Mar chomhaid físe" -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "Gléasanna in aice láimhe" +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Mar chomhaid íomhá" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Roghnaigh limistéar leis an bpictiúr a bhearradh" +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Grianghraf beoite" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Cuirfear an limistéar roghnaithe i bhfeidhm i leith an chúlbhrait" +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Cuir clib aimsire leis" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Déanfar an limistéar roghnaithe a phriontáil" +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Cuir ainm leis" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Cuir foscríbhinn leis" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Ceol taispeántais sleamhnán" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "C.roinn pic. fuaime & seat" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Socraigh mar" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Seol grianghraf chuig" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Roghnaigh teagmhálaí le comhroinnt" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Luas seanma" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Cúlbhrat an sc. glasála" + +msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" +msgstr "Foghlaim faoi chlaonadh" + +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Cúlbhrat an sc. baile" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Eagr. clib aimsire" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Eagraigh pléasc-sheat" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Gléasanna atá ar fáil" + +msgid "IDS_IV_HEADER_ALL_ALBUMS" +msgstr "Gach albam" + +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Cuir clib leis" + +msgid "IDS_IV_BUTTON_STOP" +msgstr "Stop" + +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Scan" msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" msgstr "Is féidir leat do mheáin a chomhroinnt le gléasanna eile ag baint úsáid as gléasanna in aice láimhe" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Cuirfear an limistéar roghnaithe i bhfeidhm i leith phictiúr an teagmhálaí" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Le %s agus %d eile" -msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "Am nochta" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Le %s" -msgid "IDS_CAM_BODY_APERTURE" -msgstr "Oscailt" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Leibhéal bán" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Treoshuíomh" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "An Aimsir" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Déantúsóir" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Aimsir" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Fad an fhócais" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Díoltóir" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Treoshuíomh" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Bailíocht" -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Samhail" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Gan teorainn" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Cuir ainm leis" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Ní féidir an grianghraf a lódáil." -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Socraigh mar ID glaoiteora" +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Áireamh amaithe" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Clibeáil aghaidheanna le hamharc ar fhaisnéis faoi na daoine" + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Tapáil agus coinnigh ag dhá phointe, ansin claon an gléas siar agus aniar leis an scáileán a laghdú nó a mhéadú" + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Lá grianmhar" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Lá sneachta" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Comhroinn le" + +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Ainm freastalaí" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Roghnaigh limistéar leis an bpictiúr a bhearradh" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Déanfar an limistéar roghnaithe a phriontáil" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Cuirfear an limistéar roghnaithe i bhfeidhm i leith an chúlbhrait" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Cuirfear an limistéar roghnaithe i bhfeidhm i leith phictiúr an teagmhálaí" + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Stádas ceart" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Taifeach" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Bain ó Cheanáin" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Lá báistí" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Priontáil" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Indéanta" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Daoine" + +msgid "IDS_IV_BODY_N_A" +msgstr "N/B" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Níl clib ann" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Clib nua" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "Gléasanna in aice láimhe" + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Mo ghléas" + +msgid "IDS_IV_BODY_MODEL" +msgstr "Samhail" + +msgid "IDS_IV_BODY_ME" +msgstr "Mise" + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Déantúsóir" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Domhanfad" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Glasáil an scáileán" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Suíomh" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Suíomh" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Suíomhanna" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Suíomh" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Leithead" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "In %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Eatramh" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Duine aonair" + +msgid "IDS_IV_BODY_IN" +msgstr "Isteach" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Dodhéanta" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Scáileán baile" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Scáileáin bhaile agus ghlasála" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Seoladh ar aghaidh" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Splanc" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Comhadainm" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Suíomh comhaid" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Formáid an chomhaid" + +msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" +msgstr "Am nochta" + +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Rith" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Cumasaigh clibeanna GPS i gCeamara le clibeanna suímh a fheiceáil" + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Cumasaigh uath-athnuachan sa ghiuirléid aimsire le clibeanna aimsire a fheiceáil" + +msgid "IDS_IV_BODY_DURATION" +msgstr "Fad ama" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "Faisnéis faoi DRM" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Ná taispeáin arís" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Ná hiarr arís" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Taispeáint" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Dáta a rinneadh" + +msgid "IDS_IV_BODY_CROP" +msgstr "Bearr" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Déan clib" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Áireamh" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Lá scamallach" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Oíche ghlan" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Íomhá ghlaoiteora" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Bunúsach" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Úsáidí atá ar fáil" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Uath-" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Cuir téama dathanna a mheaitseálann le feidhmchláir." + +msgid "IDS_IV_BODY_APERTURE" +msgstr "Oscailt" + +msgid "IDS_IV_BODY_ANY" +msgstr "Ceann ar bith" + +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Cuir le Ceanáin" + +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Am carnta" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Uaslíon na gcarachtar bainte amach." + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Theip air" + +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" + +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Cuir in eagar" + +msgid "IDS_ST_BODY_DATE" +msgstr "Dáta" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Cuntais" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Íoslódáil" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Tar éis duit pictiúir a uaslódáil chuig Dropbox, taispeánfar míreanna" + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Ag íoslódáil..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Cuir pictiúir leis" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Tar éis duit pictiúir a chlibeáil mar do cheanáin, taispeánfar na pictiúir" + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Bain aithint aghaidhe?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Sann ainm" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Deimhnigh mar %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Leagan amach" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "Cuireadh %d pictiúr leis" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Cuirfear an t-albam ar ceal" + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Ag tosú ar íoslódáil..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Easpa cuimhne. Scrios roinnt míreanna." + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Stóras príobháideach" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Tarraing anseo" + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Tapáil le híomhánna a chur leis" + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Tá an comhad ann cheana" + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Scriosfar an mhír seo" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Tar éis duit pictiúir a uaslódáil chuig Facebook, taispeánfar míreanna" + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Carachtar neamhbhailí." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Láimhe" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Ag próiseáil..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Athainmnigh" + +msgid "IDS_COM_BODY_NONE" +msgstr "Dada" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d roghnaithe" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Stóras gléis" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "Cárta SD" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Luas" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Ceol sa chúlra" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 soic" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 shoic" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 shoic" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Suíomh an stórais" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Méid an chomhaid" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "Scriosfar 1 albam" + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Cuimhní cinn" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Doiléirigh" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Breo bog" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Sábháil athruithe" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Sábháil d’athruithe nó cuileáil iad?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Cuileáil" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Sábháil" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Seanré" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Dealramh gréine" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Sean-Ghrianghraf" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Reitreo" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Liathscála" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Dúch cudail" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Dathanna tréigthe" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Solas síos" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Breo Buí" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Géaraigh" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Sceitseáil" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Dathanna Inbhéartaithe" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Olaphéint" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Póstaerach" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Cartún" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Popealaín" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Peann Draíochta" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Curtha le liosta blocáilte." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Rothlaigh" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Níl go leor spáis i stóras do ghléis. Gabh chuig Socruithe > Cumhacht agus stóras > Stóras, ansin scrios roinnt comhad agus triail arís." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Eatramh idir sleamhnáin" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Eatramh idir sleamhnáin" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Pictiúr an teagmhálaí" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Dada" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Cuir in eagar" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Athainmnigh" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Socraigh mar" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Íoslódáil" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Athainmnigh" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Athainmnigh" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Athainm." + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Tá comhad leis an ainm céanna san fhillteán sprice cheana." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Ionadú" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Socraigh mar" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Cúlbhrat scáileáin bhaile" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Cúlbhrat scáileáin ghlasála" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Cúlbhrait scáil. baile & glasála" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Sonraí" + +msgid "IDS_IV_BODY_DATE" +msgstr "Dáta" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Ní féidir íomhá a shábháil" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Níl go leor spáis (%d MB) i stóras do ghléis." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Níl go leor spáis (%d MB) ar do chárta SD" + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Scrios roinnt comhad agus triail arís." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Sábháil íomhá" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Níl dóthain spáis (%d MB fágtha) i stóras do ghléis. Sábhálfar an mhír seo ar do chárta SD." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Níl dóthain spáis (%d MB fágtha) ar an gcárta SD. Sábhálfar an mhír seo i stóras do ghléis." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Scriosfar an íomhá seo" + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Stop" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Scrios" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Earráid" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Roghnaigh limistéar" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Déanta" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Theip ar lódáil na míre seo." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Claonchló" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "DÉANTA" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CUIR AR CEAL" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Claonchló" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Ní féidir Gailearaí a oscailt." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Lódáil..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Ag lódáil..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Theip ar lódáil." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Íomhá á lódáil..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Cuileáil" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Íoslódáil dodhéanta" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Sonraí móibíleacha casta as. Nasc le líonra Wi-Fi nó cas Sonraí móibíleacha air agus triail arís é." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Ná seol" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 soicind" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d soicind" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Maisíocht" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Maisíochtaí" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Sreabhadh" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Céimnigh" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Níor aimsíodh aghaidh" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Zúmáil isteach" diff --git a/res/po/gl.po b/res/po/gl.po old mode 100755 new mode 100644 index a93a8d7..7d7ee81 --- a/res/po/gl.po +++ b/res/po/gl.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Engadir ao inicio" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Privado" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Automático" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "C. nome" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Eliminarase este vídeo" + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Nome do arquivo xa en uso." + +msgid "IDS_ST_BODY_OFF" +msgstr "Desactivado" + +msgid "IDS_COM_BODY_DONE" +msgstr "Finalizado" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Flash" -msgid "IDS_CAM_BODY_ISO" -msgstr "ISO" +msgid "IDS_COM_SK_STOP" +msgstr "Deter" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Copiar no portapapeis" +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s está desactivado nesta aplicación. Para activar esta función, vai a %2$s, selecciona esta función e, a continuación, selecciona esta aplicación." -msgid "IDS_CAM_BODY_FLASH_ON" -msgstr "Flash activado" +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "Aceptar" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Flash desactivado" +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Feito" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Balance de brancos" +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Cancelar" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Automátic" +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Introducir nome" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Crear etiq" +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Sen nome" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Balance de brancos" +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Só hai un álbum" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Tempo acumulado" +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Podes seleccionar ata %d elementos" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Eng. etiq." +msgid "IDS_IV_OPT_DETAILS" +msgstr "Detalles" -msgid "IDS_IV_POP_ADDED" -msgstr "Engadido" +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Eliminar" -msgid "IDS_IV_BODY_ANY" -msgstr "Calquera" +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Eliminar?" -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Usos dispoñibles" +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cancelar" -msgid "IDS_IV_BODY_BASIC" -msgstr "Básico" +msgid "IDS_IV_POP_DELETED" +msgstr "Eliminado" -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Imaxe do chamante" +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Favorito" -msgid "IDS_IV_BODY_COUNT" -msgstr "Contar" +msgid "IDS_IV_SK_SAVE" +msgstr "Gardar" -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Data creada" +msgid "IDS_IV_POP_SAVED" +msgstr "Gardado" -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Pantalla" +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Axustes" -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Introducir nome de etiqueta" +msgid "IDS_IV_BODY_SIZE" +msgstr "Tamaño" -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "A entrada está baleira" +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Descoñecido" -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Executar" +msgid "IDS_IV_SK_YES" +msgstr "Si" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Formato de arquivo" +msgid "IDS_CAM_BODY_ISO" +msgstr "ISO" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Localización do arquivo" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Lonxitude focal" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Reenviando" +msgid "IDS_CAM_BODY_FLASH_ON" +msgstr "Flash activado" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Fondo pant. inicio" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Visor de imaxes" -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Non é posible" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Todas as imaxes" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Individual" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Orientación" -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Intervalo" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Seleccionar imaxe" -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Imaxe de arquivo non válida" +msgid "IDS_MP_BODY_DURATION" +msgstr "Duración" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Latitude" +msgid "IDS_ST_POP_SET" +msgstr "Establ." -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Localizacións" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Etiquetas" -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Fondo pant. bloqueo" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Engadir coment." -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Lonxitude" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Visualiza os teus arquivos multimedia noutros dispositivos utilizando dispositivos próximos" -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Alcanzouse o número máximo de carácteres (%d)" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Os arquivos de vídeo non conteñen información acerca das persoas, xa que non admiten a función de etiquetado de caras" -msgid "IDS_IV_BODY_N_A" -msgstr "N/D" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Non se pode compartir esta imaxe. Está protexida mediante DRM." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Nova etiqueta" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Non se pode abrir o arquivo" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Permiso denegado" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "É posible que a información meteorolóxica gravada non coincida coa información real debido ao intervalo de actualización" -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Posible" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "O contido persoal copiado no portapapeis pode usarse para crear contido novo. É posible que o novo contido non se oculte automaticamente." -msgid "IDS_IV_BODY_PRINT" -msgstr "Imprimir" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "A imaxe é moi pequena" -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Imprimir por Bluetooth" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "A información da data só se amosa cando se amosan outras etiquetas." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Resolución" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Mantén tocadas as miniaturas para seleccionar as mellores fotos" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Estado correcto" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Axustes de presentación" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "Quitouse a tarxeta SD" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Definir fondo para pantalla de inicio e pantalla de bloqueo" + +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Desexas definir esta imaxe como ID de chamante de %s?" + +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Definir como ID do chamante" + +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Enviando..." msgid "IDS_IV_POP_SELECT_DEVICE" msgstr "Seleccionar dispositivo" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Nome do servidor" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "Quitouse a tarxeta SD" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Definir como" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Permiso denegado" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Definir fondo para pantalla de inicio e pantalla de bloqueo" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Sen localización" -msgid "IDS_IV_OPT_SHARE" -msgstr "Compartir" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Non se etiquetou ningunha cara. Etiquetar caras da imaxe." -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "Presentación de diapositivas" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Non se detectou ningunha cara" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Conta restante" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Non hai suficiente memoria. Elimine algúns elementos." -msgid "IDS_IV_OPT_TRIM" -msgstr "Recortar" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Erro na conexión de rede" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Ilimitada" +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Alcanzouse o número máximo de carácteres (%d)" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Validez" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Imaxe de arquivo non válida" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Provedor" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Flash usado" -msgid "IDS_IV_OPT_FILE_TRANSFER" -msgstr "Transferencia de arquivos" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Formato de arquivo non admitido" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Non volver mostrar" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "A entrada está baleira" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Toca e mantén pulsados dous puntos e, a continuación, inclina o dispositivo cara atrás e adiante para reducir ou ampliar a pantalla" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Introducir nome de etiqueta" -msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" -msgstr "Información sobre a inclinación" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Activa a actualización automática no fondo de pantalla meteorolóxico para ver as etiquetas de información meteorolóxica" -msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "Todos os álbums" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Descarga completa" -msgid "IDS_IV_OPT_TAG" -msgstr "Etiqueta" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Best Photo" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Fondo da pantalla de inicio e de bloqueo" +msgid "IDS_IV_POP_ADDED" +msgstr "Engadido" + +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Escribir lenda" msgid "IDS_IV_OPT_USE_MOTION" msgstr "Usar movemento" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Pantalla de inicio e bloqueo" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Non favorito" -msgid "IDS_IV_BODY_CROP" -msgstr "Volver marcar" +msgid "IDS_IV_OPT_TRIM" +msgstr "Recortar" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Pantalla de inicio" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Etiquetar cara" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Bloquear pantalla" +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Tag buddy" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Xirar á esquerda" +msgid "IDS_IV_OPT_TAG" +msgstr "Etiqueta" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Iniciar presentación de diapositivas" + +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "Presentación de diapositivas" + +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Presentación de diapos" + +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Mostrar elementos" + +msgid "IDS_IV_OPT_SHARE" +msgstr "Compartir" msgid "IDS_IV_OPT_ROTATE_RIGHT" msgstr "Xirar á dereita" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Xirar á esquerda" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Eliminar etiqueta" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Actualizar" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Imprimir por Bluetooth" + msgid "IDS_IV_OPT_MANUALLY_DETECT" msgstr "Detectar manualmente" -msgid "IDS_IV_BODY_ME" -msgstr "Eu" +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Fondo da pantalla de inicio e de bloqueo" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Elementos ocultados" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Obter indicacións" + +msgid "IDS_IV_OPT_FILE_TRANSFER" +msgstr "Transferencia de arquivos" + +msgid "IDS_IV_OPT_ERASER" +msgstr "Goma" + +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Edit. etiqueta tempo" msgid "IDS_IV_OPT_EDIT_TAG" msgstr "Ed. etiq." -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Eliminar etiqueta" +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Editar lenda" -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "Compartir a través de" +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Eliminar lenda" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Non enviar" +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Copiar no portapapeis" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Información conexión" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" msgstr "Compartir foto de amigo" -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Etiq. de caras" +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Best face" -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Visor de imaxes" +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Como arquivos de vídeo" -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "Dispositivos próximos" +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Como arquivos de imaxe" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Selecciona unha zona para recortar da imaxe" +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Foto animada" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "A zona seleccionada aplicarase ao fondo de pantalla" +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Engadir etiqueta tempo" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "A zona seleccionada imprimirase" +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Engadir nome" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Podes compartir os teus arquivos multimedia con outros dispositivos utilizando dispositivos próximos" +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Engadir lenda" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "A zona seleccionada aplicarase á imaxe do contacto" +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Música da presentación de diapositivas" -msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "Tempo exposic." +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Comp ima. sound & shot" -msgid "IDS_CAM_BODY_APERTURE" -msgstr "Abertura" +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Definir como" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Orientación" +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Enviar esta imaxe a" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Fabricante" +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Selecciona un contacto co que desexes compartir" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Lonxitude focal" +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Velocidade de reprodución" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Orientación" +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Fondo pant. bloqueo" -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Modelo" +msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" +msgstr "Información sobre a inclinación" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Engadir nome" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Fondo pant. inicio" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Definir como ID do chamante" +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Edit. etiqueta tempo" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Non se detectou ningunha cara" +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Editar toma en refacho" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Dispositivos dispoñ." + +msgid "IDS_IV_HEADER_ALL_ALBUMS" +msgstr "Todos os álbums" + +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Eng. etiq." + +msgid "IDS_IV_BUTTON_STOP" +msgstr "Deter" + +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Buscar" + +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Podes compartir os teus arquivos multimedia con outros dispositivos utilizando dispositivos próximos" + +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Con %s e %d outros" + +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Con %s" + +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Balance de brancos" + +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Tempo" + +msgid "IDS_IV_BODY_WEATHER" +msgstr "Tempo" + +msgid "IDS_IV_BODY_VENDOR" +msgstr "Provedor" + +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Validez" + +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Ilimitada" + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Imposible cargar a foto" + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Conta restante" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Toca as caras para ver información acerca das persoas" + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Toca e mantén pulsados dous puntos e, a continuación, inclina o dispositivo cara atrás e adiante para reducir ou ampliar a pantalla" + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Día solleiro" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Día nevoso" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Compartir a través de" + +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Nome do servidor" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Selecciona unha zona para recortar da imaxe" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "A zona seleccionada imprimirase" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "A zona seleccionada aplicarase ao fondo de pantalla" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "A zona seleccionada aplicarase á imaxe do contacto" + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Estado correcto" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Resolución" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Eliminar de favoritos" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Día chuviñoso" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Imprimir" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Posible" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Xente" + +msgid "IDS_IV_BODY_N_A" +msgstr "N/D" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Ningunha etiqueta" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Nova etiqueta" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "Dispositivos próximos" + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "O meu dispositivo" + +msgid "IDS_IV_BODY_MODEL" +msgstr "Modelo" + +msgid "IDS_IV_BODY_ME" +msgstr "Eu" + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Fabricante" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Lonxitude" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Pantalla de bloqueo" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Localización" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Localiz." + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Localizacións" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Localización" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Latitude" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "No %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Intervalo" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Individual" + +msgid "IDS_IV_BODY_IN" +msgstr "Acercar" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Non é posible" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Pantalla de inicio" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Pantalla de inicio e bloqueo" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Reenviando" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Menú flash" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Nome do arquivo" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Localización do arquivo" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Formato de arquivo" + +msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" +msgstr "Tempo exposic." + +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Executar" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Activa as etiquetas GPS na cámara para ver as etiquetas de situación" + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Activa a actualización automática no widget meteorolóxico para ver as etiquetas de información meteorolóxica" + +msgid "IDS_IV_BODY_DURATION" +msgstr "Duración" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "Info DRM" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Non volver mostrar" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Non preguntar outra vez" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Pantalla" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Data creada" + +msgid "IDS_IV_BODY_CROP" +msgstr "Recortar" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Crear etiq" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Contar" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Día nubrado" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Noite despexada" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Imaxe do chamante" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Básico" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Usos dispoñibles" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Automático" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Aplicar un tema de cor coincidente ás aplicacións." + +msgid "IDS_IV_BODY_APERTURE" +msgstr "Abertura" + +msgid "IDS_IV_BODY_ANY" +msgstr "Calquera" + +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Engadir a Favoritos" + +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Tempo acumulado" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Número máximo de caracteres alcanzado" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Erro" + +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" + +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Editar" + +msgid "IDS_ST_BODY_DATE" +msgstr "Data" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Contas" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Descargar" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Despois de cargar imaxes a Dropbox, amosaranse elementos" + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Descargando..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Engadir imaxes" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Despois de etiquetar as imaxes como favoritas, estas amosaranse" + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Desexas eliminar a identificación de caras?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Asignar nome" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Confirmar como %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Deseño" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d imaxes engadidas" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "O álbum cancelarase" + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Iniciando descarga..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Non hai suficiente memoria. Elimine algúns elementos." + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Almacenamento privado" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Arrastrar aquí" + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Toca esta opción para engadir imaxes" + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "O arquivo xa existe" + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Eliminarase este elemento" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Despois de cargar imaxes a Facebook, amosaranse elementos" + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Caracter non válido" + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Manual" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Procesando..." + +msgid "IDS_ST_BODY_OK" +msgstr "Aceptar" + +msgid "IDS_ST_SK_RENAME" +msgstr "Cam. nome" + +msgid "IDS_COM_BODY_NONE" +msgstr "Ningún" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d seleccionadas" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Almacenamento do dispositivo" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "Tarxeta SD" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Velocidade" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Música de fondo" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 seg." + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 seg." + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 seg." + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Localización de almacenamento" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Tamaño de arquivo" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "Eliminarase 1 álbum" + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalxia" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Desenfocar" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Brillo suave" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Gardar cambios" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Desexas gardar os teus cambios ou descartalos?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Descar." + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Gardar" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Vintage" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Luz do sol" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Fotografía antiga" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Escala de grises" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sepia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Cores apagadas" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Luz descendente" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Brillo amarelo" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Enfocar" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Bosquexo" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Cores invertidas" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Óleo" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Posterizar" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Debuxos animados" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Pop Art" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Lapis máxico" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Engadido á lista de bloqueados" + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Xirar" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Non hai espazo suficiente no almacenamento do teu dispositivo. Vai a Axustes > Alimentación e almacenamento > Almacenamento e, a continuación, elimina algúns arquivos e téntao de novo." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Intervalo de diapositiva" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Intervalo de diapositiva" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Imaxe de contacto" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Ningún" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Editar" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Cambiar nome" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Definir como" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Descargar" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Cambiar nome" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Cambiar nome" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Renomear" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Xa existe un arquivo con este nome na carpeta de destino." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Substit" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Definir como" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Fondo da pantalla de inicio" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Fondo da pantalla de bloqueo" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Fondos pant. inicio e bloqueo" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Detalles" + +msgid "IDS_IV_BODY_DATE" +msgstr "Data" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Non se pode gardar a imaxe" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Non hai espazo suficiente (%d MB) no almacenamento do teu dispositivo." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Non hai espazo suficiente (%d MB) na tarxeta SD" + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Elimina algúns arquivos e inténtao outra vez." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Gardar imaxe" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Non hai espazo suficiente (%d MB restantes) no almacenamento do teu dispositivo. Este elemento gardarase na túa tarxeta SD." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Non hai espazo suficiente (%d MB restantes) na tarxeta SD. Este elemento gardarase no almacenamento do teu dispositivo." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Eliminarase esta imaxe" + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Deter" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Eliminar" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Erro" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Seleccionar área" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Feito" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Non se puido cargar este elemento." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negativo" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "FEITO" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CANCELAR" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negativo" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Non se pode abrir a Galería." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Cargando..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Cargando..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Erro ao cargar" + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Cargando imaxe..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Refugar" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Non se pode descargar" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Os datos móbiles están desactivados. Conéctate a unha rede Wi-Fi ou activa os datos móbiles e téntao de novo." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Non enviar" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 segundo" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d segundos" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Efecto" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Efectos" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Corrente" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Atenuar" + +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Acercar" diff --git a/res/po/hi.po b/res/po/hi.po old mode 100755 new mode 100644 index 609602d..55401e9 --- a/res/po/hi.po +++ b/res/po/hi.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "होम में जोड़े" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "निजी" -msgid "IDS_CAM_BODY_AUTO" -msgstr "स्वतः" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "नाम बदलें" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "यह वीडियो हटाया जाएगा" + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "फाइल नाम पहले से ही उपयोग में है।" + +msgid "IDS_ST_BODY_OFF" +msgstr "बंद" + +msgid "IDS_COM_BODY_DONE" +msgstr "पूर्ण" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "फेसबुक" msgid "IDS_CAM_BODY_FLASH" -msgstr "चमक" +msgstr "फ्लैश" + +msgid "IDS_COM_SK_STOP" +msgstr "रोकें" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "इस एप्लीकेशन में %1$s अक्षम है। यह फ़ंक्शन सक्षम करने के लिए %2$s पर जाएँ, यह फ़ंक्शन चुनें और फिर यह एप्लीकेशन चुनें।" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "ओके" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "पूर्ण" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "रद्द करें" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "नाम प्रविष्ट करें" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "नाम नहीं" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "यहाँ केवल एक एल्बम है" + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "आप %d मद तक चुन सकते हैं" + +msgid "IDS_IV_OPT_DETAILS" +msgstr "विवरण" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "हटाएँ" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "हटाएँ?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "रद्द" + +msgid "IDS_IV_POP_DELETED" +msgstr "हटाया।" + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "पसंदीदा" + +msgid "IDS_IV_SK_SAVE" +msgstr "सुरक्षित" + +msgid "IDS_IV_POP_SAVED" +msgstr "सुरक्षित किया।" + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "सेटिंग्स" + +msgid "IDS_IV_BODY_SIZE" +msgstr "आकार" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "अज्ञात" + +msgid "IDS_IV_SK_YES" +msgstr "हाँ" msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "क्लिपबोर्ड में कॉपी करें" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "फ़ोकल लंबाई" msgid "IDS_CAM_BODY_FLASH_ON" -msgstr "चमक चालू" +msgstr "फ्लैश चालू" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "चमक बंद" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "छवि व्यूअर" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "सफेद संतुलन" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "सभी चित्र" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "स्वतः" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "अभिविन्यास" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "टैग बनाएँ" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "तस्वीर चुनें" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "ह्वाइट बैलेंस" +msgid "IDS_MP_BODY_DURATION" +msgstr "कालावधि" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "संचित समय" +msgid "IDS_ST_POP_SET" +msgstr "सेट" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "टैग जोड़ें" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "टैग्‍स" -msgid "IDS_IV_POP_ADDED" -msgstr "जोड़ा गया" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "टिप्पणी जोड़ें" -msgid "IDS_IV_BODY_ANY" -msgstr "कोई" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "नज़दीकी डिवाइसों का उपयोग करके अपना मीडिया अन्य डिवाइसों पर देखें" -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "उपलब्ध उपयोग" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "वीडियो फ़ाइल्स में लोगों के बारे में जानकारी नहीं होती है क्योंकि वे चेहरा टैग फ़ंक्शन का समर्थन नहीं करती हैं" -msgid "IDS_IV_BODY_BASIC" -msgstr "बेसिक" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "यह छवि साझा करने में अक्षम। यह DRM सुरक्षित है।" -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "कॉलर छवि" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "फाईल खोलने में अक्षम।" -msgid "IDS_IV_BODY_COUNT" -msgstr "गणना" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "अपडेट अंतराल के कारण रिकॉर्ड की गई मौसम की जानकारी वास्तविक मौसम से भिन्न हो सकती है।" -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "दिनांक निर्मित" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "क्लिपबोर्ड में कॉपी की गई व्यक्तिगत सामग्री को नई सामग्री बनाने के लिए उपयोग किया जा सकता है। आपकी नई सामग्री स्वचालित रूप से नहीं छुपाई जा सकती।" -msgid "IDS_IV_BODY_DISPLAY" -msgstr "प्रदर्शन" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "छवि बहुत छोटी है।" -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "टैग नाम दर्ज करें" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "केवल अन्य टैग्स दृश्‍यमान होने पर ही तिथि जानकारी प्रदर्शित होती है।" -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "प्रविष्टि खाली है" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "सर्वश्रेष्ठ फोटो चुनने के लिए थंबनेल्‍स को टैप और होल्ड करें।" -msgid "IDS_IV_BODY_EXECUTE" -msgstr "निष्पादित करें" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "स्लाइडशो सेटिंग्स" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "फ़ाइल फॉर्मेट" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "होम स्क्रीन और लॉक स्‍क्रीन के लिए वॉलपेपर सेट करें" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "फ़ाइल स्थान" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "इस तस्वीर को %s की कॉलर ID के रूप में सेट करें?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "अग्रेषण" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "कॉलर ID के रूप में सेट करें" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "होम स्क्रीन वॉलपेपर" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "भेजा जा रहा है..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "असंभव" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "डिवाइस चुनें" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "अलग" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD कार्ड निकाला गया।" -msgid "IDS_IV_BODY_INTERVAL" -msgstr "अन्तराल" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "अनुमति से इनकार।" -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "अमान्य इमेज फ़ाइल" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "स्थान नहीं" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "अक्षांश" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "किसी चेहरे को टैग नहीं किया गया है৷ तस्वीर में चेहरों को टैग करें।" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "स्थान" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "कोई चेहरा पहचाना नहीं गया।" -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "लॉक स्क्रीन वॉलपेपर" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "पर्याप्त मेमोरी नहीं। कुछ मदें हटाएँ।" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "देशांतर" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "नेटवर्क कनेक्शन असफल।" msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "वर्णों की अधिकतम संख्या (%d) तक पहुँच गया" +msgstr "वर्णों की अधिकतम संख्या (%d) तक पहुँच गया।" -msgid "IDS_IV_BODY_N_A" -msgstr "लागू नहीं" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "अमान्य छवि फाइल।" -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "नया टैग" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "फ्लैश प्रयुक्त" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "अनुमति से इनकार" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "फाइल फॉर्मेट समर्थित नहीं।" -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "संभव" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "प्रविष्टि खाली है" -msgid "IDS_IV_BODY_PRINT" -msgstr "प्रिंट करें" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "टैग नाम प्रविष्ट करें" -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "ब्लूटूथ द्वारा प्रिंट करें" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "मौसम टैग्स देखने के लिए मौसम वॉलपेपर में स्वतः रीफ्रेश सक्षम करें" -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "रेज़ोल्यूशन" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "डाउनलोड पूर्ण" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "सही स्थिति" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "सर्वश्रेष्ठ फोटो" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD कार्ड निकाला गया" +msgid "IDS_IV_POP_ADDED" +msgstr "जोड़ा गया।" -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "डिवाइस चुनें" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "कैप्शन लिखें" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "सर्वर नाम" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "गति का उपयोग करें" -msgid "IDS_IV_OPT_SET_AS" -msgstr "के रूप में सेट करें" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "पसंदीदा नहीं" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "होम स्क्रीन और लॉक स्‍क्रीन के लिए वॉलपेपर सेट करें" +msgid "IDS_IV_OPT_TRIM" +msgstr "ट्रिम करें" -msgid "IDS_IV_OPT_SHARE" -msgstr "शेयर करें" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "चेहरा टैग करें" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "टैग मित्र" + +msgid "IDS_IV_OPT_TAG" +msgstr "टैग" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "स्लाइडशो प्रारंभ करें" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "स्लाइड शो" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "समय गणना" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "स्लाइडशो" -msgid "IDS_IV_OPT_TRIM" -msgstr "ट्रिम करें" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "मदें दिखाएँ" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "असीमित" +msgid "IDS_IV_OPT_SHARE" +msgstr "साझा करें" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "वैधता" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "दाएँ घुमाएँ" -msgid "IDS_IV_BODY_VENDOR" -msgstr "विक्रेता" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "बाएँ घुमाएँ" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "टैग निकालें" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "रीफ्रेश" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "ब्लूटूथ द्वारा प्रिंट करें" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "मैनुअल रूप से पता लगाएँ" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "होम और लॉक स्क्रीन वॉलपेपर" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "छिपी हुई मदें" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "दिशा प्राप्त करें" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "फाइल स्थानांतरण" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "दुबारा न दिखाएँ" +msgid "IDS_IV_OPT_ERASER" +msgstr "रबर" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "दो बिंदुओं पर टैप करें रखें फिर स्‍क्रीन छोटी या बड़ी करने के लिए पीछे और आगे डिवाइस टिल्ट करें" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "मौसम टैग संपादित करे" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "टैग संपादन" + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "कैप्शन संपादित करें" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "कैप्शन हटाएँ" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "क्लिपबोर्ड में कॉपी करें" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "कनेक्शन जानकारी" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "क्लाउड" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "मित्र फोटो साझा करना" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "बेस्ट चेहरा" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "वीडियो फाइलों के रूप में" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "छवि फाइलों के रूप में" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "एनिमेटेड फ़ोटो" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "मौसम टैग जोड़ें" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "नाम जोड़ें" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "कैप्‍शन जोड़ें" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "स्लाइडशो संगीत" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "ध्वनि व शॉट तस्वीर साझा करें" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "के रूप में सेट करें" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "इनको यह तस्वीर भेजें" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "साझा करने के लिए कोई संपर्क चुनें" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "चलाने की गति" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "लॉक स्क्रीन वॉलपेपर" msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "झुकाव के बारे में अधिक जानें" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "होम स्क्रीन वॉलपेपर" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "मौसम टैग संपादित करे" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "बर्स्ट शॉट संपादित करें" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "उपलब्‍ध डिवाइसेस" + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "सभी एलबम्‍स" -msgid "IDS_IV_OPT_TAG" -msgstr "टैग" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "टैग जोड़ें" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "होम और लॉक स्क्रीन वॉलपेपर" +msgid "IDS_IV_BUTTON_STOP" +msgstr "रोकें" -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "गति का उपयोग करें" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "स्‍कैन करें" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "होम और लॉक स्‍क्रीन" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "आप नियर बाइ डिवाइस का उपयोग कर अन्य डिवाइसों के साथ अपनी मीडिया साझा कर सकते हैं" -msgid "IDS_IV_BODY_CROP" -msgstr "क्रॉप" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "%s और %d अन्य के साथ" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "होम स्क्रीन" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "%s के साथ" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "स्क्रीन लॉक करें" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "व्हाइट बैलेंस" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "बाएँ घुमाएँ" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "मौसम" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "दाएँ घुमाएँ" +msgid "IDS_IV_BODY_WEATHER" +msgstr "मौसम" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "मैन्युअल रूप से पता लगाएँ" +msgid "IDS_IV_BODY_VENDOR" +msgstr "विक्रेता" -msgid "IDS_IV_BODY_ME" -msgstr "मेरे द्वारा" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "वैधता" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "टैग संपादन" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "असीमित" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "टैग निकालें" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "फोटो लोड करने में अक्षम।" -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "इसके द्वारा साझा करें" +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "समय गणना" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "न भेजें" +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "मित्र फ़ोटो साझा करना" +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "लोगों के बारे में जानकारी देखने के लिए चेहरों पर टैप करें" -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "चेहरा टैगिंग" +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "दो बिंदुओं पर टैप करें रखें फिर स्‍क्रीन छोटी या बड़ी करने के लिए पीछे और आगे डिवाइस झुकाएँ।" -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "छवि व्यूअर" +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "चमकीला दिन" -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "निकटवर्ती डिवाइसें" +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "बर्फीला दिन" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "चित्र में कांट-छाट करने के लिए एक क्षेत्र का चयन करें" +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "इसके द्वारा साझा करें" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "चयनित क्षेत्र को वॉलपेपर के लिए लागू किया जाएगा" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "सर्वर नाम" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "चित्र को क्रॉप करने के लिए एक क्षेत्र का चयन करें" msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" msgstr "चयनित क्षेत्र को प्रिंट किया जाएगा" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "आप आसपास डिवाइसों का उपयोग कर अन्य डिवाइसों के साथ अपनी मीडिया साझा कर सकते हैं" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "चयनित क्षेत्र को वॉलपेपर के लिए लागू किया जाएगा" msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" msgstr "चयनित क्षेत्र को संपर्क चित्र पर लागू किया जाएगा" +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "सही स्थिति" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "रिजॉल्यूशन" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "पसंदीदा से निकालें" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "बरसात वाला दिन" + +msgid "IDS_IV_BODY_PRINT" +msgstr "प्रिंट करें" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "संभव" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "लोग" + +msgid "IDS_IV_BODY_N_A" +msgstr "लागू नहीं" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "कोई टैग नहीं" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "नया टैग" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "निकटवर्ती डिवाइसें" + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "मेरा डिवाइस" + +msgid "IDS_IV_BODY_MODEL" +msgstr "मॉडल" + +msgid "IDS_IV_BODY_ME" +msgstr "मेरा" + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "निर्माता" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "देशांतर" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "लॉक स्क्रीन" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "स्थान" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "स्थान" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "स्थान" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "स्थान" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "अक्षांश" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "%s में" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "अन्तराल" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "व्यक्तिगत" + +msgid "IDS_IV_BODY_IN" +msgstr "अंदर" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "असंभव" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "होम स्क्रीन" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "होम और लॉक स्‍क्रीन" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "अग्रेषण" + +msgid "IDS_IV_BODY_FLASH" +msgstr "फ्लैश" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "फाइल का नाम" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "फाइल स्थान" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "फ़ाइल फॉर्मेट" + msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "एक्स्पोज़र समय" +msgstr "प्रदर्शन समय" + +msgid "IDS_IV_BODY_EXECUTE" +msgstr "निष्पादित करें" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "स्थान टैग्स को देखने के लिए कैमरे में GPS टैग्स सक्षम करें" + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "मौसम टैग्स देखने के लिए मौसम विजेट में स्वत: ताज़ा करना सक्षम करें" + +msgid "IDS_IV_BODY_DURATION" +msgstr "अवधि" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM जानकारी" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "दोबारा न दिखाएँ।" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "दोबारा न पूछें" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "प्रदर्शन" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "दिनांक निर्मित" + +msgid "IDS_IV_BODY_CROP" +msgstr "क्रॉप" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "टैग बनाएँ" + +msgid "IDS_IV_BODY_COUNT" +msgstr "गणना" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "बादलों भरा दिन" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "साफ रात" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "कॉलर छवि" + +msgid "IDS_IV_BODY_BASIC" +msgstr "मूल" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "उपलब्ध उपयोग" + +msgid "IDS_IV_BODY_AUTO" +msgstr "स्वतः" -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "एप्लीकेशंस पर मिलान रंग वाली विषयवस्तु लागू करें।" + +msgid "IDS_IV_BODY_APERTURE" msgstr "एपरचर" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "दिशानिर्देश" +msgid "IDS_IV_BODY_ANY" +msgstr "कोई" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "निर्माता" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "पसंदीदा में जोड़ें" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "फ़ोकल लंबाई" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "संचित समय" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "दिशानिर्देश" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "वर्णो की संख्‍या अधिकतम पहुँची।" -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "मॉडल" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "विफल" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "नाम जोड़ें" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "ड्रॉपबॉक्स" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "कॉलर ID के रूप में सेट करें" +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "संपादित करें" + +msgid "IDS_ST_BODY_DATE" +msgstr "तिथि" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "खातें" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "डाउनलोड करें" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "आपके द्वारा ड्रॉपबॉक्स पर तस्वीरें अपलोड करने के बाद, मदें दिखाई जाएगी।" + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "डाउनलोड हो रहा है..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "तस्वीरें जोड़ें" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "आपके द्वारा तस्वीरें आपके पसंदीदा के रूप में टैग करने के बाद, तस्वीरें दिखाई जाएँगी।" + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "चेहरा पहचान निकालें?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "नाम असाइन करें" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "%s के रूप में पुष्टि करें" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "लेआउट" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d तस्वीरें जोड़ी गई" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "एल्‍बम रद्द किया जाएगा।" + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "डाउनलोड प्रारंभ कर रहा है..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "पर्याप्त मेमोरी नहीं। कुछ मदें हटाएँ।" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "निजी स्टोरेज" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "यहाँ खींचें।" + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "छवियाँ जोड़ने के लिए टैप करें।" + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "फाइल पहले से मौजूद है।" + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "यह मद हटाया जाएगा।" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "आपके द्वारा फ़ेसबुक पर तस्वीरें अपलोड करने के बाद, मदें दिखाई जाएगी।" + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "अमान्य अक्षर।" + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "मैनुअल" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "कार्यवाही कर रहा है..." + +msgid "IDS_ST_BODY_OK" +msgstr "ओके" + +msgid "IDS_ST_SK_RENAME" +msgstr "नाम बदलें" + +msgid "IDS_COM_BODY_NONE" +msgstr "कुछ नहीं" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d चयनित" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "डिवाइस स्टोरेज" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD कार्ड" + +msgid "IDS_ST_BODY_SPEED" +msgstr "गति" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "बैकग्राउंड संगीत" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 से" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 से" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 से" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "संग्रहण स्‍थान" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "फाइल आकार" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 एल्बम हटाया जाएगा।" + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "नोस्टाल्जिया" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "धुंधला" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "हल्की चमक" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "परिवर्तन सुरक्षित करें" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "अपने बदलावों को सुरक्षित करें या निरस्त करें?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "निरस्त" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "सुरक्षित" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "विंटेज" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "सनशाइन" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "पुराना फोटो" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "रिट्रो" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "ग्रेस्केल" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "सेपिया" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "फीके रंग" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "डाउनलाइट" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "पीली चमक" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "स्पष्ट" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "स्केच" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "विपरीत रंग" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "ऑयल पेन्ट" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "पोस्टराइज" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "कार्टून" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "पॉप आर्ट" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "मैजिक पेन" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "अवरुद्ध सूची में जोड़ा गया।" + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "घुमाएँ" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "आपके डिवाइस स्टोरेज में पर्याप्त स्थान नहीं है। सेटिंग्स > पॉवर और संग्रहण > संग्रहण पर जाएँ, फिर कुछ फाइलें हटाएँ और फिर से प्रयास करें।" + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "स्लाइड अंतराल" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "स्लाइड अंतराल" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "संपर्क तस्वीर" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "कोई नहीं" + +msgid "IDS_IV_OPT_EDIT" +msgstr "संपादन" + +msgid "IDS_IV_OPT_RENAME" +msgstr "नाम बदलें" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "के रूप में सेट करें" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "डाउनलोड" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "नाम बदलें" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "नाम बदलें" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "नाम बदले" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "गंतव्य फोल्डर में इस नाम वाली फाइल पहले से मौजूद है।" + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "बदलें" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "इस रूप में सेट करें" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "होम स्क्रीन वालपेपर" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "लॉक स्क्रीन वॉलपेपर" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "होम और लॉक स्क्रीन वॉलपेपर्स" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "विवरण" + +msgid "IDS_IV_BODY_DATE" +msgstr "तिथि" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "छवि सुरक्षित करने में असमर्थ" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "आपकी डिवाइस स्टोरेज में पर्याप्त स्थान (%d MB) नहीं हैं।" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "आपके SD कार्ड में पर्याप्त स्थान (%d MB) नहीं है" + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "कुछ फाइलें हटाएँ और फिर प्रयास करें।" + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "छवि सुरक्षित करें" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "आपके डिवाइस स्टोरेज में पर्याप्त स्थान (%d MB बाकी) नहीं है। यह मद आपके SD कार्ड में सुरक्षित की जाएगी।" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "आपके SD कार्ड में पर्याप्त स्थान (%d MB बाकी) नहीं है। यह मद आपके डिवाइस स्टोरेज में सुरक्षित की जाएगी।" + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "यह छवि हटाई जाएगी" + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "रोकें" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "हटाएँ" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "त्रुटि" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "क्षेत्र चुनें" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "पूर्ण" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "यह मद लोड करने में विफल।" + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "नकारात्मक" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "पूर्ण" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "रद्द करें" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "नकारात्मक" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "गैलरी खोलने में असमर्थ।" + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "लोड हो रहा है..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "लोड हो रहा है..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "लोड करना विफल।" + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "छवि लोड हो रही है..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "निरस्त" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "डाउनलोड करने में अक्षम" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "मोबाइल डाटा बंद किया गया है। किसी Wi-Fi नेटवर्क से कनेक्ट करें या मोबाइल डाटा चालू करें और फिर से प्रयास करें।" + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "न भेजें" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 सेकंड" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d सेकंड" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "प्रभाव" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "प्रभाव" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "फ्लो" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "फीका" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "कोई चेहरा पहचाना नहीं गया" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "जूम अधिक" diff --git a/res/po/hr.po b/res/po/hr.po old mode 100755 new mode 100644 index c148e06..4255488 --- a/res/po/hr.po +++ b/res/po/hr.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Dodaj na početnu" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Privatno" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Auto" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Preimenuj" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Video će biti obrisan." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Već postoji naziv datoteke." + +msgid "IDS_ST_BODY_OFF" +msgstr "Isključeno" + +msgid "IDS_COM_BODY_DONE" +msgstr "OK" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Bljeskalica" +msgid "IDS_COM_SK_STOP" +msgstr "Zaustavi" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s je isključen u ovoj aplikaciji. Da biste tu funkciju uključili, idite na %2$s, odaberite tu funkciju, a zatim odaberite ovu aplikaciju." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "U redu" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "OK" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Prekid" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Unesite ime" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Nema imena" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Samo je jedan album." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Možete odabrati do %d stavki." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Detalji" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Obriši" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Obrisati?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Prekid" + +msgid "IDS_IV_POP_DELETED" +msgstr "Obrisano." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Favorit" + +msgid "IDS_IV_SK_SAVE" +msgstr "Spremi" + +msgid "IDS_IV_POP_SAVED" +msgstr "Spremljeno." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Postavke" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Veličina" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Nepoznato" + +msgid "IDS_IV_SK_YES" +msgstr "Da" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Kopiraj u međuspremnik" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Žarišna duljina" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Bljeskalica uključena" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Bez bljeskalice" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Preglednik slika" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Kor. bijele boje" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Sve fotografije" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Auto" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Orijentacija" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Nova oznaka" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Odaberite sliku" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Korekcija bijele boje" +msgid "IDS_MP_BODY_DURATION" +msgstr "Trajanje" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Ukupno vrijeme" +msgid "IDS_ST_POP_SET" +msgstr "Postavi" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Dodaj oznaku" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Oznake" -msgid "IDS_IV_POP_ADDED" -msgstr "Dodano" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Dodaj komentar" -msgid "IDS_IV_BODY_ANY" -msgstr "Bilo koji" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Pregledajte svoje medijske datoteke na drugim uređajima korištenjem uređaja u blizini." -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Preostalo upotreba" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Videozapisi ne sadrže informacije o ljudima jer ne podržavaju funkciju oznake lica." -msgid "IDS_IV_BODY_BASIC" -msgstr "Osnovno" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Nemoguće podijeliti sliku. Zaštićena je DRM-om." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Slika pozivatelja" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Nemoguće otvoriti datoteku." -msgid "IDS_IV_BODY_COUNT" -msgstr "Broj" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Snimljene vremenske informacije možda će odstupati od stvarnog vremena zbog intervala aktualiziranja." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Datum" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Osobni sadržaj kopiran na međuspremnik može se koristiti za kreiranje novog sadržaja. Vaš novi sadržaj možda neće automatski biti skriven." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Zaslon" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Slika je premala." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Unesite naziv oznake" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Informacije o vremenu prikazuju se samo kad su vidljive druge oznake." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Unos prazan" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Dodirnite i držite sličice da biste odabrali najbolje fotografije." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Pokreni" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Postavke prezentacije" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Format datoteke" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Postavite pozadinu za početni zaslon i zaslon zaključavanja." -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Lokacija datoteke" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Postaviti ovu sliku kao ID pozivatelja %s?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Prosljeđivanje" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Postavi za sliku pozivatelja" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Pozadina poč. zaslona" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Slanje..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Nemoguće" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Odaberite uređaj" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Individualno" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD kartica izvađena." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Interval" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Dozvola odbijena." -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Neispravna datoteka" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Nema lokacije" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Geo. širina" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Nije označeno nijedno lice. Označite lica na slici" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Lokacije" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Lica nisu prepoznata." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Pozadina za zaslon zaključavanja" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Nedovoljno memorije. Obrišite neke datoteke" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Geo. duljina" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Spajanje s mrežom neuspješno." msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Maksimalan broj znakova (%d)" +msgstr "Maksimalan broj znakova (%d)." -msgid "IDS_IV_BODY_N_A" -msgstr "nema" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Neispravna datoteka." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Nova oznaka" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Bljes. okinuta" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Dozvola odbijena" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Format datoteke nije podržan." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Moguće" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Unos prazan." -msgid "IDS_IV_BODY_PRINT" -msgstr "Ispis" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Unesite naziv oznake." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Ispis putem Bluetootha" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Omogućite automatsko osvježavanje u pozadini za vrijeme da biste vidjeli oznake vremena." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Rezolucija" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Skidanje dovršeno" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Prava" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Najbolja fotografija" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD kartica izvađena" +msgid "IDS_IV_POP_ADDED" +msgstr "Dodano." -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Odaberite uređaj" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Napiši naslov" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Ime poslužitelja" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Koristi pokrete" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Postavi za" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Poništi favorit" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Postavite pozadinu za početni zaslon i zaslon zaključavanja" +msgid "IDS_IV_OPT_TRIM" +msgstr "Skrati" -msgid "IDS_IV_OPT_SHARE" -msgstr "Dijeli" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Označi lice" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Označi prijatelja" + +msgid "IDS_IV_OPT_TAG" +msgstr "Oznaka" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Pokreni prezentaciju" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "Prezentacija" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Preostalo vrijeme" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Prezentacija" -msgid "IDS_IV_OPT_TRIM" -msgstr "Skrati" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Pokaži stavke" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Neograničeno" +msgid "IDS_IV_OPT_SHARE" +msgstr "Dijeli" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Valjanost" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Rotiraj udesno" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Dobavljač" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Rotiraj ulijevo" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Ukloni oznaku" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Aktualiziraj" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Ispis putem Bluetootha" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Ručno prepoznavanje" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Pozadina početnog i zaslona zaključavanja" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Skrivene stavke" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Preuzmite smjernice" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "Prijenos podataka" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Ne prikazuj više" +msgid "IDS_IV_OPT_ERASER" +msgstr "Gumica" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Dotaknite i zadržite na dvije točke, a zatim nagnite uređaj naprijed i natrag za povećavanje i smanjivanje zaslona" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Uredi oznaku vremena" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Uredi oznaku" + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Uredi naslov" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Obriši naslov" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Kopiraj u međuspremnik" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Informacije o vezi" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Oblak" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Dijeljenje foto. s prijateljem" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Najbolje lice" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Kao video datoteke" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Kao slikovne datoteke" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Animirana fotografija" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Dodaj oznaku vremena" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Dodaj ime" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Dodaj naslov" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Glazbena prezentacija" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Dijeli zvuk & slikaj" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Postavi za" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Pošalji sliku" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Odaberite kontakt za dijeljenje" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Brzina reprodukcije" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Pozadina za zaslon zaključavanja" msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Info o nagibu" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Pozadina poč. zaslona" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Uredi oznaku vremena" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Uredi uzastopno slik." + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Dostupni uređaji" + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "Svi albumi" -msgid "IDS_IV_OPT_TAG" -msgstr "Oznaka" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Dodaj oznaku" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Pozadina početnog i zaslona zaključavanja" +msgid "IDS_IV_BUTTON_STOP" +msgstr "Zaustavi" -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Koristi pokrete" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Skeniraj" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Početni i zaslon zaključavanja" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Možete dijeliti multimediju s drugim uređajima korištenjem uređaja u blizini." -msgid "IDS_IV_BODY_CROP" -msgstr "Izreži" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "S %s i %d ostalima" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Početni zaslon" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Sa %s" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Zaslon zaključavanja" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Kor. bijele boje" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Rotiraj ulijevo" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Vrijeme" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Rotiraj udesno" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Prognoza" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Ručno prepoznavanje" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Dobavljač" -msgid "IDS_IV_BODY_ME" -msgstr "Ja" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Valjanost" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Uredi oznaku" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Neograničeno" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Ukloni oznaku" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Nemoguće učitati fotografiju." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Preostalo vrijeme" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Dodirnite lica da biste vidjeli informacije o osobama." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Dotaknite i zadržite na dvije točke, a zatim nagnite uređaj naprijed i natrag za povećavanje i smanjivanje zaslona." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Sunčan dan" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Snježan dan" msgid "IDS_IV_BODY_SHARE_VIA" msgstr "Dijeljenje preko" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Ne šalji" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Ime poslužitelja" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Dijeljenje foto. s prijateljem" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Odaberite područje da biste izrezali sliku." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Označavanje lica" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Odabrano područje će se ispisati." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Preglednik slika" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Odabrano područje primijenit će se na pozadinu." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Odabrano područje primijenit će se na sliku kontakta." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Prava" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Rezolucija" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Ukloni iz favorita" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Kišan dan" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Ispis" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Moguće" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Ljudi" + +msgid "IDS_IV_BODY_N_A" +msgstr "nema" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Nema oznaka" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Nova oznaka" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" msgstr "Uređaji u blizini" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Odaberite područje da biste izrezali sliku" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Moj uređaj" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Odabrano područje primijenit će se na pozadinu" +msgid "IDS_IV_BODY_MODEL" +msgstr "Model" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Odabrano područje će se ispisati" +msgid "IDS_IV_BODY_ME" +msgstr "Ja" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Možete dijeliti multimediju s drugim uređajima korištenjem uređaja u blizini" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Proizvođač" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Odabrano područje primijenit će se na sliku kontakta" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Geo. duljina" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Zaslon zaključavanja" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Lokacija" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Lokacija" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Lokacije" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Lokacija" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Geo. širina" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "U %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Interval" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Individualno" + +msgid "IDS_IV_BODY_IN" +msgstr "U" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Nemoguće" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Početni zaslon" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Početni i zaslon zaključavanja" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Prosljeđivanje" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Flash" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Naziv datoteke" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Lokacija datoteke" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Format datoteke" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "Traj. ekspoz." -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Pokreni" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Uključite GPS oznake u Kameri da biste vidjeli lokacijske oznake." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Omogućite automatsko osvježavanje u widgetu za vrijeme da biste vidjeli oznake vremena." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Trajanje" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "Detalji zaštite" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Ne prikazuj više" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Ne pitaj više" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Zaslon" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Datum" + +msgid "IDS_IV_BODY_CROP" +msgstr "Izreži" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Nova oznaka" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Broj" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Oblačan dan" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Jasna noć" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Slika pozivatelja" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Osnovno" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Preostalo upotreba" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Auto" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Primijenite temu s bojama koje se podudaraju na aplikacije." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Leća" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Orijentacija" +msgid "IDS_IV_BODY_ANY" +msgstr "Bilo koji" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Proizvođač" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Spremi u Favorite" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Žarišna duljina" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Ukupno vrijeme" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Orijentacija" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Maks. broj znakova." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Model" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Greška" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Ime" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Postavi za sliku pozivatelja" +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Uredi" + +msgid "IDS_ST_BODY_DATE" +msgstr "Datum" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Računi" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Skidanje" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Nakon što pošaljete slike u Dropbox, stavke će se prikazati." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Skidanje..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Dodaj slike" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Nakon što označite slike kao omiljene, slike će se prikazati." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Ukloniti prepoznavanje lica?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Dodijeli ime" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Potvrdi kao %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Izgled" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "Dodano %d slika" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Kreiranje albuma će se prekinuti." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Pokretanje skidanja..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Nedovoljno memorije. Obrišite neke datoteke" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Privatna memorija" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Dovucite ovdje." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Dotaknite za dodavanje slika." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Datoteka postoji." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Ova će stavka biti obrisana." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Nakon što pošaljete slike na Facebook, stavke će se prikazati." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Neispravan znak." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Ručno" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Obrađuje se..." + +msgid "IDS_ST_BODY_OK" +msgstr "U redu" + +msgid "IDS_ST_SK_RENAME" +msgstr "Preimenuj" + +msgid "IDS_COM_BODY_NONE" +msgstr "Ništa" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d odabrano" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Memorija uređaja" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD kartica" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Brzina" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Pozadinska glazba" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 sek" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 sek" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 sek" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Mjesto spremanja" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Veličina datoteke" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album bit će obrisan." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgija" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Zamagljivanje" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Nježni sjaj" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Spremanje promjena" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Spremiti promjene ili ih odbaciti?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Odbaci" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Spremi" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Starinski" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Sunce" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Stara fotografija" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Sivi tonovi" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sepia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Blijede boje" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Svjetlo odozgo" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Žuti sjaj" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Izoštravanje" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Skica" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Obrnute boje" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Uljne boje" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Posterizacija" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Strip" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Pop art" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Čarobna olovka" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Dodano na popis za blokiranje." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Rotiraj" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Nema dovoljno prostora u memoriji uređaja. Idite na Postavke > Baterija i memorija > Memorija, zatim izbrišite neke datoteke i pokušajte ponovno." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Interval slajdova" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Interval slajdova" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Slika kontakta" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Nema" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Uredi" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Promjeni ime" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Postavi kao" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Preuzmi" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Preimenuj" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Preimenuj" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Preimen." + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Datoteka s ovim nazivom već postoji u odredišnoj mapi." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Zamijeni" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Postavljanje za" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Pozadina početnog zaslona" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Pozadina zaslona za zaključav." + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Pozadine poč. i zasl. zaključ." + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Detalji" + +msgid "IDS_IV_BODY_DATE" +msgstr "Datum" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Nemoguće spremiti sliku" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Nema dovoljno prostora (%d MB) u memoriji uređaja." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Nema dovoljno prostora (%d MB) na SD kartici." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Izbrišite neke datoteke i pokušajte ponovno." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Spremi sliku" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Nema dovoljno prostora (preostalo %d MB) u memoriji uređaja. Ova će se stavka spremiti na SD karticu." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Nema dovoljno prostora (preostalo %d MB) na SD kartici. Ova će se stavka spremiti u memoriju uređaja." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Slika će biti obrisana." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Zaustavi" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Obriši" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Greška" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Odabir područja" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "OK" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Neuspješno učitavanje stavke." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negativ" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "GOTOVO" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ODUSTANI" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negativ" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Nemoguće otvoriti Galeriju." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Učitavanje..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Učitavanje..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Učitavanje neuspješno." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Učitavanje slike..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Odbaci" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Nemoguće skinuti" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobilni su podaci isključeni. Spojite se na Wi-Fi mrežu ili uključite Mobilne podatke i pokušajte ponovno." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Ne šalji" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 sek" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d sekundi" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Efekt" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Efekti" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Protok" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Zatamni" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Lice nije prepoznato" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Povećaj" diff --git a/res/po/hu.po b/res/po/hu.po old mode 100755 new mode 100644 index 821e571..3ba8f9b --- a/res/po/hu.po +++ b/res/po/hu.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Kezdőképernyőhöz ad" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Privát" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Auto." +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Átnevez" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Törölni fogja ezt a videót." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Ilyen fájlnév már van." + +msgid "IDS_ST_BODY_OFF" +msgstr "Ki" + +msgid "IDS_COM_BODY_DONE" +msgstr "Kész" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Mobilfény" -msgid "IDS_CAM_BODY_ISO" -msgstr "ISO" +msgid "IDS_COM_SK_STOP" +msgstr "Leállít" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Másolás a vágólapra" +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "A(z) %1$s le van tiltva ebben az alkalmazásban. A funkció engedélyezéséhez a(z) %2$s megnyitása után válassza ki a funkciót, majd ezt az alkalmazást." -msgid "IDS_CAM_BODY_FLASH_ON" -msgstr "Mobilfény be" +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Mobilfény ki" +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Kész" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Fehéregyensúly" +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Mégse" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Automata" +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Írja be a nevet" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Létrehozás" +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Nincs név" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Fehéregyensúly" +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Csak egy album van." -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Összesített idő" +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Legfeljebb %d tételt jelölhet ki." -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Új címke" +msgid "IDS_IV_OPT_DETAILS" +msgstr "Részletek" -msgid "IDS_IV_POP_ADDED" -msgstr "Hozzáadva" +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Töröl" -msgid "IDS_IV_BODY_ANY" -msgstr "Bármely" +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Törli?" -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Lehetséges felhasználás" +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Mégse" -msgid "IDS_IV_BODY_BASIC" -msgstr "Alapvető" +msgid "IDS_IV_POP_DELETED" +msgstr "Törölve." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Hívó képe" +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Kedvenc" -msgid "IDS_IV_BODY_COUNT" -msgstr "Számláló" +msgid "IDS_IV_SK_SAVE" +msgstr "Ment" -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Létrehozás dátuma" +msgid "IDS_IV_POP_SAVED" +msgstr "Mentve." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Kijelző" +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Beállítások" -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Adja meg a címke nevét" +msgid "IDS_IV_BODY_SIZE" +msgstr "Méret" -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "A bejegyzés üres" +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Ismeretlen" -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Végrehajt" +msgid "IDS_IV_SK_YES" +msgstr "Igen" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Fájlformátum" +msgid "IDS_CAM_BODY_ISO" +msgstr "ISO" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Fájl helye" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Fókusztávolság" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Továbbítás" +msgid "IDS_CAM_BODY_FLASH_ON" +msgstr "Mobilfény be" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Kezdőképernyő háttere" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Képmegjelenítő" -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Nem lehetséges" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Összes kép" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Egyéni" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Tájolás" -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Intervallum" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Válasszon képet" -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Érvénytelen képfájl" +msgid "IDS_MP_BODY_DURATION" +msgstr "Időtartam" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Szélesség" +msgid "IDS_ST_POP_SET" +msgstr "Beállít" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Helyek" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Címkék" -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Zárolt képernyő háttere" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Megj. h.adása" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Hosszúság" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "A Közeli eszközök funkcióval médiát tekinthet meg más eszközökön." -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Elérte a karakterek maximális számát (%d)" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "A videofájlok nem tartalmaznak adatokat a személyekről, mert nem támogatják az arccímke funkciót." -msgid "IDS_IV_BODY_N_A" -msgstr "nincs adat" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Nem lehet megosztani a képet. A kép DRM-védett." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Új címke" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "A fájl nem nyitható meg." -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Engedély megtagadva" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "A regisztrált időjárási adatok a frissítési időköz miatt eltérhetnek a tényleges időjárástól." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Lehetséges" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "A vágólapra másolt személyes tartalom felhasználható új tartalom létrehozására. Az új tartalom nem rejthető el automatikusan." -msgid "IDS_IV_BODY_PRINT" -msgstr "Nyomtatás" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "A kép túl kicsi." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Nyomtatás Bluetooth-on" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "A dátumadatok csak akkor jelennek meg, ha egyéb címkék is láthatók." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Felbontás" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "A legjobb fényképek kiválasztásához tartsa ujját a miniatűrökön." -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Jogi státusz" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Diabemutató beállításai" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD-kártya eltávolítva" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "A kezdőképernyő és a zárolt képernyő hátterének beállítása" + +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Beállítja a képet %s hívóazonosítójaként?" + +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Beállít, mint hívóazonosító" + +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Küldés..." msgid "IDS_IV_POP_SELECT_DEVICE" msgstr "Válasszon eszközt" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Szerver neve" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD-kártya eltávolítva." -msgid "IDS_IV_OPT_SET_AS" -msgstr "Beállít, mint" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Engedély megtagadva." -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "A kezdőképernyő és a zárolt képernyő hátterének beállítása" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Nincs hely" -msgid "IDS_IV_OPT_SHARE" -msgstr "Megosztás" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Nincs címkézett arc. Címkézze az arcokat a képen" -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "Diavetítés" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Nincs észlelt arc." -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Időszámláló" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Kevés a memória. Töröljön néhány tételt" -msgid "IDS_IV_OPT_TRIM" -msgstr "Vágás" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Nem sikerült csatlakozni a hálózathoz." -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Korlátlan" +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Elérte a karakterek maximális számát (%d)." -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Érvényesség" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Érvénytelen képfájl" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Szállító" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Vakus felvétel" -msgid "IDS_IV_OPT_FILE_TRANSFER" -msgstr "Fájlátvitel" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Nem támogatott fájlformátum." -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Ne jelenjen meg ismét" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "A bejegyzés üres." -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Tartsa két ujját a képernyőn, majd döntse az eszközt előre vagy hátra a képernyő nagyításához vagy kicsinyítéséhez" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Adja meg a címke nevét." -msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" -msgstr "Döntés – infó" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Időjáráscímkék megjelenítéséhez engedélyezze az automatikus frissítést az időjárási háttérképen." -msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "Összes album" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "A letöltés befejeződött" -msgid "IDS_IV_OPT_TAG" -msgstr "Címke" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Legjobb fénykép" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Kezdő- és zárolt képernyő háttere" +msgid "IDS_IV_POP_ADDED" +msgstr "Hozzáadva." + +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Felirat írása" msgid "IDS_IV_OPT_USE_MOTION" msgstr "Hangulatjelek használata" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Kezdő- és zárolt képernyő" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Nem kedvelt" -msgid "IDS_IV_BODY_CROP" -msgstr "Körbevág" +msgid "IDS_IV_OPT_TRIM" +msgstr "Vágás" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Kezdőképernyő" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Arccímkézés" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Képernyő lezárása" +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Környezetfüggő cím" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Forgatás balra" +msgid "IDS_IV_OPT_TAG" +msgstr "Címke" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Diabemutató indítása" + +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "Diavetítés" + +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Diabemutató" + +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Tételek megjelenítése" + +msgid "IDS_IV_OPT_SHARE" +msgstr "Megosztás" msgid "IDS_IV_OPT_ROTATE_RIGHT" msgstr "Forgatás jobbra" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Forgatás balra" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Címke eltávolítása" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Frissítés" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Nyomtatás Bluetooth-on" + msgid "IDS_IV_OPT_MANUALLY_DETECT" msgstr "Kézi észlelés" -msgid "IDS_IV_BODY_ME" -msgstr "Én" +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Kezdő- és zárolt képernyő háttere" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Elrejtett tételek" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Útmutatás lekérése" + +msgid "IDS_IV_OPT_FILE_TRANSFER" +msgstr "Fájlátvitel" + +msgid "IDS_IV_OPT_ERASER" +msgstr "Radír" + +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Időjáráscímke szerk." msgid "IDS_IV_OPT_EDIT_TAG" msgstr "Címkeszerk." -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Címke eltávolítása" +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Felirat szerkesztése" -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "Megosztás" +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Felirat törlése" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Ne küldje el" +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Másolás a vágólapra" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Kapcsolatadatok" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Felhő" msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" msgstr "Fénykép megosztása baráttal" -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Arccímkézés" +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Legjobb arc" -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Képmegjelenítő" +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Videofájlként" -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "Közeli eszközök" +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Képfájlként" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Jelöljön ki egy területet a kép körülvágásához" +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Animált fénykép" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "A kijelölt terület lesz a háttérkép" +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Időjáráscímke hozzáadása" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Kinyomtatja a kijelölt területet" +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Név hozzáadása" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Felirat hozzáadása" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Diabemutató-zene" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Hangos képek megosztása" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Beállít, mint" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Képküldés célhelye" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Válasszon névjegyet a megosztáshoz" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Lejátszás sebessége" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Zárolt képernyő háttere" + +msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" +msgstr "Döntés – infó" + +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Kezdőképernyő háttere" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Időjáráscímke szerk." + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Sorozatfelvétel szerk." + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Elérhető eszközök" + +msgid "IDS_IV_HEADER_ALL_ALBUMS" +msgstr "Összes album" + +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Új címke" + +msgid "IDS_IV_BUTTON_STOP" +msgstr "Leállít" + +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Keresés" msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "A Közeli eszközök funkcióval médiát oszthat meg más eszközökkel" +msgstr "A Közeli eszközök funkcióval médiát oszthat meg más eszközökkel." -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "A kijelölt terület lesz a partner képe" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "%s és %d további személy a képen" -msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "Expozíciós idő" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Szerepel rajta %s" -msgid "IDS_CAM_BODY_APERTURE" -msgstr "Rekesz" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Fehéregyensúly" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Tájolás" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Időjárás" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Gyártó" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Időjárás" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Fókusztávolság" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Szállító" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Tájolás" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Érvényesség" -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Típus" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Korlátlan" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Név hozzáadása" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Nem lehet betölteni a fényképet." -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Beállít, mint hívóazonosító" +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Időszámláló" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Az arcok címkézésével adatokat jeleníthet meg az emberekről." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Tartsa két ujját a képernyőn, majd döntse az eszközt előre vagy hátra a képernyő nagyításához vagy kicsinyítéséhez." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Derűs nap" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Havas nap" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Megosztás" + +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Szerver neve" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Jelöljön ki egy területet a kép körülvágásához." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Kinyomtatja a kijelölt területet." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "A kijelölt terület lesz a háttérkép." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "A kijelölt terület lesz a partner képe." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Jogi státusz" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Felbontás" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Törlés a kedvencek közül" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Esős nap" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Nyomtatás" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Lehetséges" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Ember" + +msgid "IDS_IV_BODY_N_A" +msgstr "nincs adat" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Nincs címke" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Új címke" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "Közeli eszközök" + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Saját eszköz" + +msgid "IDS_IV_BODY_MODEL" +msgstr "Típus" + +msgid "IDS_IV_BODY_ME" +msgstr "Én" + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Gyártó" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Hosszúság" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Képernyő lezárása" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Hely" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Helyadat" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Helyek" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Hely" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Szélesség" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "Itt: %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Intervallum" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Egyéni" + +msgid "IDS_IV_BODY_IN" +msgstr "Nagyítás" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Nem lehetséges" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Kezdőképernyő" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Kezdő- és zárolt képernyő" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Továbbítás" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Animált menü" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Fájlnév" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Fájl helye" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Fájlformátum" + +msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" +msgstr "Expozíciós idő" + +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Végrehajt" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "A helycímkék megjelenítéséhez engedélyezze a GPS-címkéket a Fényképező alkalmazásban." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Időjáráscímkék megjelenítéséhez engedélyezze az automatikus frissítést az időjárási widgetben." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Időtartam" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM-adatok" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Ne jelenjen meg ismét" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Máskor ne legyen kérdés" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Kijelző" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Létrehozás dátuma" + +msgid "IDS_IV_BODY_CROP" +msgstr "Körbevág" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Létrehozás" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Számláló" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Felhős nap" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Derült éjszaka" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Hívó képe" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Alapvető" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Lehetséges felhasználás" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Auto." + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Alkalmazzon egyező színsémát az alkalmazásokra." + +msgid "IDS_IV_BODY_APERTURE" +msgstr "Rekesz" + +msgid "IDS_IV_BODY_ANY" +msgstr "Bármely" + +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Hozzáad a kedvencekhez" + +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Összesített idő" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Nincs hely több karakternek." + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Hiba" + +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" + +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Szerkeszt" + +msgid "IDS_ST_BODY_DATE" +msgstr "Dátum" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Fiókok" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Letöltés" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Ha majd feltölt képeket a Dropboxra, megjelennek a tételek." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Letöltés..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Képek hozzáadása" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Ha majd felcímkéz képeket kedvencként, azok megjelennek itt." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Eltávolítja az arcazonosítást?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Név hozzárendelése" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "%s megerősítése" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Elrendezés" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d kép hozzáadva" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Elveti az albumot." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Letöltés indítása..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Kevés a memória. Töröljön néhány tételt" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Privát tárhely" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Húzza ide." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Érintse meg képek hozzáadásához." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "A fájl már létezik." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Törli ezt a tételt?" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Ha majd feltölt képeket a Facebookra, megjelennek a tételek." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Érvénytelen karakter" + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Kézi" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Feldolgozás..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Átnevez" + +msgid "IDS_COM_BODY_NONE" +msgstr "Nincs" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d kijelölve" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Eszköz tárhelye" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD-kártya" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Sebesség" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Háttérzene" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 mp" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 mp" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 mp" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Mentési hely" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Fájlméret" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "Törölni fog 1 albumot." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nosztalgia" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Elmosás" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Lágy ragyogás" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Változtatások mentése" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Menti a változtatásokat, vagy elveti őket?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Elvetés" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Mentés" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Régies" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Napsütés" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Régi fénykép" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retró" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Szürkeárnyalatos" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Szépia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Halvány színek" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Felső megvilágítás" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Sárga izzás" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Élesítés" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Skicc" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Inverz színek" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Olajfestmény" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Poszter" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Rajzfilm" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Pop-art" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Varázstoll" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Felvéve a tilalmi listára." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Elforgatás" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Nincs elég hely az eszköz tárhelyén. Válassza a Beállítások > Energia és tárhely > Tárhely pontot, töröljön fájlokat, majd próbálja újra." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Diák időköze" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Diák időköze" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Partner képe" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Nincs" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Szerkesztés" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Átnevezés" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Beállít, mint" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Letöltés" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Átnevezés" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Átnevezés" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Átnev." + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Már van ilyen nevű fájl a célmappában." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Csere" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Beállítás használatra" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Kezdőképernyő háttere" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Zárolt képernyő háttere" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Zárolt és kezdőképernyő hátt." + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Részletek" + +msgid "IDS_IV_BODY_DATE" +msgstr "Dátum" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Nem lehet menteni a képet" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Nincs elég hely (%d MB) az eszköz tárhelyén." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Nincs elég hely (%d MB) az SD-kártyát." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Töröljön fájlokat, és próbálja újra." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Kép mentése" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Nincs elég hely az eszköz tárhelyén (%d MB maradt). Az eszköz az SD-kártyára menti az elemet." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Nincs elég hely az SD-kártyán (%d MB maradt). Az eszköz a tárhelyére menti az elemet." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Törli ezt a képet?" + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Leállítás" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Törlés" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Hiba" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Terület kijelölése" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Kész" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Nem sikerült betölteni az elemet." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negatív" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "KÉSZ" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "MÉGSE" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negatív" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Nem lehet megnyitni a Galériát." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Betöltés..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Betöltés..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "A betöltés sikertelen." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Kép betöltése..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Elvetés" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Nem lehet letölteni" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "A mobil internetkapcsolat ki van kapcsolva. Kapcsolódjon Wi-Fi hálózathoz, vagy kapcsolja be a mobil internetkapcsolatot, és próbálja újra." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Ne küldje el" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 másodperc" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d másodperc" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Effektus" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Effektek" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Beúszás" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Halványítás" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Nincs észlelt arc" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Nagyítás" diff --git a/res/po/hy.po b/res/po/hy.po old mode 100755 new mode 100644 index 010f5ef..53059e3 --- a/res/po/hy.po +++ b/res/po/hy.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Ավելացնել տանը" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Գաղտնի" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Ավտոմատ" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Վերանվանել" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Այս տեսանյութը կվերացվի:" + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Ֆայլի անունն արդեն գործածվում է" + +msgid "IDS_ST_BODY_OFF" +msgstr "Անջատված է" + +msgid "IDS_COM_BODY_DONE" +msgstr "Կատարված է" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Բռնկում" +msgid "IDS_COM_SK_STOP" +msgstr "Կանգնել" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s-ը կասեցված է այս ծրագրում: Այս գործառույթն ընձեռելու համար գնացեք %2$s, ընտրեք այս գործառույթը, այնուհետև ընտրեք այս ծրագիրը" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Արված է" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Դադարեցնել" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Մուտքագրեք անունը" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Անուն չկա" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Միայն մեկ ալբոմ կա:" + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Կարող եք ընտրել մինչև %d տարր:" + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Մանրամասներ" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Ջնջել" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Ջնջե՞լ" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Չեղարկել" + +msgid "IDS_IV_POP_DELETED" +msgstr "Ջնջված է:" + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Սիրված" + +msgid "IDS_IV_SK_SAVE" +msgstr "Պահել" + +msgid "IDS_IV_POP_SAVED" +msgstr "Պահպանվեց:" + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Պարամետրեր" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Չափս" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Անհայտ" + +msgid "IDS_IV_SK_YES" +msgstr "Այո" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Պատճենել փոխանակման բունկերի մեջ" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Կիզակետային տարածություն" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Լուսարձակը միացված" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Բռնկումն անյատված է" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Պատկերների դիտարկիչ" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Սպիտակի հաշվեկշիռ" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Բոլոր նկարները" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Ավտոմատ" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Կողմնորոշում" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Ստեղծ պիտկ" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Ընտրեք նկար" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Սպիտակի հաշվեկշիռ" +msgid "IDS_MP_BODY_DURATION" +msgstr "Տևողություն" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Կուտակված ժամանակը" +msgid "IDS_ST_POP_SET" +msgstr "Գործադրել" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Հվլլ պիտակ" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Հայտանիշեր" -msgid "IDS_IV_POP_ADDED" -msgstr "Ավելացված է" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Ավլցնլ մկնբնթյն" -msgid "IDS_IV_BODY_ANY" -msgstr "Ցանկացած" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Ձեր մեդիա ֆայլերը դիտեք այլ սարքերի վրա՝ օգտվելով մոտակա սարքերից:" -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Հասանելի օգտվողներ" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Տեսաֆայլերը տեղեկություններ չեն պարունակում մարդկանց մասին, քանի որ դրանք չեն ապահովում դեմքի հատկորոշիչի գործառույթը:" -msgid "IDS_IV_BODY_BASIC" -msgstr "Հիմնական" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Անհնար է համօգտագործել այս պատկերը: Այն պաշտպանված է DRM-ով:" -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Զանգահարողի պատկեր" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Հնարավոր չէ բացել ֆայլը:" -msgid "IDS_IV_BODY_COUNT" -msgstr "Քանակ" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Հնարավոր է՝ գրանցված եղանակի մասին տեղեկատվությունը տարբերվի փաստացի եղանակից թարմացման ժամանակամիջոցի պատճառով:" -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Ստեղծման ամսաթիվը" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Գզրոցի մեջ պատճենված անձնական բովանդակությունը կարող է օգտագործվել նոր բովանդակություն ստեղծելու նպատակով: Հնարավոր է, որ Ձեր նոր բովանդակությունն ինքնաբերաբար չթաքցվի:" -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Էկրան" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Պատկերը շատ փոքր է:" -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Մուտքագրել հատկորոշիչի անուն" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Թվականի տվյալները ցուցադրվում են, միայն երբ տեսանելի են մյուս հատկորոշիչները:" -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Գրառումը դատարկ է" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Թակեք և պահեք մանրապատկերները՝ լավագույն լուսանկարներն ընտրելու համար:" -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Կատարել" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Սահկահանդեսի ընտրանքները" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Նիշքի ձեւաչափը" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Դնել պաստառ հիմնական էկրանի և կողպված էկրանի համար" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Ֆայլի տեղը" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Այս նկարը դնե՞լ որպես %sի զանգահարողի ID:" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Փոխանցում" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Սահմանել որպես զանգահարողի ID" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Հիմն. էկրանի պաստառ" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Ուղարկում..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Անհնար է" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Ընտրեք սարք" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Անհատ" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD քարտը հեռացված է:" -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Դադար" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Թույլտվությունը մերժվեց:" -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Անվավեր պատկերի ֆայլ" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Տեղ չկա" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Լայնք" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Դեմքեր չեն հատկորոշվել: Հատկորոշեք նկարի դեմքերը" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Տեղեր" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Դեմքեր չեն հայտնաբերվել:" -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Կողպված էկրանի պաստառ" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Հիշողությունը չի բավարարում: Ջնջեք որոշ տարրեր" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Երկայնք" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Ցանցի միացումը ձախողվեց:" msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Հասել է նիշերի առավելագույն քանակին (%d)" +msgstr "Հասել է նիշերի առավելագույն քանակին (%d):" -msgid "IDS_IV_BODY_N_A" -msgstr "Կիրառելի չէ" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Անվավեր պատկերի ֆայլ:" -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Նոր տեգ" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Լսբռնկչ է օգտ." -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Թույլտվությունը մերժվեց" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Ֆայլի ձևաչափն ապահովված չէ:" -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Հնարավոր" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Գրառումը դատարկ է:" -msgid "IDS_IV_BODY_PRINT" -msgstr "Տպել" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Մուտքագրել հատկորոշիչի անուն:" -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Տպել Bluetooth-ի միջոցով" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Ընձեռեք ինքնանորացում եղանակի պաստառում՝ եղանակի հատկորոշիչներ տեսնելու համար:" -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Լուծաչափ" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Ներբեռնումն ավարտվեց" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Իրավունքի կարգավիճակ" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Լավագույն լուսանկարը" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD քարտը հեռացված է" +msgid "IDS_IV_POP_ADDED" +msgstr "Ավելացված է:" -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Ընտրեք սարք" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Գրել մակագիր" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Սերվերի անունը" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Օգտագործել շարժում" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Նշանակել որպես" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Չսիրված" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Դնել պաստառ հիմնական էկրանի և կողպված էկրանի համար" +msgid "IDS_IV_OPT_TRIM" +msgstr "Խուզել" -msgid "IDS_IV_OPT_SHARE" -msgstr "Համատեղ օգտագործում" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Հատկորոշել դեմքը" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Հատկորոշել մտերիմին" + +msgid "IDS_IV_OPT_TAG" +msgstr "Հայտանիշ" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Սկսել սլայդերի ցուցադրում" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "Սլայդ շոու" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Հաշվարկված հաշիվ" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Սլայդերի ցուցադրում" -msgid "IDS_IV_OPT_TRIM" -msgstr "Խուզել" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Ցույց տալ տարրերը" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Անսահմանափակ" +msgid "IDS_IV_OPT_SHARE" +msgstr "Համատեղ օգտագործում" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Վավերականություն" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Պտտել աջ" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Մատակարար" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Պտտել ձախ" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Հեռացնել հատկորոշիչ" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Թարմացնել" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Տպել Bluetooth-ի միջոցով" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Ձեռքով հայտնաբերել" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Հիմնական և կողպված էկրանի պաստառ" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Թաքցված տարրեր" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Ստացեք ուղղություններ" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "Ֆայլի փոխանցում" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Չցուցադրել կրկին" +msgid "IDS_IV_OPT_ERASER" +msgstr "Ջնջիչ" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Թակեք և պահեք երկու կետում, հետո սարքը թեքեք հետ ու առաջ՝ էկրանը փոքրացնելու կամ մեծացնելու համար" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Խմբգրլ եղնկի հտկորշչ" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Խմբգր պիտկ" + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Խմբագրել մակագիրը" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Վերացնել մակագիր" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Պատճենել փոխանակման բունկերի մեջ" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Միացման տվյալներ" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Մտերիմի լուսանկարի համօգտագործում" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Լավագույն դեմքը" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Որպես տեսանիշքեր" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Որպես պատկերային նիշքեր" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Կենդանի լուսանկար" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Ավլցնլ եղանակի հատկորոշիչ" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Ավելացնել անուն" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Ավելացնել մակագիր" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Սլայդերի ցուցադրման երաժշտություն" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Կիսեք ձայն և նկար" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Նշանակել որպես" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Ուղարկել այս նկարը" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Ընտրել կոնտակտ՝ համօգտագործելու համար" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Նվագարկման արագություն" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Կողպված էկրանի պաստառ" msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Տեղեկացեք թեքման մասին" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Հիմն. էկրանի պաստառ" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Խմբգրլ եղնկի հտկորշչ" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Խմբագրել նկարաշարքը" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Մատչելի սարքեր" + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "Բոլոր ալբոմները" -msgid "IDS_IV_OPT_TAG" -msgstr "Հայտանիշ" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Հվլլ պիտակ" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Հիմնական և կողպված էկրանի պաստառ" +msgid "IDS_IV_BUTTON_STOP" +msgstr "Կնգնլ" -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Օգտագործել շարժում" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Զննել" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Հիմնական և կողպված էկրաններ" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Ձեր մեդիա ֆայլերը կարող եք համօգտագործել այլ սարքերի հետ՝ օգտվելով մոտակա սարքերից:" -msgid "IDS_IV_BODY_CROP" -msgstr "Խուզել" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "%sի և %d ուրիշների հետ" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Աշխատասեղան" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "%sի հետ" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Կողպել էկրանը" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Սպիտակի հաշվեկշիռ" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Պտտել ձախ" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Եղանակ" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Պտտել աջ" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Եղանակ" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Ձեռքով հայտնաբերել" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Մատակարար" -msgid "IDS_IV_BODY_ME" -msgstr "Իմ կողմից" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Վավերականություն" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Խմբգր պիտկ" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Անսահմանափակ" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Հեռացնել հատկորոշիչ" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Անհնար է բեռնել լուսանկարը:" + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Հաշվարկված հաշիվ" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Թակեք դեմքերը՝ մարդկանց մասին տեղեկություններ դիտելու համար:" + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Թակեք և պահեք երկու կետում, հետո սարքը թեքեք հետ ու առաջ՝ էկրանը փոքրացնելու կամ մեծացնելու համար:" + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Արևոտ օր" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Ձնառատ օր" msgid "IDS_IV_BODY_SHARE_VIA" msgstr "Համօգտագործել հետևյալի միջոցով՝" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Չուղարկել" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Սերվերի անունը" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Մտերիմի լուսանկարի համօգտագործում" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Ընտրել մակերես՝ նկարը կադրավորելու համար:" -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Դեմքի ֆիքսում" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Ընտրված մակերեսը կտպվի:" -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Պատկերների դիտարկիչ" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Ընտրված մակերեսը կհատկացվի պաստառին:" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Ընտրված մակերեսը կհատկացվի կոնտակտի նկարին:" + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Իրավունքի կարգավիճակ" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Լուծաչափ" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Հեռացնել սիրվածներից" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Անձրևոտ օր" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Տպել" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Հնարավոր" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Մարդիկ" + +msgid "IDS_IV_BODY_N_A" +msgstr "Կիրառելի չէ" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Հատկորոշիչ չկա" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Նոր տեգ" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" msgstr "Մոտակա սարքեր" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Ընտրել մակերես՝ նկարը կադրավորելու համար" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Իմ սարքը" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Ընտրված մակերեսը կհատկացվի պաստառին" +msgid "IDS_IV_BODY_MODEL" +msgstr "Նմուշ" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Ընտրված մակերեսը կտպվի" +msgid "IDS_IV_BODY_ME" +msgstr "Իմ կողմից" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Ձեր մեդիա ֆայլերը կարող եք համօգտագործել այլ սարքերի հետ՝ օգտվելով մոտակա սարքերից" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Արտադրող" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Ընտրված մակերեսը կհատկացվի կոնտակտի նկարին" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Երկայնք" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Կողպել էկրանը" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Գտնվելու վայր" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Տեղը" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Տեղեր" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Գտնվելու վայր" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Լայնք" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "%sում" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Դադար" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Անհատ" + +msgid "IDS_IV_BODY_IN" +msgstr "Մեջ" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Անհնար է" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Աշխատասեղան" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Հիմնական և կողպված էկրաններ" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Փոխանցում" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Բռնկման մենյու" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Ֆայլի անուն" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Ֆայլի տեղը" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Նիշքի ձեւաչափը" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "Լուսակայման ժկ" -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Կատարել" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Ընձեռեք GPS հատկորոշիչներ Խցիկում՝ տեղի հատկորոշիչները տեսնելու համար:" + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Ընձեռեք ինքնանորացում եղանակի պատկերագրում՝ եղանակի հատկորոշիչներ տեսնելու համար:" + +msgid "IDS_IV_BODY_DURATION" +msgstr "Տևողություն" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM տեղեկ." + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Չցուցադրել կրկին" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Այլևս չհարցնել" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Էկրան" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Ստեղծման ամսաթիվը" + +msgid "IDS_IV_BODY_CROP" +msgstr "Եզրատել" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Ստեղծ պիտկ" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Քանակ" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Ամպամած օր" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Պարզկա գիշեր" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Զանգահարողի պատկեր" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Հիմնական" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Հասանելի օգտվողներ" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Ավտոմատ" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Համապատասխանող գույնի թեմա կիրառեք ծրագրերի նկատմամբ:" + +msgid "IDS_IV_BODY_APERTURE" msgstr "Բացվածք" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Կողմնորոշում" +msgid "IDS_IV_BODY_ANY" +msgstr "Ցանկացած" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Արտադրող" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Ավելացնել սիրվածներ" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Կիզակետային տարածություն" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Կուտակված ժամանակը" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Կողմնորոշում" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Հասել եք նիշերի առավելագույն քանակին:" -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Նմուշ" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Չհաջողվեց" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Ավելացնել անուն" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Սահմանել որպես զանգահարողի ID" +msgid "IDS_ST_BODY_MB" +msgstr "ՄԲ" + +msgid "IDS_ST_BODY_KB" +msgstr "ԿԲ" + +msgid "IDS_ST_BODY_GB" +msgstr "ԳԲ" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Խմբագրել" + +msgid "IDS_ST_BODY_DATE" +msgstr "Ամսաթիվ" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Հաշիվներ" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Ներբեռնել" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Նկարները Dropbox-ում վերբեռնելուց հետո տարրերը կցուցադրվեն:" + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Բեռնում..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Ավելացնել նկարներ" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Նկարները որպես սիրվածներ հատկորոշելուց հետո նկարները կցուցադրվեն:" + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Հեռացնե՞լ դեմքի նույնականացումը:" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Վերագրել անուն" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Հաստատեք որպես %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Դասավորություն" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d նկար է ավելացվել" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Ալբոմը չեղյալ կհամարվի:" + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Ներբեռնումը սկսվում է..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Հիշողությունը չի բավարարում: Ջնջեք որոշ տարրեր" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Անձնական պահոց" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Քաշեք այստեղ:" + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Թակել՝ պատկերներ ավելացնելու համար:" + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Ֆայլն արդեն գոյություն ունի:" + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Այս տարրը կվերացվի:" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Նկարները Facebook-ում վերբեռնելուց հետո տարրերը կցուցադրվեն:" + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Անվավեր պայմանանշան:" + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Ձեռքով" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Մշակվում է..." + +msgid "IDS_ST_BODY_OK" +msgstr "Ընդունել" + +msgid "IDS_ST_SK_RENAME" +msgstr "Վրանվանել" + +msgid "IDS_COM_BODY_NONE" +msgstr "Չկա" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d ընտրված" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Սարքի պահոց" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD քարտ" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Արագություն" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Ֆոնային երաժշտություն" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 վրկ" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 վրկ" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 վրկ" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Պահման տեղը" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Ֆայլի չափսը" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 ալբոմ կվերացվի:" + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Կարոտախտ" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Աղոտ" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Մեղմ փայլ" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Պահպանել փոփոխությունները" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Պահպանե՞լ Ձեր կատարած փոփոխությունները, թե՞ դեն նետել:" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Գցել" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Պահպանել" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Հնաոճ" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Արևի լույս" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Հին լուսանկար" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Ռետրո" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Գորշ սանդղակ" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Սեպիա" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Խամրած գույներ" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Կախովի լապտեր" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Դեղնացոլք" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Հստակեցնել" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Ուրվանկար" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Հակադարձ գույներ" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Յուղաներկ" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Պլակատի էֆեկտ" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Մուլտֆիլմ" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Փոփ արտ" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Կախարդական գրիչ" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Ավելացված է արգելափակման ցանկում:" + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Պտտեցնել" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Ձեր սարքի պահոցում բավարար տեղ չկա: Գնացեք Դրվածքներ > Էներգիա և պահոց > Պահոց, հետո վերացրեք որոշ ֆայլեր և նորից փորձեք:" + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Սլայդի ժամանակամիջոց" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Սլայդի ժամանակամիջոց" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Կոնտակտի նկար" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Ոչ մեկը" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Խմբագրել" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Վերանվանել" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Նախադրել որպես" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Ներբեռնել" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Վերանվանել" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Վերանվանել" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Վերանվ-լ" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Այս անունով նիշք արդեն առկա է նշանակված պանակում:" + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Փխրնել" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Դնել որպես" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Հիմնական էկրանի պաստառ" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Կողպէկրանի պաստառ" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Հիմն. և կողպ. էկրանի պաստառներ" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Մանրամասներ" + +msgid "IDS_IV_BODY_DATE" +msgstr "Ամսաթիվ" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Անհնար է պահպանել պատկերը" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Ձեր սարքի պահոցում բավարար տեղ չկա (%d ՄԲ):" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Ձեր SD քարտում բավարար տեղ չկա (%d ՄԲ):" + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Վերացրեք որոշ ֆայլեր և նորից փորձեք:" + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Պահպանել պատկեր" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Ձեր սարքի պահոցում բավարար տեղ չկա (մնացել է %d ՄԲ): Այս տարրը կպահպանվի Ձեր SD քարտում:" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "SD քարտում բավարար տեղ չկա (մնացել է %d ՄԲ): Այս տարրը կպահպանվի Ձեր սարքի պահոցում:" + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Այս պատկերը կվերացվի:" + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Կանգ" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Վերացնել" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Սխալ" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Ընտրել տարածք" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Արված է" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Չհաջողվեց բեռնել այս տարրը:" + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Բացասական" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "ԱՐՎԱԾ" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ԴԱԴԱՐԵՑՆԵԼ" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Բացասական" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Անհնար է բացել Պատկերասրահը:" + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Բեռնվում է..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Բեռնում է..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Բեռնումը ձախողվեց:" + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Պատկերի բեռնում..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Մերժել" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Անհնար է ներբեռնել" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Շարժական տվյալներն անջատված են: Միացեք Wi-Fi ցանցի կամ միացրեք Շարժական տվյալներն ու նորից փորձեք:" + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Չուղարկել" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 վայրկյան" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d վայրկյան" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Էֆեկտ" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Էֆեկտներ" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Հոսք" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Մարել" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Ոչ մի դեմք չի ճանաչվել" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Մոտեցնել" diff --git a/res/po/is.po b/res/po/is.po old mode 100755 new mode 100644 index 7568911..ad116f9 --- a/res/po/is.po +++ b/res/po/is.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Bæta við heimaskjá" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Einkamál" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Sjálfvirkt" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Endurnefna" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Myndskeiðinu verður eytt." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Skráarheitið er þegar í notkun." + +msgid "IDS_ST_BODY_OFF" +msgstr "Slökkt" + +msgid "IDS_COM_BODY_DONE" +msgstr "Lokið" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Flass" +msgid "IDS_COM_SK_STOP" +msgstr "Stöðva" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "Slökkt er á %1$s í þessu forriti. Til að gera þennan eiginleika virkan skaltu fara í %2$s, velja eiginleikann og velja svo þetta forrit." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "Í lagi" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Lokið" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Hætta v." + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Rita nafn" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Ekkert heiti" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Aðeins eitt albúm." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Hægt er velja allt að %d hluti." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Upplýsingar" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Eyða" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Á að eyða?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Hætta v." + +msgid "IDS_IV_POP_DELETED" +msgstr "Eytt." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Uppáhald" + +msgid "IDS_IV_SK_SAVE" +msgstr "Vista" + +msgid "IDS_IV_POP_SAVED" +msgstr "Vistað." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Stillingar" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Stærð" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Óþekkt" + +msgid "IDS_IV_SK_YES" +msgstr "Já" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Afrita á klemmuspjald" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Brennivídd" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Kveikt á flassi" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Slökkt á flassi" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Myndbirting" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Ljósgjafi" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Allar myndir" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Sjálfvirkt" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Stefna" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Búa til" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Velja mynd" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Hvítjöfnun" +msgid "IDS_MP_BODY_DURATION" +msgstr "Tímalengd" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Uppsafnaður tími" +msgid "IDS_ST_POP_SET" +msgstr "Stilla" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Merkja" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Merki" -msgid "IDS_IV_POP_ADDED" -msgstr "Bætt við" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Skr. athugasemd" -msgid "IDS_IV_BODY_ANY" -msgstr "Hvað sem er" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Skoðaðu efnið í öðrum tækjum með því að nota nálæg tæki." -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Tiltæk notkun" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Myndskeiðsskrár innihalda ekki upplýsingar um fólk þar sem þær styðja ekki andlitsmerkingar." -msgid "IDS_IV_BODY_BASIC" -msgstr "Venjulegt" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Ekki er hægt að deila þessari mynd. Hún er DRM-varin." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Mynd af viðmælanda" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Mistókst að opna skrá." -msgid "IDS_IV_BODY_COUNT" -msgstr "Fjöldi" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Skráðar veðurupplýsingar endurspegla hugsanlega ekki raunverulegt veður vegna uppfærslutímans." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Dagsetning búin til" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Persónulega efnið sem afritað var á klippiborðið er hægt að nota til að búa til nýtt efni. Ekki er hægt að fela nýja efnið sjálfkrafa." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Skjár" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Myndin er of lítil." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Sláðu inn heiti fyrir merkið" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Dagsetningarupplýsingar birtast aðeins þegar önnur merki eru sýnileg." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Færsla er tóm" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Pikkaðu og haltu smámyndum til að velja bestu myndirnar." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Framkvæma" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Stillingar skyggnusýningar" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Skráarsnið" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Velja veggfóður fyrir heimaskjá og læsa skjá" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Staðsetning skráar" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Viltu nota þessa mynd sem auðkenni fyrir %s?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Framsending" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Stilla sem kenni hringjanda" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Veggfóður á heimaskjá" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Verið er að senda..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Ekki hægt" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Veldu tæki" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Stakt" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD-kortið er ekki í símanum." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Bil" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Leyfi var hafnað." -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Ógild myndskrá" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Engin staðsetning" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Breiddargráða" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Engin andlit voru merkt. Merktu andlit á myndinni." -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Staðsetningar" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Engin andlit greindust." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Læsa veggfóðri á skjá" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Ekki er nægt minni. Eyðið nokkrum atriðum." -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Lengdargráða" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Nettenging mistókst." msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Hámarkfjölda stafa (%d) hefur verið náð" +msgstr "Hámarkfjölda stafa (%d) hefur verið náð." -msgid "IDS_IV_BODY_N_A" -msgstr "Óþekkt" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Ógild myndskrá." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Nýtt merki" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Flass notað" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Leyfi var hafnað" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Skráarsniðið er óstutt." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Mögulegt" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Færsla er tóm." -msgid "IDS_IV_BODY_PRINT" -msgstr "Prenta" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Sláðu inn heiti fyrir merkið." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Prenta með Bluetooth" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Kveiktu á sjálfvirkri uppfærslu í veðurveggfóðrinu til að sjá veðurmerki." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Upplausn" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Niðurhali lokið" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Rétt staða" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Besta mynd" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD-kortið er ekki í símanum" +msgid "IDS_IV_POP_ADDED" +msgstr "Bætt við." -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Veldu tæki" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Skrifaðu texta" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Heiti netþjóns" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Nota hreyfingu" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Setja sem" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Ekki uppáhald" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Velja veggfóður fyrir heimaskjá og læsa skjá" +msgid "IDS_IV_OPT_TRIM" +msgstr "Snyrta" -msgid "IDS_IV_OPT_SHARE" -msgstr "Samnýta" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Merkja andlit" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Merkjavinur" + +msgid "IDS_IV_OPT_TAG" +msgstr "Merki" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Hefja skyggnusýningu" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "Glærusýning" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Tímasett" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Skyggnusýning" -msgid "IDS_IV_OPT_TRIM" -msgstr "Snyrta" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Sýna atriði" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Án takmarkana" +msgid "IDS_IV_OPT_SHARE" +msgstr "Samnýta" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Gildistími" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Snúið til hægri" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Seljandi" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Snúið til vinstri" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Fjarlægja merki" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Uppfæra" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Prenta með Bluetooth" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Greina handvirkt" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Veggfóður heima- og lásskjás" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Falin atriði" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Fá leiðsögn" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "Skráaflutningur" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Ekki birta aftur" +msgid "IDS_IV_OPT_ERASER" +msgstr "Strokleður" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Þrýstu á tvo staði í einu og hallaðu tækinu fram og aftur til að minnka eða stækka skjáinn" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Breyta veðurmerki" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Breyta" + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Breyta texta" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Eyða myndatexta" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Afrita á klemmuspjald" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Uppl. um tengingu" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Ský" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Mynddeiling vina" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Besta andlit" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Sem myndskeiðaskrám" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Sem myndaskrám" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Hreyfiljósmynd" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Bæta við veðurmerki" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Bæta við nafni" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Bæta við texta" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Tónlist skyggnusýningar" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Deila hljóðum og myndum" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Nota sem" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Senda þessa mynd til" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Veldu tengilið til að deila" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Spilunarhraði" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Læsa veggfóðri á skjá" msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Um halla" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Veggfóður á heimaskjá" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Breyta veðurmerki" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Breyta raðmynd" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Tiltæk tæki" + msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "Allar plötur" +msgstr "Öll albúm" -msgid "IDS_IV_OPT_TAG" -msgstr "Merki" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Merkja" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Veggfóður heima- og lásskjás" +msgid "IDS_IV_BUTTON_STOP" +msgstr "Stö." -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Nota hreyfingu" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Skanna" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Heima- og lásskjáir" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Þú getur deilt efni með öðrum tækjum með því að nota nálæg tæki." -msgid "IDS_IV_BODY_CROP" -msgstr "Skera af" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Með %s og %d aðrir" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Heimaskjár" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Með %s" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Læsa skjá" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Ljósgjafi" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Snúið til vinstri" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Veður" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Snúið til hægri" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Veður" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Greina handvirkt" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Seljandi" -msgid "IDS_IV_BODY_ME" -msgstr "Ég" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Gildistími" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Breyta" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Án takmarkana" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Fjarlægja merki" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Mistókst að hlaða mynd." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Tímasett" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Pikkaðu á andlit til að sjá upplýsingar um fólkið." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Þrýstu á tvo staði í einu og hallaðu tækinu fram og aftur til að minnka eða stækka skjáinn." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Sólardagur" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Snjóadagur" msgid "IDS_IV_BODY_SHARE_VIA" msgstr "Samnýta um" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Ekki senda" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Heiti netþjóns" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Mynddeiling vina" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Veldu svæði til að skera myndina." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Andlitsmerking" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Valið svæði verður prentað." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Myndbirting" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Valið svæði verður notað á veggfóðrið." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Valið svæði verður notað á tengiliðamyndina." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Rétt staða" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Upplausn" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Taka úr eftirlætum" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Sólbjartur dagur" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Prenta" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Mögulegt" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Fólk" + +msgid "IDS_IV_BODY_N_A" +msgstr "Óþekkt" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Ekkert merki" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Nýtt merki" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" msgstr "Nálæg tæki" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Veldu svæði til að skera myndina" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Tækið mitt" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Valið svæði verður notað á veggfóðrið" +msgid "IDS_IV_BODY_MODEL" +msgstr "Tegund" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Valið svæði verður prentað" +msgid "IDS_IV_BODY_ME" +msgstr "Ég" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Þú getur deilt efni með öðrum tækjum með því að nota nálæg tæki" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Framleiðandi" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Valið svæði verður notað á tengiliðamyndina" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Lengdargráða" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Lásskjár" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Staðsetning" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Staður" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Staðsetningar" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Staðsetning" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Breiddargráða" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "Í %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Bil" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Stakt" + +msgid "IDS_IV_BODY_IN" +msgstr "Auka" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Ekki hægt" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Heimaskjár" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Heima- og lásskjáir" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Framsending" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Valmynd leifturljóss" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Skrárheiti" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Staðsetning skráar" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Skráarsnið" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "Lýsingartími" -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Framkvæma" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Kveiktu á GPS-merkjum í myndavélinni til að sjá staðsetningarmerkingar." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Kveiktu á sjálfvirkri uppfærslu í veðurgræjunni til að sjá veðurmerki." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Tímalengd" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "Um stafræn réttindi" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Ekki birta aftur" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Ekki spyrja aftur" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Skjár" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Dagsetning búin til" + +msgid "IDS_IV_BODY_CROP" +msgstr "Skera af" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Búa til" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Fjöldi" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Skýjaður dagur" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Heiðskýr nótt" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Mynd af viðmælanda" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Venjulegt" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Tiltæk notkun" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Sjálfvirkt" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Nota sama litaþema fyrir forrit." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Ljósop" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Stefna" +msgid "IDS_IV_BODY_ANY" +msgstr "Hvað sem er" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Framleiðandi" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Bæta við uppáhalds" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Brennivídd" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Uppsafnaður tími" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Stefna" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Hámarksfjölda stafa hefur verið náð." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Tegund" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Mistókst" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Bæta við nafni" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Stilla sem kenni hringjanda" +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Breyta" + +msgid "IDS_ST_BODY_DATE" +msgstr "Dagsetning" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Reikningar" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Hlaða niður" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Hlutir birtast eftir að myndum hefur verið hlaðið upp á Dropbox." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Verið er að hala niður..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Setja inn myndir" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Myndir birtast eftir að þær hafa verið merktar sem uppáhald." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Fjarlægja andlitsgreiningu?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Gefa nafn" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Staðfesta sem %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Útlit" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d myndum bætt við" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Hætt verður við albúmið." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Hef niðurhal..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Ekki er nægt minni. Eyðið nokkrum atriðum." + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Einkageymsla" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Dragðu hingað." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Pikkaðu til að bæta við myndum." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Skráin er þegar til." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Þessum hlut verður eytt." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Hlutir birtast eftir að myndum hefur verið hlaðið upp á Facebook." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Ógildur stafur." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Handvirkt" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Vinnsla í gangi..." + +msgid "IDS_ST_BODY_OK" +msgstr "Í lagi" + +msgid "IDS_ST_SK_RENAME" +msgstr "Endurnefna" + +msgid "IDS_COM_BODY_NONE" +msgstr "Ekkert" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d valið" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Geymsla tækis" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD-kort" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Hraði" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Bakgrunnstónlist" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 sek." + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 sek." + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 sek." + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Geymsla" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Skráarstærð" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "Einu albúmi verður eytt." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Fortíðarþrá" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Óskýrt" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Mjúkur ljómi" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Vista breytingar" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Hvort viltu vista breytingarnar eða fleygja þeim?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Fleygja" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Vista" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Gamaldags" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Sólskin" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Gömul ljósmynd" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retró" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Grátónar" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Brúnlit" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Daufir litir" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Niðurlýst" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Gulur ljómi" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Skerpa" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Rissa" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Öfugir litir" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Olíumálning" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Litafækkun" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Teiknimynd" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Popplist" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Töfrapenni" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Bætt á Læsingarlista." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Snúa" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Ekki er nægt rými í geymslu tækisins. Opnaðu Stillingar > Orka og geymsla > Geymsla til að eyða einhverjum skrám og reyndu svo aftur." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Skyggnuhraði" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Skyggnuhraði" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Mynd tengiliðar" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Engin" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Breyta" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Endurnefna" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Nota sem" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Sækja" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Endurnefna" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Endurnefna" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Endurn." + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Skrá með þetta heiti er þegar til staðar í viðtökumöppunni." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Skip. út" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Nota sem" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Veggfóður heimaskjás" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Veggfóður lásskjás" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Veggfóður heima- og lásskjás" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Upplýsingar" + +msgid "IDS_IV_BODY_DATE" +msgstr "Dagsetning" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Ekki er hægt að vista myndina" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Of lítið pláss (%d MB) er í geymslu tækisins." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Ekki nægt rými (%d MB) á SD-kortinu." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Eyddu einhverjum skrám og reyndu aftur." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Vista mynd" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Ekki er nægt rými (%d MB eftir) í geymslu tækisins. Þetta atriði verður vistað á SD-kortinu." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Ekki er nægt rými (%d MB eftir) á SD-kortinu. Þetta atriði verður vistað í geymslu tækisins." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Þessari mynd verður eytt." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Stöðva" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Eyða" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Villa" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Velja svæði" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Lokið" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Mistókst að hlaða þetta atriði." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negatíft" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "LOKIÐ" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "HÆTTA VIÐ" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negatíft" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Ekki er hægt að opna galleríið." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Hleð..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Hleð..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Ekki tókst að hlaða." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Verið er að lesa mynd..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Fleygja" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Ekki er hægt að sækja" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Slökkt er á farsímagögnum. Tengstu Wi-Fi neti eða kveiktu á farsímagögnum og reyndu aftur." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Ekki senda" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 sekúnda" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d sekúndur" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Brella" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Brellur" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Flæða" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Dofna" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Ekkert andlit greindist" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Auka aðdrátt" diff --git a/res/po/it_IT.po b/res/po/it_IT.po old mode 100755 new mode 100644 index a0328e9..e57a405 --- a/res/po/it_IT.po +++ b/res/po/it_IT.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Agg. a schermata home" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Privato" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Automatica" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Rinomina" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Il video sarà eliminato." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Il nome del file è già in uso." + +msgid "IDS_ST_BODY_OFF" +msgstr "Non attivo" + +msgid "IDS_COM_BODY_DONE" +msgstr "Fatto" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Flash" +msgid "IDS_COM_SK_STOP" +msgstr "Ferma" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s è disattivato in questa applicazione. Per attivare questa funzione, andate in %2$s, selezionate la funzione, quindi l'applicazione." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Fatto" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Annulla" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Inserisci nome" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Nessun nome" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "È presente un solo album." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "È possibile selezionare fino a %d elementi." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Dettagli" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Elimina" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Eliminare?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Annulla" + +msgid "IDS_IV_POP_DELETED" +msgstr "Eliminato/i." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Preferiti" + +msgid "IDS_IV_SK_SAVE" +msgstr "Salva" + +msgid "IDS_IV_POP_SAVED" +msgstr "Salvato." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Impostaz." + +msgid "IDS_IV_BODY_SIZE" +msgstr "Dimensioni" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Sconosciuto" + +msgid "IDS_IV_SK_YES" +msgstr "Sì" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Copia negli appunti" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Lunghezza focale" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Flash attivato" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Flash Non attivo" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Visualizzatore immagini" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Bilanciamento bianco" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Tutte le foto" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Automatico" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Orientamento" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Crea tag" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Seleziona immagine" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Bilanc. bianco" +msgid "IDS_MP_BODY_DURATION" +msgstr "Durata" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Tempo accumulato" +msgid "IDS_ST_POP_SET" +msgstr "Impostato" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Aggiungi tag" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Tag" -msgid "IDS_IV_POP_ADDED" -msgstr "Aggiunto" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Agg. commento" -msgid "IDS_IV_BODY_ANY" -msgstr "Qualsiasi" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Visualizzate i contenuti multimediali su altri dispositivi vicini con la funzione di ricerca." -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Usi disponibili" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "I file video non contengono informazioni sulle persone in quanto non supportano la funzione di riconoscimento facciale." -msgid "IDS_IV_BODY_BASIC" -msgstr "Di base" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Impossibile condividere quest'immagine perché è protetta da DRM." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Immagine chiamante" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Impossibile aprire file." -msgid "IDS_IV_BODY_COUNT" -msgstr "Conteggio" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "A causa dell'intervallo di tempo di aggiornamento, le informazioni meteo registrate potrebbero essere differenti dalle effettive condizioni meteo a causa dell'intervallo di aggiornamento." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Data creazione" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "I contenuti personali copiati negli appunti possono essere utilizzati per creare nuovi contenuti. I nuovi contenuti potrebbero non venire nascosti automaticamente." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Schermo" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Immagine troppo piccola." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Inserire nome tag" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Le informazioni sulla data vengono visualizzate soltanto se sono visibili altri tag." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Voce vuota" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Tenere premute le anteprime per selezionare le foto migliori." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Esegui" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Impostazioni presentazione" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Formato file" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Imposta sfondo per schermata iniziale e schermo bloccato" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Posizione file" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Associare quest'immagine all'ID chiamante di %s?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Inoltro" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Imposta come ID chiamante" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Sfondo schermata Home" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Invio..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Impossibile" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Selezionate dispositivo" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Individuale" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "Scheda SD rimossa." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Intervallo" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Permesso negato." -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "File immagine non valido" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Nessuna posizione" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Latitudine" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Nessun tag applicato ai volti. Applicate tag ai volti presenti nell'immagine." -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Posizioni" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Nessun volto rilevato." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Blocca sfondo schermo" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Memoria insufficiente. Eliminare alcuni elementi." -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Longitudine" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Connessione di rete non eseguita." msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Raggiunto numero massimo di caratteri (%d)" +msgstr "Raggiunto numero massimo di caratteri (%d)." -msgid "IDS_IV_BODY_N_A" -msgstr "N/D" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "File immagine non valido." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Nuovo tag" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Flash attivato" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Permesso negato" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Formato file non supportato." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Possibile" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Voce vuota" -msgid "IDS_IV_BODY_PRINT" -msgstr "Stampa" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Inserire nome tag." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Stampa con Bluetooth" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Attivate l'aggiornamento automatico nello sfondo Meteo per visualizzare i tag." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Risoluzione" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Download completato" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Stato diritti" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Scatto migliore" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "Scheda SD rimossa" +msgid "IDS_IV_POP_ADDED" +msgstr "Aggiunto." -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Seleziona dispositivo" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Scrivere una didascalia" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Nome server" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Sensore di movimento" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Imposta come" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Rimuovi da preferiti" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Imposta sfondo per schermata iniziale e schermo bloccato" +msgid "IDS_IV_OPT_TRIM" +msgstr "Ritaglia" -msgid "IDS_IV_OPT_SHARE" -msgstr "Condividi" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Assegna tag ai volti" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Info immagine" + +msgid "IDS_IV_OPT_TAG" +msgstr "Tag" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Avvia presentazione" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "Presentazione" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "A termine" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Presentazione" -msgid "IDS_IV_OPT_TRIM" -msgstr "Ritaglia" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Mostra elementi" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Senza limitazioni" +msgid "IDS_IV_OPT_SHARE" +msgstr "Condividi" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Validità" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Ruota a destra" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Fornitore" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Ruota a sinistra" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Rimuovi tag" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Aggiorna" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Stampa con Bluetooth" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Rilevato manualmente" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Sfondo schermata iniziale e blocco" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Elementi nascosti" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Ottieni indicazioni" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "Trasferimento file" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Non mostrare più" +msgid "IDS_IV_OPT_ERASER" +msgstr "Cancellino" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Tocca e tieni premuto lo schermo in due punti quindi inclina il dispositivo avanti o indietro per aumentare o diminuire lo zoom" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Modifica tag meteo" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Modif. tag" + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Modifica didascalia" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Elimina sottotitolo" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Copia negli appunti" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Info connessione" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Condivisione foto amici" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Volto migliore" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Come file video" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Come file immagine" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Foto animate" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Aggiungi tag meteo" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Aggiungi nome" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Aggiungi didascalia" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Musica presentazione" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Condividi Audio foto" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Imposta come" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Invia immagine a" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Selezionate contatto da condividere" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Velocità di riproduzione" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Blocca sfondo schermo" msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Guida inclinazione" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Sfondo schermata Home" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Modifica tag meteo" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Modif. scatto continuo" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Dispositivi disponibili" + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "Tutti gli album" -msgid "IDS_IV_OPT_TAG" -msgstr "Tag" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Aggiungi tag" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Sfondo schermata iniziale e blocco" +msgid "IDS_IV_BUTTON_STOP" +msgstr "Ferma" -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Sensore di movimento" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Scansione" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Schermata Home e di blocco" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Potete condividere i contenuti multimediali con altri dispositivi utilizzando la funzione di ricerca di dispositivi vicini." -msgid "IDS_IV_BODY_CROP" -msgstr "Ritaglia" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Con %s e %d altri" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Schermata Home" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Con %s" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Schermata di blocco" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Bilanciamento bianco" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Ruota a sinistra" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Meteo" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Ruota a destra" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Meteo" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Rilevato manualmente" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Fornitore" -msgid "IDS_IV_BODY_ME" -msgstr "Me stesso" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Validità" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Modif. tag" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Senza limitazioni" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Rimuovi tag" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Impossibile caricare la foto." -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "Condividi con" +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "A termine" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Non inviare" +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "Le informazioni registrate sul meteo devono essere modificate manualmente. Il dispositivo non supporta la ricezione delle informazioni meteo registrate dal widget del meteo." -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Condivisione foto amici" +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Toccate i relativi volti per visualizzare informazioni sulle persone." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Volti riconosciuti" +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Tocca e tieni premuto lo schermo in due punti quindi inclina il dispositivo avanti o indietro per aumentare o diminuire lo zoom." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Visualizzatore immagini" +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Soleggiato" -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "Connetti altri dispositivi" +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Giorno nevoso" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Selezionate un'area per ritagliare l'immagine" +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Condividi" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "L'area selezionata verrà applicata allo sfondo" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Nome server" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Selezionate un'area per ritagliare l'immagine." msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "L'area selezionata verrà stampata" +msgstr "L'area selezionata verrà stampata." -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Potete condividere i contenuti multimediali con altri dispositivi utilizzando la funzione di ricerca di dispositivi vicini" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "L'area selezionata verrà applicata allo sfondo." msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "L'area selezionata verrà utilizzata come foto contatto" +msgstr "L'area selezionata verrà utilizzata come foto contatto." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Stato diritti" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Risoluzione" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Rimuovi dai preferiti" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Giorno piovoso" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Stampa" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Possibile" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Persone" + +msgid "IDS_IV_BODY_N_A" +msgstr "N/D" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Nessun tag" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Nuovo tag" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "Dispositivi vicini" + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Dispositivo personale" + +msgid "IDS_IV_BODY_MODEL" +msgstr "Modello" + +msgid "IDS_IV_BODY_ME" +msgstr "Me stesso" + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Produttore" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Longitudine" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Schermata di blocco" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Posizione" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Posizione" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Luoghi" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Posizione" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Latitudine" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "Tra %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Intervallo" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Individuale" + +msgid "IDS_IV_BODY_IN" +msgstr "Avanti" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Impossibile" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Schermata Home" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Schermata Home e di blocco" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Inoltro" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Menu Flash" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Nome del file" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Posizione file" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Formato file" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "Tempo esposiz." -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Esegui" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Per visualizzare i tag sulla posizione, attivate i tag GPS in Fotocamera." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Attivare l'aggiornamento automatico nel widget Meteo per visualizzare i tag meteo." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Durata" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "Info DRM" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Non mostrare più" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Non chiedere più" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Schermo" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Data creazione" + +msgid "IDS_IV_BODY_CROP" +msgstr "Ritaglia" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Crea tag" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Conteggio" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Giorno nuvoloso" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Notte serena" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Immagine chiamante" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Di base" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Usi disponibili" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Auto" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Applicate un tema colori corrispondente alle applicazioni." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Apertura" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Orientamento" +msgid "IDS_IV_BODY_ANY" +msgstr "Qualsiasi" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Produttore" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Aggiungi a Preferiti" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Lunghezza focale" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Tempo accumulato" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Orientamento" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Raggiunto numero massimo di caratteri." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Modello" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Non riuscito" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Aggiungi nome" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Imposta come ID chiamante" +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Modifica" + +msgid "IDS_ST_BODY_DATE" +msgstr "Data" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Account" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Download" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Gli elementi vengono visualizzati dopo aver caricato immagini su Dropbox." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Download..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Aggiungi immagini" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Le foto verranno mostrate dopo aver aggiunto dei tag come foto preferite." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Rimuovere l'identificazione facciale?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Assegna nome" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Conferma come %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Layout" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d immagini aggiunte" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "L'album verrà annullato." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Avvio download in corso..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Memoria insufficiente. Eliminare alcuni elementi." + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Archivio privato" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Trascina qui." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Premere per aggiungere immagini." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "File già esistente." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Questo elemento verrà eliminato." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Gli elementi vengono visualizzati dopo aver caricato immagini su Facebook." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Carattere non valido." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Manuale" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Errore" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Elaborazione in corso..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Rinomina" + +msgid "IDS_COM_BODY_NONE" +msgstr "Nessuno" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d selezionati" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Memoria dispositivo" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "Scheda SD" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Velocità" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Musica di sottofondo" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 sec" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 sec" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 sec" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Posizione di memoria" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Dimensioni file" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album verrà eliminato." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgia" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Sfocatura" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Sfumatura leggera" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Salva modifiche" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Salvare le modifiche o ignorarle?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Scarta" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Salva" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Vintage" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Luce diurna" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Foto d'epoca" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retró" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Scala di grigi" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Seppia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Colori semitrasparenti" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Luce dall'alto" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Luminosità gialla" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Nitidezza alta" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Bozza" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Colori invertiti" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Dipinto a olio" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Posterizzazione" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Fumetto" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Pop art" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Penna magica" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Aggiunto a elenco contatti bloccati." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Ruota" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Spazio insufficiente sulla memoria del dispositivo. Andate in Impostazioni > Batteria e memoria > Memoria, quindi eliminate alcuni file e riprovate." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Intervallo diapositiva" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Intervallo diapositiva" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Foto contatto" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Nessuno" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Modifica" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Rinomina" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Imposta come" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Scarica" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Rinomina" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Rinomina" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Rinomina" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Nella cartella di destinazione esiste già un file con questo nome." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Sostit." + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Imposta come" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Sfondo schermata Home" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Sfondo schermata di blocco" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Sfondi schermata Home e blocco" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Dettagli" + +msgid "IDS_IV_BODY_DATE" +msgstr "Data" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Impossibile salvare l'immagine" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Spazio insufficiente nella memoria del dispositivo (%d MB)." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Spazio insufficiente nella scheda SD (%d MB)." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Eliminate alcuni file e riprovate." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Salva immagine" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Spazio insufficiente (%d MB restanti) nella memoria del dispositivo. Questo elemento verrà salvato sulla scheda SD." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Spazio insufficiente (%d MB restanti) sulla scheda SD. Questo elemento verrà salvato nella memoria del dispositivo." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Questa immagine sarà eliminata." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Arresta" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Elimina" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Errore" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Seleziona area" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Fatto" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Impossibile caricare questo elemento." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negativo" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "FATTO" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ANNULLA" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negativo" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Impossibile aprire la Galleria." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Caricamento in corso..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Caricamento..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Caricamento non eseguito." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Caricamento immagine..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Scarta" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Impossibile eseguire download" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "La connessione dati è disattivata. Connettetevi a una rete Wi-Fi o attivate la connessione dati e riprovate." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Non inviare" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 secondo" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d secondi" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Effetto" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Effetti" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Flusso" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Sfumatura" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Nessun volto rilevato" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Zoom avanti" diff --git a/res/po/ja_JP.po b/res/po/ja_JP.po old mode 100755 new mode 100644 index 206b657..a0602fa --- a/res/po/ja_JP.po +++ b/res/po/ja_JP.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "ホームに追加" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "プライベート" -msgid "IDS_CAM_BODY_AUTO" -msgstr "自動" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "名前を変更" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "この動画を削除します。" + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "ファイル名は既に使用されています。" + +msgid "IDS_ST_BODY_OFF" +msgstr "OFF" + +msgid "IDS_COM_BODY_DONE" +msgstr "完了" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "フラッシュ" -msgid "IDS_CAM_BODY_ISO" -msgstr "ISO" +msgid "IDS_COM_SK_STOP" +msgstr "停止" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "クリップボードにコピー" +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$sはこのアプリケーションでは無効です。この機能を有効にするには、%2$sに移動した後、このアプリケーションを選択してください。" -msgid "IDS_CAM_BODY_FLASH_ON" -msgstr "フラッシュON" +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "フラッシュOFF" +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "完了" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "ホワイト​バランス" +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "キャンセル" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "自動" +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "名前を入力" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "タグ​作成" +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "名前なし" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "ホワイトバランス" +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "1つのアルバムしかありません。" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "累積時間" +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "%dアイテムまで選択できます。" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "タグを追加" +msgid "IDS_IV_OPT_DETAILS" +msgstr "詳細" -msgid "IDS_IV_POP_ADDED" -msgstr "追加しました。" +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "削除" -msgid "IDS_IV_BODY_ANY" -msgstr "どれか" +msgid "IDS_IV_POP_DELETE_Q" +msgstr "削除しますか?" -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "使用可能" +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "キャンセル" -msgid "IDS_IV_BODY_BASIC" -msgstr "標準" +msgid "IDS_IV_POP_DELETED" +msgstr "削除しました。" -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "発信者画像" +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "お気に入り" -msgid "IDS_IV_BODY_COUNT" -msgstr "回数" +msgid "IDS_IV_SK_SAVE" +msgstr "保存" -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "作成日付" +msgid "IDS_IV_POP_SAVED" +msgstr "保存しました。" -msgid "IDS_IV_BODY_DISPLAY" -msgstr "画面" +msgid "IDS_IV_BODY_SETTINGS" +msgstr "設定" -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "タグ名を入力" +msgid "IDS_IV_BODY_SIZE" +msgstr "サイズ" -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "入力されていません。" +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "不明" -msgid "IDS_IV_BODY_EXECUTE" -msgstr "実行" +msgid "IDS_IV_SK_YES" +msgstr "はい" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "ファイル形式" +msgid "IDS_CAM_BODY_ISO" +msgstr "ISO" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "ファイルの場所" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "焦点距離" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "転送" +msgid "IDS_CAM_BODY_FLASH_ON" +msgstr "フラッシュON" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "ホーム画面の壁紙" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "画像ビューア" -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "不可" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "全ての画像" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "個人" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "向き" -msgid "IDS_IV_BODY_INTERVAL" -msgstr "間隔" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "画像を選択" -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "画像​ファイル​が​無効​です" +msgid "IDS_MP_BODY_DURATION" +msgstr "再生時間" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "緯度" +msgid "IDS_ST_POP_SET" +msgstr "設定しました。" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "場所" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "タグ" -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "画面ロック時の壁紙" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "コメントを追加" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "経度" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "[近くのデバイス]を利用して他の端末でメディアを表示できます。" -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "最大文字数(%d)に達しました。" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "動画ファイルはフェイスタグ機能に対応していないため、人物の情報は含まれません。" -msgid "IDS_IV_BODY_N_A" -msgstr "なし" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "この画像を共有できません。DRMで保護されています。" -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "新しい​タグ" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "ファイルを開くことができません。" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "承認が拒否されました。" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "記録された気象情報は、情報の更新間隔によって実際の気象と異なる場合があります。" -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "可能" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "クリップボードにコピーしたパーソナルコンテンツを利用して新しくコンテンツを作成した場合、新しいコンテンツを自動的に非表示にできない可能性があります。" -msgid "IDS_IV_BODY_PRINT" -msgstr "印刷" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "画像が小さすぎます。" -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Bluetoothで印刷" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "他のタグが表示可能になったときにのみ、日時情報が表示されます。" -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "解像度" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "ベストフォトを選択するには、サムネイルを長押ししてください。" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "権限の状態" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "スライドショーの設定" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "外部SDカードが取り外されました。" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "ホーム画面やロック画面の壁紙を設定" + +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "%sの発信者IDとしてこの写真を設定しますか?" + +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "連絡先の画像として設定" + +msgid "IDS_IV_POP_SENDING_ING" +msgstr "送信中..." msgid "IDS_IV_POP_SELECT_DEVICE" msgstr "デバイスを選択" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "サーバー名です" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "外部SDカードを安全に取り外すことができます。" -msgid "IDS_IV_OPT_SET_AS" -msgstr "登録" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "承認が拒否されました。" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "ホーム画面やロック画面の壁紙を設定" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "位置情報がありません。" -msgid "IDS_IV_OPT_SHARE" -msgstr "共有" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "タグ付けされた顔がありません。写真上の顔にタグ付けしてください。" -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "スライドショー" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "顔が検出されません。" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "時間カウント" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "メモリが不足しています。不要なアイテムを削除してください。" -msgid "IDS_IV_OPT_TRIM" -msgstr "トリミング" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "ネットワーク接続失敗" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "無制限" +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "最大文字数(%d文字)に達しました。" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "有効回数" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "画像ファイルが無効です。" -msgid "IDS_IV_BODY_VENDOR" -msgstr "提供元" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "フラッシュON" -msgid "IDS_IV_OPT_FILE_TRANSFER" -msgstr "ファイル転送" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "対応していないファイル形式です。" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "今後表示しない" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "入力されていません。" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "画面の2箇所を押しながら端末を前後に傾けると、拡大/縮小します。" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "タグ名を入力" -msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" -msgstr "端末を傾ける操作について" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "気象情報タグを表示するには、気象情報壁紙の自動更新を有効にします。" -msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "全アルバム" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "ダウンロード完了" -msgid "IDS_IV_OPT_TAG" -msgstr "タグ" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "ベストフォト" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "ホーム画面/ロック画面用壁紙" +msgid "IDS_IV_POP_ADDED" +msgstr "追加しました。" + +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "キャプションを入力" msgid "IDS_IV_OPT_USE_MOTION" msgstr "モーションを使用" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "ホーム画面とロック画面" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "お気に入りを解除" -msgid "IDS_IV_BODY_CROP" +msgid "IDS_IV_OPT_TRIM" msgstr "トリミング" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "ホーム画面" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "フェイスタグ" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "ロック画面" +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "タグバディ" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "左に回転" +msgid "IDS_IV_OPT_TAG" +msgstr "タグ" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "スライドショーを開始" + +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "スライドショー" + +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "スライドショー" + +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "アイテムを表示" + +msgid "IDS_IV_OPT_SHARE" +msgstr "共有" msgid "IDS_IV_OPT_ROTATE_RIGHT" msgstr "右に回転" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "左に回転" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "タグを削除" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "更新" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Bluetoothで印刷" + msgid "IDS_IV_OPT_MANUALLY_DETECT" msgstr "手動で編集" -msgid "IDS_IV_BODY_ME" -msgstr "自分" +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "ホーム画面/ロック画面用壁紙" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "非表示アイテム" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "経路を取得" + +msgid "IDS_IV_OPT_FILE_TRANSFER" +msgstr "ファイル転送" + +msgid "IDS_IV_OPT_ERASER" +msgstr "消しゴム" + +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "気象情報タグを編集" msgid "IDS_IV_OPT_EDIT_TAG" msgstr "タグを編集" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "タグを削除" +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "キャプションを編集" -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "共有" +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "キャプションを削除" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "送出しない" +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "クリップボードにコピー" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "接続情報" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "クラウド" msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" msgstr "メンバーに​画像共有" -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "顔タギング" +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "ベストフェイス" -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "画像ビューア" +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "動画ファイルとして" -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "近くのデバイス" +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "画像ファイルとして" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "トリミングする画像の領域を選択してください。" +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "アニメーション写真" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "選択した領域が壁紙に適用されます。" +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "気象情報タグを追加" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "選択した領域が印刷されます。" +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "名前を追加" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "キャプションを追加" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "スライドショー音楽" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "サウンド&ショット写真を共有" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "登録" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "この画像を送信" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "共有する連絡先を選択してください。" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "再生スピード" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "画面ロック時の壁紙" + +msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" +msgstr "端末を傾ける操作について" + +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "ホーム画面の壁紙" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "気象情報タグを編集" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "連写を編集" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "接続可能デバイス" + +msgid "IDS_IV_HEADER_ALL_ALBUMS" +msgstr "全てのアルバム" + +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "タグを追加" + +msgid "IDS_IV_BUTTON_STOP" +msgstr "停止" + +msgid "IDS_IV_BUTTON_SCAN" +msgstr "スキャン" msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" msgstr "[近くのデバイス]を利用して他の端末とメディアを共有できます。" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "選択した領域が連絡先の画像に適用されます。" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "%s、他%d人" -msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "露光時間" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "%sと" -msgid "IDS_CAM_BODY_APERTURE" -msgstr "絞り" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "ホワイト​バランス" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "向き" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "気象情報" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "製造社" +msgid "IDS_IV_BODY_WEATHER" +msgstr "天気予報" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "焦点距離" +msgid "IDS_IV_BODY_VENDOR" +msgstr "提供元" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "向き" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "有効回数" -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "モデル" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "制限なし" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "名前を追加" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "画像を読み込めません。" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "発信者IDとして設定しました。" +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "時間カウント" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "顔が検出されません。" +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "記録された気象情報は、手動で編集する必要があります。お使いの端末は、気象ウィジェットから気象情報を受信する機能に対応していません。" + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "人物の情報を表示するには、顔をタップします。" + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "画面の2箇所を押しながら端末を前後に傾けると、拡大/縮小します。" + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "晴れの日" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "雪の日" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "共有" + +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "サーバー名です。" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "トリミングする画像の領域を選択してください。" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "選択した領域が印刷されます。" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "選択した領域が壁紙に適用されます。" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "選択した領域が連絡先の画像に適用されます。" + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "権限の状態" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "解像度" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "お気に入りから削除" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "雨の日" + +msgid "IDS_IV_BODY_PRINT" +msgstr "印刷" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "可能" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "人物" + +msgid "IDS_IV_BODY_N_A" +msgstr "なし" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "タグなし" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "新しい​タグ" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "近くの​デバイス" + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "マイデバイス" + +msgid "IDS_IV_BODY_MODEL" +msgstr "モデル" + +msgid "IDS_IV_BODY_ME" +msgstr "自分" + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "製造社" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "経度" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "ロック画面" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "保存先" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "位置情報" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "位置情報" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "場所" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "緯度" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "%sで" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "間隔" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "個人" + +msgid "IDS_IV_BODY_IN" +msgstr "ズームイン" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "不可" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "ホーム画面" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "ホーム画面と​ロック画面" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "転送" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Flash" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "ファイル名" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "ファイルの場所" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "ファイル形式" + +msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" +msgstr "露光時間" + +msgid "IDS_IV_BODY_EXECUTE" +msgstr "実行" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "位置情報タグを表示するには、カメラのGPSタグを有効にします。" + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "気象情報タグを表示するには、気象情報ウィジェットの自動更新を有効にします。" + +msgid "IDS_IV_BODY_DURATION" +msgstr "期間" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM情報" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "今後表示しない" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "次回から確認しない" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "画面" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "作成日付" + +msgid "IDS_IV_BODY_CROP" +msgstr "トリミング" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "タグを作成" + +msgid "IDS_IV_BODY_COUNT" +msgstr "回数" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "曇りの日" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "晴れた夜" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "発信者画像" + +msgid "IDS_IV_BODY_BASIC" +msgstr "標準" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "使用可能" + +msgid "IDS_IV_BODY_AUTO" +msgstr "自動" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "アプリケーションに一致するカラーテーマを適用" + +msgid "IDS_IV_BODY_APERTURE" +msgstr "絞り" + +msgid "IDS_IV_BODY_ANY" +msgstr "どれか" + +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "お気に入りに追加" + +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "累積時間" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "最大文字数に達しました。" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "失敗" + +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" + +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "編集" + +msgid "IDS_ST_BODY_DATE" +msgstr "日付" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "アカウント" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "ダウンロード" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Dropboxに画像をアップロードした後、アイテムが表示されます。" + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "ダウンロード中..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "画像を追加" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "お気に入りとして写真をタグ付けした後に、写真が表示されます。" + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "顔認証を削除しますか?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "名前を割り当て" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "%sとして確認" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "レイアウト" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d件の画像を追加済み" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "アルバム作成をキャンセルします。" + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "ダウンロードを開始中..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "メモリが不足しています。不要なアイテムを削除してください。" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "プライベートストレージ" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "ここにドラッグ" + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "画像を追加してください。" + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "ファイルが既にあります。" + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "このアイテムを削除します。" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Facebookに画像をアップロードした後、アイテムが表示されます。" + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "無効な文字です。" + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "手動" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "処理中..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "名前変更" + +msgid "IDS_COM_BODY_NONE" +msgstr "なし" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d件選択" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "システムメモリ(本体)" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "外部SDカード" + +msgid "IDS_ST_BODY_SPEED" +msgstr "速度" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "BGM" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1秒" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3秒" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5秒" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "保存場所" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "ファイルサイズ" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1件のアルバムを削除します。" + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "ノスタルジア" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "ぼかし" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "ソフトグロー" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "変更を保存" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "変更を保存または破棄しますか?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "破棄" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "保存" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "ビンテージ" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "サンシャイン" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "古い写真" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "レトロ" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "グレースケール" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "セピア" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "色あせ" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "ダウンライト" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "イエローグロー" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "シャープ" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "スケッチ" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "色反転" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "油絵" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "ポスタライズ" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "マンガ調" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "ポップアート" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "マジックペン" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "ブロックリストに追加しました。" + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "回転" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "システムメモリ(本体)の空き容量が低下しています。[設定] > [電源とストレージ] > [ストレージ]に移動して不要なファイルを削除した後、再度実行してください。" + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "スライド間隔" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "スライド間隔" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "連絡先の画像" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "点灯状態を保つ" + +msgid "IDS_IV_OPT_EDIT" +msgstr "編集" + +msgid "IDS_IV_OPT_RENAME" +msgstr "名前を変更" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "設定" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "ダウンロード" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "名前を変更" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "名前を変更" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "名称変更" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "既に同じ名前のファイルがコピー先フォルダに存在します。" + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "置き換え" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "登録" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "ホーム画面の壁紙" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "ロック画面の壁紙" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "ホーム画面とロック画面の壁紙" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "詳細" + +msgid "IDS_IV_BODY_DATE" +msgstr "日付" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "画像の保存不可" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "システムメモリ(本体)の空き容量が低下しています(%dMB)。" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "外部SDカードの空き容量が低下しています(%dMB)。" + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "いくつかのファイルを削除し、再度実行してください。" + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "画像を保存" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "システムメモリ(本体)の空き容量が低下しています(残り%dMB)。このアイテムは外部SDカードに保存されます。" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "外部SDカードの空き容量が低下しています(残り%dMB)。このアイテムはシステムメモリ(本体)に保存されます。" + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "この画像は削除されます。" + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "ストップ" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "削除" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "エラー" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "領域を選択" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "完了" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "アイテムの読み込みに失敗しました。" + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "ネガポジ反転" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "完了" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "キャンセル" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "ネガポジ反転" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "[ギャラリー]を開くことができません。" + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "読み込み中..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "読み込み中..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "読み込みに失敗しました。" + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "画像を読み込み中..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "破棄" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "ダウンロード不可" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "モバイルデータがOFFになっています。Wi-Fiネットワークで接続するか、モバイルデータをONにして再度お試しください。" + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "送出しない" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1秒" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d秒" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "効果" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "エフェクト" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "フロー" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "フェード" + +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "拡大" diff --git a/res/po/ka.po b/res/po/ka.po old mode 100755 new mode 100644 index 000b462..fddb64d --- a/res/po/ka.po +++ b/res/po/ka.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "დამატება საწყის გვერდზე" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "პერსონალური" -msgid "IDS_CAM_BODY_AUTO" -msgstr "ავტომატური" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "ხელახლა დასათაურება" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "ეს ვიდეო წაიშლება." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "ფაილის სახელი უკვე გამოყენებულია" + +msgid "IDS_ST_BODY_OFF" +msgstr "გამორთ." + +msgid "IDS_COM_BODY_DONE" +msgstr "შესრულებულია" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "ნათება" -msgid "IDS_CAM_BODY_ISO" -msgstr "ISO" +msgid "IDS_COM_SK_STOP" +msgstr "შეჩერება" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "ასლის შენახვა ბუფერულ მეხსიერებაში" +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s გამორთულია ამ პროგრამაში. ამ ფუნქციის ჩასართავად გახსენით %2$s, აირჩიეთ ეს ფუნქცია და შემდეგ აირჩიეთ ეს პროგრამა" -msgid "IDS_CAM_BODY_FLASH_ON" -msgstr "ნათება ჩართულია" +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "კი" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Flash off" +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "შესრულდა" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "თეთრის ბალანსი" +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "გაუქმება" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "ავტომატური" +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "სახელის შეყვანა" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "ჩან.შექმნა" +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "უსახელო" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "თეთრი ბალანსი" +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "აქ მხოლოდ ერთი ალბომია." -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "საერთო დრო" +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "მაქსიმუმ %d ელემენტის არჩევა შეგიძლიათ." -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "ჩან.დამატ." +msgid "IDS_IV_OPT_DETAILS" +msgstr "დეტალები" -msgid "IDS_IV_POP_ADDED" -msgstr "დამატებულია" +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "წაშლა" -msgid "IDS_IV_BODY_ANY" -msgstr "ნებისმიერი" +msgid "IDS_IV_POP_DELETE_Q" +msgstr "წაიშალოს?" -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "დასაშვები გამოყენება" +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "გაუქმება" -msgid "IDS_IV_BODY_BASIC" -msgstr "ძირითადი" +msgid "IDS_IV_POP_DELETED" +msgstr "წაშლილია." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "აბონენტის სურათი" +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "ფავორიტი" -msgid "IDS_IV_BODY_COUNT" -msgstr "დათვლა" +msgid "IDS_IV_SK_SAVE" +msgstr "შენახვა" -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "შექმნის თარიღი" +msgid "IDS_IV_POP_SAVED" +msgstr "შენახულია." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "ჩვენება" +msgid "IDS_IV_BODY_SETTINGS" +msgstr "პარამეტრები" -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "ჩაწერეთ ჩანართის სახელი" +msgid "IDS_IV_BODY_SIZE" +msgstr "ზომა" -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "ცარიელი ჩანაწ." +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "უცნობი" -msgid "IDS_IV_BODY_EXECUTE" -msgstr "შესრულება" +msgid "IDS_IV_SK_YES" +msgstr "კი" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "ფაილის ფორმატი" +msgid "IDS_CAM_BODY_ISO" +msgstr "ISO" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "ფაილის ადგილი" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "ფოკუსური მანძილი" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "გადამისამართება" +msgid "IDS_CAM_BODY_FLASH_ON" +msgstr "ნათება ჩართულია" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "საწყისი ეკრანის ფონი" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "სურათის დამთვალიერებელი" -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "შეუძლებელია" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "ყველა სურათი" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "ინდივიდუალური" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "ორიენტაცია" -msgid "IDS_IV_BODY_INTERVAL" -msgstr "ინტერვალი" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "სურათის შერჩევა" -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "გრაფიკული ფაილი არასწორია" +msgid "IDS_MP_BODY_DURATION" +msgstr "ხანგრძლივობა" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "განედი" +msgid "IDS_ST_POP_SET" +msgstr "დაყენება" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "ლოკაციები" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "ტეგები" -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "ფონის დაბლოკვა" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "კომენტარის დამ." -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "გრძედი" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "დაათვალიერეთ მედია სხვა მოწყობილობებში, ახლომდებარე მოწყობილობების გამოყენებით." -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "მიღწეულია სიმბოლოების მაქსიმალური რაოდენობა (%d)" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "ვიდეო ფაილები არ შეიცავს ინფორმაციას ხალხის შესახებ, რადგან მათ არ აქვს სახის ჩანართის ფუნქცია." -msgid "IDS_IV_BODY_N_A" -msgstr "არ არის" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "ამ სურათის გაზიარება შეუძლებელია. ის დაცულია DRM-ით." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "ახალი ჩანართი" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "ფაილი ვერ იხსნება." -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "ნებართვა უარყოფილია" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "ჩაწერილი ამინდის პროგნოზი შეიძლება განსხვავდებოდეს რეალური ამინდისგან, განახლების ინტერვალის გამო." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "შესაძლო" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "ბუფერულ მეხსიერებაში კოპირებული პერსონალური მასალის გამოყენება შეიძლება ახალი მასალის შესაქმნელად. შესაძლოა, თქვენი ახალი მასალა არ დაიმალოს ავტომატურად." -msgid "IDS_IV_BODY_PRINT" -msgstr "ამობეჭდვა" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "სურათი ძალზე პატარაა." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Bluetooth-ით ამობეჭდვა" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "თარიღის ინფორმაცია მხოლოდ მაშინ გამოჩნდება, როდესაც გამოჩნდება სხვა ჩანართები." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "გარჩევადობა" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "საუკეთესო ფოტოების ასარჩევად, ხანგრძლივად შეეხეთ მიკროასლებს." -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "ნამდვილი სტატუსი" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "სლაიდ–შოუს პარამეტრები" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD ბარათი ამოღებულია" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "დააყენეთ ფონი საწყის ეკრანზე და დაბლოკეთ ეკრანი" + +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "დააყენებთ ამ სურათს, როგორც %s აბონენტის ID-ს?" + +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "აბონენტის ID-დ დაყენება" + +msgid "IDS_IV_POP_SENDING_ING" +msgstr "იგზავნება..." msgid "IDS_IV_POP_SELECT_DEVICE" msgstr "მოწყობილობის შერჩევა" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "სერვერის სახელი" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD ბარათი ამოღებულია." -msgid "IDS_IV_OPT_SET_AS" -msgstr "დაყენება" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "ნებართვა უარყოფილია." -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "დააყენეთ ფონი საწყის ეკრანზე და დაბლოკეთ ეკრანი" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "ლოკაცია არ არის" -msgid "IDS_IV_OPT_SHARE" -msgstr "გაზიარება" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "არცერთ სახეზე არ არის იარლიყი. დაადეთ იარლიყები სახეებს სურათზე" -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "სლაიდშოუ" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "სახეები არ არის ამოცნობილი." -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "შეყოვნებული დათვლა" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "მეხსიერება საკმარისი არაა. წაშალეთ ზოგიერთი ელემენტი" -msgid "IDS_IV_OPT_TRIM" -msgstr "დარეგულირება" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "ქსელის კავშირი ვერ დამყარდა." -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "შეუზღუდავი" +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "მიღწეულია სიმბოლოების მაქსიმალური რაოდენობა (%d)." -msgid "IDS_IV_BODY_VALIDITY" -msgstr "ქმედითობა" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "გრაფიკული ფაილი არასწორია." -msgid "IDS_IV_BODY_VENDOR" -msgstr "მომწოდებელი" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "ნათება ჩართულ." -msgid "IDS_IV_OPT_FILE_TRANSFER" -msgstr "ფაილის გადაგზავნა" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "ფაილის ფორმატი არ არის გათვალისწინებული." -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "აღარ მაჩვენო" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "ცარიელი ჩანაწ." -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "დააკაკუნეთ და დაიჭირეთ ორ წერტილში, შემდეგ უკან და წინ გადახარეთ აპარატი, თუ გსურთ შეამციროთ ან გაზარდოთ ეკრანი" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "ჩაწერეთ ჩანართის სახელი." -msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" -msgstr "დახრის შესახებ" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "ამინდის ჩანართების გამოსაჩენად, ამინდის ფონზე გაააქტიურეთ ავტომატური განახლება." -msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "ყველა ალბომი" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "ჩამოტვირთვა დასრულდა" -msgid "IDS_IV_OPT_TAG" -msgstr "ჩანართი" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "საუკეთესო ფოტო" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "საწყისი და დაბლოკილი ეკრანის ფონი" +msgid "IDS_IV_POP_ADDED" +msgstr "დამატებულია." + +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "წარწერის გაკეთება" msgid "IDS_IV_OPT_USE_MOTION" msgstr "მოძრაობის გამოყენება" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "საწყისი და დაბლოკილი ეკრანები" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "არაფავორიტი" -msgid "IDS_IV_BODY_CROP" -msgstr "ამოჭრა" +msgid "IDS_IV_OPT_TRIM" +msgstr "დარეგულირება" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "საწყისი ეკრანი" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "იარლიყი სახეზე" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "ეკრანის დაბლოკვა" +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "კონტექსტუალური იარლიყი" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "მარცხნივ მოტრიალება" +msgid "IDS_IV_OPT_TAG" +msgstr "ჩანართი" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "სლაიდშოუს დაწყება" + +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "სლაიდშოუ" + +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "სლაიდშოუ" + +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "ელემენტების ჩვენება" + +msgid "IDS_IV_OPT_SHARE" +msgstr "გაზიარება" msgid "IDS_IV_OPT_ROTATE_RIGHT" msgstr "მარჯვნივ მოტრიალება" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "მარცხნივ მოტრიალება" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "ჩანართის მოცილება" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "განახლება" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Bluetooth-ით ამობეჭდვა" + msgid "IDS_IV_OPT_MANUALLY_DETECT" msgstr "მექანიკური ამოცნობა" -msgid "IDS_IV_BODY_ME" -msgstr "მე" +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "საწყისი და დაბლოკილი ეკრანის ფონი" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "დამალული ელემენტები" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "მიმართულებების მიღება" + +msgid "IDS_IV_OPT_FILE_TRANSFER" +msgstr "ფაილის გადაგზავნა" + +msgid "IDS_IV_OPT_ERASER" +msgstr "საშლელი" + +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "ამინდის ინფოს შესწ." msgid "IDS_IV_OPT_EDIT_TAG" msgstr "ჩან. შესწ." -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "ჩანართის მოცილება" +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "წარწერის შეცვლა" -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "გაზიარების მეთოდია" +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "წარწერის წაშლა" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "არ გაიგზავნოს" +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "ასლის შენახვა ბუფერულ მეხსიერებაში" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "კავშირის ინფორმაცია" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" msgstr "მეგობრის ფოტოს გაზიარება" -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "სახის ამოცნობა" +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "საუკეთესო სახე" -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "სურათის დამთვალიერებელი" +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "როგორც ვიდეო ფაილები" -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "ახლომდებარე მოწყობილობები" +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "როგორც გრაფიკული ფაილები" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "აირჩიეთ ამოსაჭრელი ადგილი სურათზე" +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "ანიმაციური ფოტო" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "შერჩეული ადგილი გამოყენებული იქნება ფონისთვის" +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "ამინდის ჩანართის დამატება" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "შერჩეული ადგილი ამოიბეჭდება" +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "სახელის დამატება" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "წარწერის დამატება" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "სლაიდშოუს მუსიკა" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "გააზ. „ხმა და გადაღება“" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "დაყენება" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "ამ სურათის გაგზავნა" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "აირჩიეთ კონტაქტი გასაზიარებლად" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "დაკვრის სიჩქარე" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "ფონის დაბლოკვა" + +msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" +msgstr "დახრის შესახებ" + +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "საწყისი ეკრანის ფონი" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "ამინდის ინფოს შესწ." + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "ზედიზედ გადაღ. შესწორ." + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "ხელმისაწვდომები" + +msgid "IDS_IV_HEADER_ALL_ALBUMS" +msgstr "ყველა ალბომი" + +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "ჩან. დამატ." + +msgid "IDS_IV_BUTTON_STOP" +msgstr "შეჩერ." + +msgid "IDS_IV_BUTTON_SCAN" +msgstr "სკანირება" msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "შეგიძლიათ გააზიაროთ თქვენი მედია სხვა მოწყობილობებთან, ახლომდებარე მოწყობილობების გამოყენებით" +msgstr "შეგიძლიათ გააზიაროთ თქვენი მედია სხვა მოწყობილობებთან, ახლომდებარე მოწყობილობების გამოყენებით." -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "შერჩეული ადგილი გამოყენებული იქნება კონტაქტის სურათისთვის" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "%s და კიდევ %d სხვით" -msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "ექსპოზიცია" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "„%s“–სთან" -msgid "IDS_CAM_BODY_APERTURE" -msgstr "აპერტურა" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "თეთრის ბალანსი" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "ორიენტაცია" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "ამინდი" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "მწარმოებელი" +msgid "IDS_IV_BODY_WEATHER" +msgstr "ამინდი" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "ფოკუსური მანძილი" +msgid "IDS_IV_BODY_VENDOR" +msgstr "მომწოდებელი" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "ორიენტაცია" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "ქმედითობა" -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "მოდელი" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "შეუზღუდავი" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "სახელის დამატება" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "ფოტოს ჩატვირთვა შეუძლებელია." -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "აბონენტის ID-დ დაყენება" +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "შეყოვნებული დათვლა" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "შეეხეთ სახეებს და ნახეთ ინფორმაცია ხალხის შესახებ." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "დააკაკუნეთ და დაიჭირეთ ორ წერტილში, შემდეგ უკან და წინ გადახარეთ აპარატი, თუ გსურთ შეამციროთ ან გაზარდოთ ეკრანი." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "მზიანი დღე" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "თოვლიანი დღე" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "გაზიარების მეთოდია" + +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "სერვერის სახელი" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "აირჩიეთ ამოსაჭრელი ადგილი სურათზე." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "შერჩეული ადგილი ამოიბეჭდება." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "შერჩეული ადგილი გამოყენებული იქნება ფონისთვის." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "შერჩეული ადგილი გამოყენებული იქნება კონტაქტის სურათისთვის." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "ნამდვილი სტატუსი" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "გარჩევადობა" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "ფავორიტებიდან ამოშლა" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "წვიმიანი დღე" + +msgid "IDS_IV_BODY_PRINT" +msgstr "ამობეჭდვა" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "შესაძლო" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "ხალხი" + +msgid "IDS_IV_BODY_N_A" +msgstr "არ არის" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "იარლიყი არ არის" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "ახალი ჩანართი" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "ახლომდებარე მოწყობილობები" + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "ჩემი მოწყობილობა" + +msgid "IDS_IV_BODY_MODEL" +msgstr "მოდელი" + +msgid "IDS_IV_BODY_ME" +msgstr "მე" + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "მწარმოებელი" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "გრძედი" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "ეკრანის დაბლოკვა" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "ადგილმდებარეობა" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "ლოკაცია" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "ლოკაციები" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "ადგილმდებ." + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "განედი" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "%s–ში" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "ინტერვალი" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "ინდივიდუალური" + +msgid "IDS_IV_BODY_IN" +msgstr "გაზრდა" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "შეუძლებელია" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "საწყისი ეკრანი" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "საწყისი და დაბლოკილი ეკრანები" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "გადამისამართება" + +msgid "IDS_IV_BODY_FLASH" +msgstr "ნათების მენიუ" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "ფაილის სახელი" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "ფაილის ადგილი" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "ფაილის ფორმატი" + +msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" +msgstr "ექსპოზიცია" + +msgid "IDS_IV_BODY_EXECUTE" +msgstr "შესრულება" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "გაააქტიურეთ GPS ჩანართები კამერაში და ნახეთ ლოკაციის ჩანართები." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "ამინდის ჩანართების გამოსაჩენად, ამინდის ვიჯეტში გაააქტიურეთ ავტომატური განახლება." + +msgid "IDS_IV_BODY_DURATION" +msgstr "ხანგრძლივობა" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM ინფორმაცია" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "აღარ მაჩვენო" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "აღარ მკითხო" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "ჩვენება" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "შექმნის თარიღი" + +msgid "IDS_IV_BODY_CROP" +msgstr "ამოჭრა" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "ჩან.შექმნა" + +msgid "IDS_IV_BODY_COUNT" +msgstr "დათვლა" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "ღრუბლიანი დღე" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "მშვიდი ღამე" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "აბონენტის სურათი" + +msgid "IDS_IV_BODY_BASIC" +msgstr "ძირითადი" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "დასაშვები გამოყენება" + +msgid "IDS_IV_BODY_AUTO" +msgstr "ავტომატური" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "ეს ფერადი გაფორმება გამოიყენეთ პროგრამებში." + +msgid "IDS_IV_BODY_APERTURE" +msgstr "აპერტურა" + +msgid "IDS_IV_BODY_ANY" +msgstr "ნებისმიერი" + +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "ფავორიტებში დამატება" + +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "საერთო დრო" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "მიღწეულია სიმბოლოების მაქსიმალური რაოდენობა." + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "არ შესრულდა" + +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" + +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "შეცვლა" + +msgid "IDS_ST_BODY_DATE" +msgstr "თარიღი" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "ანგარიშები" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "ჩამოტვირთვა" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Dropbox-ზე სურათების ატვირთვის შემდეგ, გამოჩნდება ელემენტები." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "ჩამოტვირთვა..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "სურათების დამატება" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "სურათების ფავორიტებად მონიშვნის შემდეგ, გამოჩნდება სურათები." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "მოცილდეს სახის იდენტიფიკაცია?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "სახელის მინიჭება" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "დაადასტურეთ, როგორც %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "განლაგება" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "დაემატა %d სურათი" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "ალბომი გაუქმდება." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "იწყება ჩამოტვირთვა..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "მეხსიერება საკმარისი არაა. წაშალეთ ზოგიერთი ელემენტი" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "პირადი საცავი" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "გადაიტანეთ აქ." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "დააკაკუნეთ და დაამატეთ სურათები." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "ფაილი უკვე არსებობს." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "ეს ელემენტი წაიშლება." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Facebook-ზე სურათების ატვირთვის შემდეგ, გამოჩნდება ელემენტები." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "სიმბოლო არასწორია." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "მექანიკური" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "მუშავდება..." + +msgid "IDS_ST_BODY_OK" +msgstr "დიახ" + +msgid "IDS_ST_SK_RENAME" +msgstr "გადარქმ." + +msgid "IDS_COM_BODY_NONE" +msgstr "არც ერთი" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d არჩეულია" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "აპარატის მეხსიერება" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD ბარათი" + +msgid "IDS_ST_BODY_SPEED" +msgstr "სიჩქარე" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "მუსიკა ფონზე" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 წმ." + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 წმ." + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 წმ." + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "შენახვის ადგილი" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "ფაილის ზომა" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 ალბომი წაიშლება." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "ნოსტალგია" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "გადღაბნა" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "რბილი ელვარება" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "ცვლილებების შენახვა" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "შეინახოს ცვლილებები თუ გაუქმდეს?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "წაშლა" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "შენახვა" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "დაძველების ეფექტი" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "მზის ნათელი" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "ძველი ფოტო" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "რეტრო" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "ნაცრისფერი" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "სეპია" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "მქრქალი ფერები" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "დანათება" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "ყვითელი ალი" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "გამკვეთრება" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "ესკიზი" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "ნეგატივის ფერები" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "ზეთის საღებავი" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "კონტურები" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "მულტფილმი" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "პოპარტი" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "ჯადოსნური კალამი" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "დაბლოკილთა სიაში დამატება." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "ბრუნვა" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "მოწყობილობის მეხსიერებაში არ არის საკმარისი ადგილი. გახსენით პარამეტრები > ენერგია და საცავი > მეხსიერება და წაშალეთ ზოგიერთი ფაილი, შემდეგ კი ისევ სცადეთ." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "სლაიდების ცვლის ინტერვალი" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "სლაიდების ცვლის ინტერვალი" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "კონტაქტის სურათი" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "არცერთი" + +msgid "IDS_IV_OPT_EDIT" +msgstr "რედაქტირება" + +msgid "IDS_IV_OPT_RENAME" +msgstr "გადარქმევა" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "დაყენდეს როგორც" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "ჩამოტვირთვა" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "გადარქმევა" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "გადარქმევა" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "გადარქმ." + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "სამიზნე საქაღალდეში უკვე არის ფაილი ამ სახელით." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "შეცვლა" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "დაყენდეს როგორც" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "საწყისი ეკრანის ფონი" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "ჩაკეტილი ფონი" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "საწყისი/დაბლოკილი ეკრანის ფონი" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "დეტალები" + +msgid "IDS_IV_BODY_DATE" +msgstr "თარიღი" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "სურათს ვერ შეინახავთ" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "თქვენი მოწყობილობის მეხსიერებაში არ არის საკმარისი ადგილი (%d მბ)." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "SD ბარათზე არ არის საკმარისი ადგილი (%d მბ)." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "წაშალეთ ზოგიერთი ფაილი და ისევ სცადეთ." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "სურათის შენახვა" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "მოწყობილობის მეხსიერებაში არ არის საკმარისი ადგილი (დარჩენილია %d მბ). შეინახება SD ბარათზე." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "SD ბარათზე არ არის საკმარისი ადგილი (დარჩენილია %d მბ). შეინახება მოწყობილობის მეხსიერებაში." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "ეს სურათი წაიშლება." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "გაჩერება" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "წაშლა" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "შეცდომა" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "ფართობის არჩევა" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "შესრულდა" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "ეს ელემენტი ვერ ჩაიტვირთა." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "ნეგატივი" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "მზადაა" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "გაუქმება" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "ნეგატივი" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "გალერეის გახსნა შეუძლებელია." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "იტვირთება..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "იტვირთება..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "გამოტანა არ მოხერხდა." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "სურათი იტვირთება..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "წაშლა" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "ვერ ჩამოიტვირთა" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "მობილურ მონაცემთა ქსელი გამორთულია. დაუკავშირდით Wi-Fi ქსელს, ან ჩართეთ მობილური მონაცემები და ისევ სცადეთ." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "არ გაიგზავნოს" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 წამი" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d წამი" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "ეფექტი" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "ეფექტები" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "გადასვლა" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "ჩაქრობა" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "სახე არ არის დადგენილი" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "გადიდება" diff --git a/res/po/kk.po b/res/po/kk.po old mode 100755 new mode 100644 index 97153fb..e55a678 --- a/res/po/kk.po +++ b/res/po/kk.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Бастапқы бетке қосу" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Жеке аумақ" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Авто" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Атын өзгерту" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Бұл бейне жойылады." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Файл атауы бұрыннан пайдаланылуда" + +msgid "IDS_ST_BODY_OFF" +msgstr "Өшірілген" + +msgid "IDS_COM_BODY_DONE" +msgstr "Аяқталды" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Жарық" -msgid "IDS_CAM_BODY_ISO" -msgstr "ISO" +msgid "IDS_COM_SK_STOP" +msgstr "Үзіліс" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Буферге көшіру" +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "Бұл бағдарламада %1$s өшірілді. Бұл функцияны іске қосу үшін %2$s ішіне өтіп, осы функцияны таңдаңыз және осы бағдарламаны таңдаңыз" -msgid "IDS_CAM_BODY_FLASH_ON" -msgstr "Жарқыл қосулы" +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Жарқыл тұрақты" +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Дайын" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Ақ түстің тепе-теңдігі" +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Бас тарту" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Авто" +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Атын енгізіңіз" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Тег жасау" +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Ондай есім жоқ" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Ақ баланс" +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Тек бір альбом ғана бар." -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Көп уақыт" +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "%d элементке дейін таңдауға болады." -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Тег қосу" +msgid "IDS_IV_OPT_DETAILS" +msgstr "Өзгешеліктері" -msgid "IDS_IV_POP_ADDED" -msgstr "Қосылды" +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Өшіру" -msgid "IDS_IV_BODY_ANY" -msgstr "Кез келген" +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Өшіресіз бе?" -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Пайдалануға жарамды" +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Тоқтату" -msgid "IDS_IV_BODY_BASIC" -msgstr "Негізгі" +msgid "IDS_IV_POP_DELETED" +msgstr "Жойылды" -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Фотоанықтаушы" +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Сүйікті" -msgid "IDS_IV_BODY_COUNT" -msgstr "Санау" +msgid "IDS_IV_SK_SAVE" +msgstr "Сақтау" -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Күн белгіленген" +msgid "IDS_IV_POP_SAVED" +msgstr "Сақталған" -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Дисплей" +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Қондырғылар" -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Тег атауын енгізу" +msgid "IDS_IV_BODY_SIZE" +msgstr "Өлшемі" -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Енгізбе бос" +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Белгісіз" -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Орындау" +msgid "IDS_IV_SK_YES" +msgstr "Иә" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Файл пішімі" +msgid "IDS_CAM_BODY_ISO" +msgstr "ISO" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Файл орны" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Фокустау ұзақтығы" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Басқа біреуге жіберу" +msgid "IDS_CAM_BODY_FLASH_ON" +msgstr "Жарқыл қосулы" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Баст. экран түсқағазы" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Сурет қарап шығу бағдарламасы" -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Мүмкін емес" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Барлық суреттер" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Жеке" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Бағытталуы" -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Аралық" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Суретті таңдау" -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Қате кескін файлы" +msgid "IDS_MP_BODY_DURATION" +msgstr "Ұзақтығы" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Кеңділік" +msgid "IDS_ST_POP_SET" +msgstr "Орнату" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Орындар" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Белгілер" -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Экран түсқағ. құлып-у" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Түсініктеме қосу" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Ұзақтық" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Жақын құрылғыларды пайдалану арқылы басқа құрылғыларда мультимедианы көріңіз." -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Ең көп таңбалар санына (%d) жетті" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Бейне файлдарда бет белгілеу функциясы болмағандықтан, оларда адамдар туралы ақпарат болмайды." -msgid "IDS_IV_BODY_N_A" -msgstr "Қол жетімді емес" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Бұл суретпен бөлісу мүмкін емес. Бұл DRM арқылы қорғалған." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Жаңа жазба" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Файлды ашуға болмады." -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Рұқсаттан бас тартылды" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Жаңарту жиілігіне байланысты жазылған ауа райы ақпараты ағымдағы ауа райымен сай келмеуі мүмкін." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Мүмкін" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Буферге көшірілген жеке мазмұн жаңа мазмұн жасау үшін пайдаланылуы мүмкін. Жаңа мазмұныңыз автоматты түрде жасырылмауы мүмкін." -msgid "IDS_IV_BODY_PRINT" -msgstr "Басып шығару" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Сурет өлшемі тым аз." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Блютуз арқылы басып шығару" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Күн ақпараты басқа тегтер көрінген кезде ғана көрінеді." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Шешім" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Ең жақсы фотосуреттерді таңдау үшін нобайларды басып тұрыңыз." -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Құқық мәртебесі" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Слайдшоу параметрлері" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD картасы алынды" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Бастапқы экранға түсқағаз орнату және экранды құлыптау" + +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Осы суретті %s қоңырау шалушы идентификаторы ретінде орнату керек пе?" + +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Қоңырау шалушының нөмірі ретінде белгілеу" + +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Жіберілуде..." msgid "IDS_IV_POP_SELECT_DEVICE" msgstr "Құрылғыны таңдау" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Сервер атын өзгерту" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD картасы алынды." -msgid "IDS_IV_OPT_SET_AS" -msgstr "Орнату" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Рұқсаттан бас тартылды." -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Бастапқы экранға түсқағаз орнату және экранды құлыптау" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Орын жоқ" -msgid "IDS_IV_OPT_SHARE" -msgstr "Байланысқа жол" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Беттер белгіленбеді. Суретте бетті белгілеу" -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "Слайд-шоу" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Адам беттері анықталмады." -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Уақытпен санау" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Жад жетыспейт.Көп арналы жою." -msgid "IDS_IV_OPT_TRIM" -msgstr "Жақтау" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Желі қосылымы үзілді" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Шектеусіз" +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Ең көп таңбалар санына (%d) жетті." -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Жарамдылық" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Қате кескін файлы." -msgid "IDS_IV_BODY_VENDOR" -msgstr "Сатушы" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Жарқыл пайдал." -msgid "IDS_IV_OPT_FILE_TRANSFER" -msgstr "Файл беру" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Файл форматы қолданылмайды." -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Қайта көрсетпеңіз" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Енгізбе бос." -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Екі нүктені басып тұрып, экранды кішірейту не үлкейту үшін құрылғыны шалқайтыңыз не еңкейтіңіз" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Тег атауын енгізу." -msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" -msgstr "Еңкейту туралы оқып білу" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Ауа райының тегтерін көру үшін ауа райы түсқағазда авто жаңартуды қосыңыз." -msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "Барлық альбомдар" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Жүктеу аяқталды" -msgid "IDS_IV_OPT_TAG" -msgstr "Тег" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Ең жақсы фотосурет" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Бастапқы және құлып экран түсқағазы" +msgid "IDS_IV_POP_ADDED" +msgstr "Қосылды" + +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Тақырып жазу" msgid "IDS_IV_OPT_USE_MOTION" msgstr "Қозғалыс пайдалану" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Бастапқы және құлып экрандары" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Таңдаулы емес" -msgid "IDS_IV_BODY_CROP" -msgstr "Қию" +msgid "IDS_IV_OPT_TRIM" +msgstr "Жақтау" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Бейнебеттің өзіндік беті" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Бетті белгілеу" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Экранды құлыптау" +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Жолдастар тегі" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Солға бұру" +msgid "IDS_IV_OPT_TAG" +msgstr "Тег" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Слайдшоуды бастау" + +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "Слайд-шоу" + +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Слайдшоу" + +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Элементтерді көрсету" + +msgid "IDS_IV_OPT_SHARE" +msgstr "Байланысқа жол" msgid "IDS_IV_OPT_ROTATE_RIGHT" msgstr "Оңға бұру" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Солға бұру" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Тегті жою" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Жаңарту" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Блютуз арқылы басып шығару" + msgid "IDS_IV_OPT_MANUALLY_DETECT" msgstr "Қолмен анықтау" -msgid "IDS_IV_BODY_ME" -msgstr "Менен" +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Бастапқы және құлып экран түсқағазы" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Жасырын элементтер" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Бағыттар алу" + +msgid "IDS_IV_OPT_FILE_TRANSFER" +msgstr "Файл беру" + +msgid "IDS_IV_OPT_ERASER" +msgstr "Өшіргіш" + +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Ауа райы тегін өзг-у" msgid "IDS_IV_OPT_EDIT_TAG" msgstr "Тег өзг-ту" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Тегті жою" +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Тақырыпты өзгерту" -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "Бөлісу" +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Тақырыпты жою" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Жібермеу" +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Буферге көшіру" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Қосылым ақпараты" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" msgstr "Жолдас фотосуретін бөлісу" -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Бетті белгілеу" +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Ең әдемі түр" -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Сурет қарап шығу бағдарламасы" +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Бейне файлдар ретінде" -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "Жақын құрылғылар" +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Сурет файлдары ретінде" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Суретті қиып алу үшін аумақты таңдаңыз" +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Анимациял.фотосурет" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Таңдалған аумақ түсқағазға қолданылады" +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Ауа райы тегін қосу" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Таңдалған аумақ басып шығарылады" +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Атын қосу" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Тақырыпты қосу" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Слайдшоу музыкасы" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Сур. дыб. ж/е кад. бөл." + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Орнату" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Осы суретті жіберу" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Бөлісу үшін контактіні таңдаңыз" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Ойнату жылдамдығы" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Экран түсқағ. құлып-у" + +msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" +msgstr "Еңкейту туралы оқып білу" + +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Баст. экран түсқағазы" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Ауа райы тегін өзг-у" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Пакет. түс. өзг-у" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Қол жетімді құр-лар" + +msgid "IDS_IV_HEADER_ALL_ALBUMS" +msgstr "Барлық альбомдар" + +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Тег қосу" + +msgid "IDS_IV_BUTTON_STOP" +msgstr "Тоқт" + +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Қарап шығу" msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Жақын құрылғыларды пайдаланып медианы басқа құрылғылармен бөлісуге болады" +msgstr "Жақын құрылғыларды пайдаланып медианы басқа құрылғылармен бөлісуге болады." -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Таңдалған аумақ контакт суретіне қолданылады" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "%s және тағы %d" -msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "Экспоз. уақыты" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "%s арқылы" -msgid "IDS_CAM_BODY_APERTURE" -msgstr "Апертура" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Ақ түстің тепе-теңдігі" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Бағытталуы" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Ауа райы" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Дайындаушы" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Ауа райы" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Фокустау ұзақтығы" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Сатушы" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Бағытталуы" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Жарамдылық" -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Модель" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Шектеусіз" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Атын қосу" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Фотосуретті жүктеу мүмкін емес." -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Қоңырау шалушының нөмірі ретінде белгілеу" +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Уақытпен санау" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Адамдар туралы ақпарат көру үшін беттерді түртіңіз." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Екі нүктені басып тұрып, экранды кішірейту не үлкейту үшін құрылғыны шалқайтыңыз не еңкейтіңіз." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Шуақты күн" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Қарлы күн" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Бөлісу" + +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Сервер атын өзгерту" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Суретті қиып алу үшін аумақты таңдаңыз." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Таңдалған аумақ басып шығарылады." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Таңдалған аумақ түсқағазға қолданылады." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Таңдалған аумақ контакт суретіне қолданылады." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Құқық мәртебесі" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Шешім" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Ұнамдылардын шығарып тастау" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Жаңбырлы күн" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Басып шығару" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Мүмкін" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Адамдар" + +msgid "IDS_IV_BODY_N_A" +msgstr "Қол жетімді емес" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Тег жоқ" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Жаңа жазба" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "Жақын құрылғылар" + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Құрылғым" + +msgid "IDS_IV_BODY_MODEL" +msgstr "Модель" + +msgid "IDS_IV_BODY_ME" +msgstr "Мен" + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Дайындаушы" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Ұзақтық" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Экранды құлыптау" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Орналасу орны" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Орны" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Орындар" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Орналасу орны" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Кеңділік" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "%s ішінде" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Аралық" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Жеке" + +msgid "IDS_IV_BODY_IN" +msgstr "Үлкейту" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Мүмкін емес" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Бейнебеттің өзіндік беті" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Бастапқы және құлып экрандары" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Басқа біреуге жіберу" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Флэш-меню" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Файл аты" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Файл орны" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Файл пішімі" + +msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" +msgstr "Экспоз. уақыты" + +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Орындау" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Орын тегтерін көру үшін камерадағы GPS тегтерін қосыңыз." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Ауа райы тегтерін көру үшін ауа райы виджетінде авто жаңартуды қосыңыз." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Ұзақтығы" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM туралы ақпарат" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Қайта көрсетпеңіз" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Қайтадан сұрамаңыз" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Дисплей" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Күн белгіленген" + +msgid "IDS_IV_BODY_CROP" +msgstr "Қию" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Тег жасау" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Санау" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Бұлтты күн" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Ашық түн" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Фотоанықтаушы" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Негізгі" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Пайдалануға жарамды" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Авто" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Бағдарламалардағы сәйкес түстегі тақырыпты таңдаңыз." + +msgid "IDS_IV_BODY_APERTURE" +msgstr "Апертура" + +msgid "IDS_IV_BODY_ANY" +msgstr "Кез келген" + +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Ұнамдыларға қосу" + +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Көп уақыт" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Таңбалардың ен көп саны артты." + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Сәтсіз болды" + +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" + +msgid "IDS_ST_BODY_MB" +msgstr "МБ" + +msgid "IDS_ST_BODY_KB" +msgstr "KБ" + +msgid "IDS_ST_BODY_GB" +msgstr "Гбайт" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Өзгерту" + +msgid "IDS_ST_BODY_DATE" +msgstr "Күні" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Есептік жазбалар" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Жүктеу" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Суреттерді Dropbox бағдарламасына кері жүктегеннен кейін элементтер көрсетіледі." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Жазылуда..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Суреттер қосу" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Суреттерді таңдаулы ретінде белгілегеннен кейін олар көрінеді." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Бет ұқсастыруды алып тастау керек пе?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Атау беру" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "%s ретінде сақтау" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Орналасу" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d сурет қосылды" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Альбомнан бас тартылады." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Жүктеу басталуда..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Жад жетыспейт.Көп арналы жою." + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Жеке сақтау орны" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Осында сүйрету." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Суреттер қосу үшін түртіңіз." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Файл бұрыннан бар." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Бұл элемент жойылады." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Суреттерді Facebook сайтына кері жүктегеннен кейін элементтер көрсетіледі." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Қате әріп." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Қолмен" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Өңделуде..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Бсқш атау" + +msgid "IDS_COM_BODY_NONE" +msgstr "Жоқ" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d таңдалды" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Құрылғы қоймасы" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD картасы" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Жылдамдық" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Әуендік фон" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 сек" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 сек" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 сек" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Сақтау орны" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Файл өлшемі" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 альбом жойылады." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Ностальгия" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Бұлыңғыр" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Әлсіз жарық" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Өзгерістерді сақтау" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Өзгерістерді сақтау немесе алып тастау?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Алып тас" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Сақтау" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Ескі" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Күн сәулесі" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Ескі сурет" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Ретро" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Жартылай өңдік" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Сепия" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Әлсіз түстер" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Жергілікті жарық" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Сары жарық" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Айқындау" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Эскиз" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Аударылған түстер" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Майбояу" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Постерлеу" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Мультфильм" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Поп-арт" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Сиқырлы қалам" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Кілттеулі тізімге қосылды." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Бұру" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Құрылғы жадында бос орын жеткіліксіз. Параметрлер > Қуат пен сақтау орны > Сақтау орны бөліміне өтіп, кейбір файлдарды жойыңыз және әрекетті қайталңыз." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Слайд аралығы" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Слайд аралығы" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Контакт суреті" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Жоқ" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Өңдеу" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Атын өзгерту" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Орнату" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Жүктеу" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Атын өзгерту" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Атын өзгерту" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Ат өзг." + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Бағыт қалтасында осы атаумен файл бар." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Ауыстыру" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Орнату" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Бастапқы экран түсқағазы" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Құлыптау экраны түсқағазы" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Баст. және құлып экран түсқағ." + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Өзгешеліктері" + +msgid "IDS_IV_BODY_DATE" +msgstr "Күні" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Суретті сақтау мүмкін емес" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Құрылғыңыздың сақтау орнында бос орын (%d МБ) жеткіліксіз." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "SD картаңызда бос орын (%d MБ) жеткіліксіз." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Кейбір файлдарды жойып, әрекетті қайталаңыз." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Суретті сақтау" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Құрылғының сақтау орнындағы бос орын (%d МБ қалды) жеткіліксіз. Элемент SD картасына сақталады." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "SD картасында бос орын (%d МБ қалды) жеткіліксіз. Элемент құрылғының сақтау орнында сақталады." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Бұл сурет жойылады." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Тоқтату" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Жою" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Қате" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Аумақты таңдау" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Дайын" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Бұл элемент жүктелмеді." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Негатив" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "ДАЙЫН" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "БАС ТАРТУ" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Негатив" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Галереяны ашу мүмкін емес." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Жүктелуде..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Жазылуда..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Жазылу үзіліп кетті." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Сурет енгізілуде..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Қайтару" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Жүктеу мүмкін емес" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Ұялы деректер өшіріледі. Wi-Fi желісіне қосылыңыз немесе ұялы деректерді қосып, әрекетті қайталаңыз." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Жібермеу" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 секунд" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d секунд" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Әсер" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Эффектілер" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Қозғалыс" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Бәсеңдету" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Бетті көрсетуге болмайды" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Үлкейту" diff --git a/res/po/ko_KR.po b/res/po/ko_KR.po old mode 100755 new mode 100644 index 199c2da..6fc9bc5 --- a/res/po/ko_KR.po +++ b/res/po/ko_KR.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "홈에 추가" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "프라이빗" -msgid "IDS_CAM_BODY_AUTO" -msgstr "자동" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "이름 변경" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "이 동영상을 삭제합니다." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "사용 중인 파일 이름입니다." + +msgid "IDS_ST_BODY_OFF" +msgstr "해제" + +msgid "IDS_COM_BODY_DONE" +msgstr "완료" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "플래시" +msgid "IDS_COM_SK_STOP" +msgstr "중지" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "애플리케이션에서 %1$s을(를) 해제하였습니다. 이 기능을 실행하려면 %2$s로 이동하여 해당 기능을 선택하고 이 애플리케이션을 선택하세요." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "확인" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "완료" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "취소" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "이름 입력" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "이름이 없습니다" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "앨범 1개가 있습니다." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "%d개까지 선택할 수 있습니다." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "상세정보" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "삭제" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "삭제할까요?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "취소" + +msgid "IDS_IV_POP_DELETED" +msgstr "삭제하였습니다." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "즐겨찾기" + +msgid "IDS_IV_SK_SAVE" +msgstr "저장" + +msgid "IDS_IV_POP_SAVED" +msgstr "저장하였습니다." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "설정" + +msgid "IDS_IV_BODY_SIZE" +msgstr "크기" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "알 수 없음" + +msgid "IDS_IV_SK_YES" +msgstr "예" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "클립보드에 복사" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "초점 거리" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "플래시 켜기" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "플래시 끄기" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "이미지 뷰어" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "화이트밸런스" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "모든 사진" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "자동" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "방향" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "태그 추가" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "사진 선택" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "화이트밸런스" +msgid "IDS_MP_BODY_DURATION" +msgstr "재생 시간" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "사용 시간" +msgid "IDS_ST_POP_SET" +msgstr "설정" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "태그 추가" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "태그" -msgid "IDS_IV_POP_ADDED" -msgstr "추가되었습니다" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "댓글 추가" -msgid "IDS_IV_BODY_ANY" -msgstr "모든 종류" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "주변 디바이스를 사용하여 다른 디바이스에서 내 미디어 파일을 볼 수 있습니다." -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "사용 가능" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "동영상 파일은 얼굴 태그 기능을 지원하지 않으므로 인물정보를 포함하지 않습니다." -msgid "IDS_IV_BODY_BASIC" -msgstr "기본" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "DRM으로 보호되어 있어 이미지를 공유할 수 없습니다." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "발신자 이미지" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "파일을 열 수 없습니다." -msgid "IDS_IV_BODY_COUNT" -msgstr "횟수" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "업데이트 주기로 인해 표시된 날씨정보는 실제 날씨와 다를 수 있습니다." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "생성 날짜" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "클립보드에 복사한 개인 컨텐츠는 새로운 컨텐츠를 추가하는 데 사용할 수 있습니다. 새로운 컨텐츠는 자동으로 숨겨지지 않습니다." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "화면" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "이미지가 너무 작습니다." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "태그 이름을 입력하세요" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "날짜 정보는 다른 태그가 보이는 경우에만 표시합니다." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "입력된 내용이 없습니다" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "잘 나온 사진을 선택하려면 썸네일 사진을 길게 누르세요." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "실행" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "슬라이드쇼 설정" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "파일 형식" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "홈 화면 및 잠금화면의 배경화면 설정" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "파일 위치" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "이 사진을 %s 님의 연락처 이미지로 설정할까요?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "전송" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "연락처 이미지로 설정" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "홈 화면 배경화면" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "보내는 중..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "불가능" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "디바이스 선택" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "개인" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD 카드를 분리하였습니다." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "간격" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "승인되지 않았습니다." -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "이미지 파일이 바르지 않습니다" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "위치 없음" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "위도" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "태그된 얼굴이 없습니다. 사진에서 얼굴을 태그하세요." -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "위치" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "인식된 얼굴이 없습니다." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "잠금화면" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "저장공간이 부족합니다. 일부 항목을 삭제하세요." -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "경도" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "네트워크에 연결하지 못하였습니다." msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "최대 글자 수(%d개)를 초과하였습니다" +msgstr "최대 글자 수(%d)에 도달하였습니다." -msgid "IDS_IV_BODY_N_A" -msgstr "N/A" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "바르지 않은 이미지 파일입니다." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "태그 추가" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "플래시 사용됨" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "허가가 거부되었습니다" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "지원되지 않는 파일 형식입니다." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "가능" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "입력된 내용이 없습니다." -msgid "IDS_IV_BODY_PRINT" -msgstr "인쇄" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "태그 이름을 입력하세요." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "블루투스로 인쇄" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "날씨 태그를 보려면 날씨 배경화면에서 자동 새로고침을 실행하세요." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "해상도" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "다운로드 완료" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "권한 유효 상태" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "베스트 포토" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD 카드가 제거되었습니다" +msgid "IDS_IV_POP_ADDED" +msgstr "추가하였습니다." -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "기기 선택" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "설명 쓰기" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "서버 이름" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "모션 기능 사용" -msgid "IDS_IV_OPT_SET_AS" -msgstr "설정" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "즐겨찾기 해제" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "홈 화면 및 잠금화면의 배경화면 설정" +msgid "IDS_IV_OPT_TRIM" +msgstr "잘라내기" -msgid "IDS_IV_OPT_SHARE" -msgstr "공유" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "얼굴 태그" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "태그 버디" + +msgid "IDS_IV_OPT_TAG" +msgstr "태그" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "슬라이드쇼 시작" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "슬라이드쇼" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "시간 경과 후 횟수 계산" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "슬라이드쇼" -msgid "IDS_IV_OPT_TRIM" -msgstr "잘라내기" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "항목 표시" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "제한 없음" +msgid "IDS_IV_OPT_SHARE" +msgstr "공유" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "유효 횟수" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "오른쪽으로 회전" -msgid "IDS_IV_BODY_VENDOR" -msgstr "판매자" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "왼쪽으로 회전" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "태그 제거" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "새로고침" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "블루투스로 인쇄" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "수동 감지" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "홈 및 잠금화면 배경" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "숨긴 항목" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "길찾기" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "파일 전송" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "다시 표시 안 함" +msgid "IDS_IV_OPT_ERASER" +msgstr "지우개" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "두 지점을 길게 누른 후 디바이스를 앞뒤로 기울여 화면을 축소하거나 확대하세요" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "날씨 태그 편집" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "태그 편집" + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "설명 편집" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "설명 삭제" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "클립보드에 복사" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "연결정보" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "클라우드" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "얼굴 인식 사진 공유" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "베스트 페이스" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "동영상 파일로" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "이미지 파일로" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "애니메이션 포토" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "날씨 태그 추가" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "이름 추가" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "설명 추가" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "슬라이드쇼 음악" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "사운드&샷 사진 공유" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "다음으로 설정" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "사진 전송 대상" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "공유할 연락처 선택" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "재생\n속도" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "잠금화면 배경" msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "기울이기에 대해 알아보기" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "홈 배경화면" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "날씨 태그 편집" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "고속 연속 촬영 사진 편집" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "사용 가능한 디바이스" + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "모든 앨범" -msgid "IDS_IV_OPT_TAG" -msgstr "태그" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "태그 추가" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "홈 및 잠금화면 배경" +msgid "IDS_IV_BUTTON_STOP" +msgstr "중지" -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "모션 기능 사용" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "찾기" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "홈 화면 및 잠금화면" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "내 미디어 파일을 주변 디바이스와 공유할 수 있습니다." -msgid "IDS_IV_BODY_CROP" -msgstr "잘라내기" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "%s 외 %d명과 함께" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "홈 화면" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "%s 님과 함께" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "잠금화면" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "화이트밸런스" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "왼쪽으로 회전" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "날씨" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "오른쪽으로 회전" +msgid "IDS_IV_BODY_WEATHER" +msgstr "날씨" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "수동 감지" +msgid "IDS_IV_BODY_VENDOR" +msgstr "판매자" -msgid "IDS_IV_BODY_ME" -msgstr "나" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "유효 횟수" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "태그 편집" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "제한 없음" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "태그 삭제" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "사진을 불러올 수 없습니다." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "시간 경과 후 횟수 계산" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "날씨 위젯에서 날씨정보를 가져오는 기능을 지원하지 않는 디바이스이므로 현재 기록된 날씨정보는 직접 수정이 필요합니다." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "인물의 정보를 보려면 얼굴을 누르세요." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "두 지점을 길게 누른 후 디바이스를 앞뒤로 기울여 화면을 축소하거나 확대하세요." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "화창한 날" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "눈 오는 날" msgid "IDS_IV_BODY_SHARE_VIA" msgstr "공유" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "보내지 않음" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "서버 이름" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "얼굴 인식 사진 공유" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "자를 이미지 영역을 선택하세요." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "얼굴 태그" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "선택한 영역을 인쇄합니다." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "이미지뷰어" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "선택한 영역을 배경화면으로 적용합니다." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "선택한 영역을 연락처 사진으로 적용합니다." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "권한 유효 상태" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "해상도" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "즐겨찾기에서 제거" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "비오는 날" + +msgid "IDS_IV_BODY_PRINT" +msgstr "인쇄" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "가능" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "사람" + +msgid "IDS_IV_BODY_N_A" +msgstr "N/A" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "태그 없음" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "태그 추가" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "주변 기기" +msgstr "주변 디바이스" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "잘라낼 이미지 영역을 선택하세요" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "내 디바이스" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "선택한 영역에 배경이미지가 적용됩니다" +msgid "IDS_IV_BODY_MODEL" +msgstr "모델" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "선택한 영역이 인쇄됩니다" +msgid "IDS_IV_BODY_ME" +msgstr "나" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "내 미디어 파일을 주변 기기와 공유할 수 있습니다" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "제조사" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "선택한 영역의 연락처 사진에 적용됩니다" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "경도" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "잠금화면" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "위치" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "위치" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "위치" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "위치" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "위도" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "%s에서" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "간격" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "개인" + +msgid "IDS_IV_BODY_IN" +msgstr "확대" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "불가능" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "홈 화면" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "홈 화면 및 잠금화면" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "전송" + +msgid "IDS_IV_BODY_FLASH" +msgstr "플래시" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "파일 이름" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "파일 위치" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "파일 형식" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "노출 시간" -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "실행" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "위치 태그를 보려면 [카메라]에서 [GPS 태그]를 실행하세요." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "날씨 태그를 보려면 날씨 위젯에서 자동 새로고침을 실행하세요." + +msgid "IDS_IV_BODY_DURATION" +msgstr "간격" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM 정보" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "다시 보지 않기" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "다시 묻지 않기" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "화면" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "추가 날짜" + +msgid "IDS_IV_BODY_CROP" +msgstr "자르기" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "새 태그 추가" + +msgid "IDS_IV_BODY_COUNT" +msgstr "횟수" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "흐린 날" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "맑은 밤" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "연락처 이미지" + +msgid "IDS_IV_BODY_BASIC" +msgstr "기본" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "사용 가능" + +msgid "IDS_IV_BODY_AUTO" +msgstr "자동" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "일치하는 색상 테마를 애플리케이션에 적용" + +msgid "IDS_IV_BODY_APERTURE" msgstr "조리개" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "방향" +msgid "IDS_IV_BODY_ANY" +msgstr "모든 종류" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "제조사" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "즐겨찾기에 추가" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "초점 거리" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "사용 시간" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "방향" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "최대 글자 수에 도달하였습니다." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "모델" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "완료 안 됨" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "이름 추가" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "발신자 이미지로 설정" +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "편집" + +msgid "IDS_ST_BODY_DATE" +msgstr "날짜" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "계정" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "다운로드" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "사진을 Dropbox에 업로드하면 사진이 표시됩니다." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "다운로드 중..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "사진 추가" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "즐겨찾는 사진으로 태그하면 여기에 표시됩니다." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "얼굴 인식을 제거할까요?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "이름 지정" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "%s 님으로 확인" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "사진 배치" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "추가된 사진 %d장" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "앨범 추가를 취소합니다." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "다운로드를 시작하는 중..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "저장공간이 부족합니다. 일부 항목을 삭제하세요." + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "개인 저장공간" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "여기로 이동하세요." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "이미지를 추가하려면 누르세요." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "동일한 파일이 있습니다." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "항목을 삭제합니다." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "사진을 Facebook에 업로드하면 사진이 표시됩니다." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "문자가 바르지 않습니다." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "수동" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "오류" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "진행 중..." + +msgid "IDS_ST_BODY_OK" +msgstr "확인" + +msgid "IDS_ST_SK_RENAME" +msgstr "이름 변경" + +msgid "IDS_COM_BODY_NONE" +msgstr "설정 안 함" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d개 선택" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "디바이스 저장공간" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD 카드" + +msgid "IDS_ST_BODY_SPEED" +msgstr "속도" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "배경음악" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1초" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3초" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5초" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "저장 위치" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "파일 크기" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "앨범 1개를 삭제합니다." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "빛바랜 사진" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "반투명" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "광채" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "변경사항 저장" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "변경사항을 저장할까요?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "저장 안 함" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "저장" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "빈티지" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "햇빛" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "오래된 사진" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "복고풍" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "흑백" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "세피아" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "안개" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "조명" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "노란 불빛" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "선명하게" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "스케치" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "색상반전" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "유화" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "포스터" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "만화" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "팝아트" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "매직펜" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "차단 목록에 추가하였습니다." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "회전" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "디바이스에 저장공간이 부족합니다. [설정] > [전원 및 저장공간] > [저장공간]에서 일부 파일을 삭제한 후 다시 시도하세요." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "슬라이드 전환 간격" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "슬라이드 전환 간격" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "연락처 사진" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "설정 안 함" + +msgid "IDS_IV_OPT_EDIT" +msgstr "편집" + +msgid "IDS_IV_OPT_RENAME" +msgstr "이름 변경" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "다음으로 설정" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "다운로드" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "이름 변경" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "이름 변경" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "이름 변경" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "대상 폴더에 동일한 이름의 파일이 있습니다." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "대체" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "다음으로 설정" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "홈 배경화면" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "잠금화면 배경" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "홈 & 잠금 배경화면" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "상세정보" + +msgid "IDS_IV_BODY_DATE" +msgstr "날짜" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "이미지를 저장할 수 없음" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "디바이스에 저장공간(%dMB)이 부족합니다." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "SD 카드에 저장공간(%dMB)이 부족합니다." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "일부 파일을 삭제한 후 다시 시도하세요." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "이미지 저장" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "디바이스에 저장공간(%dMB 남음)이 부족하여 항목을 SD 카드에 저장합니다." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "SD 카드에 저장공간(%dMB 남음)이 부족하여 항목을 디바이스에 저장합니다." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "이미지를 삭제합니다." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "중지" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "삭제" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "오류" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "영역 선택" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "완료" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "항목을 불러오지 못하였습니다." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "반전" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "완료" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "취소" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "반전" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "[갤러리]를 열 수 없습니다." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "불러오는 중..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "불러오는 중..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "불러오지 못하였습니다." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "이미지 불러오는 중..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "저장 안 함" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "다운로드할 수 없음" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "[모바일 데이터]가 해제된 상태입니다. Wi-Fi 네트워크에 연결하거나 [모바일 데이터]를 실행한 후 다시 시도하세요." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Do not send" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1초" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d초" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "효과" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "효과" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "왼쪽으로 밀어내기" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "잠깐 흐려지기" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "인식된 얼굴이 없습니다" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "확대" diff --git a/res/po/lt.po b/res/po/lt.po old mode 100755 new mode 100644 index 1be418e..676e226 --- a/res/po/lt.po +++ b/res/po/lt.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Pridėti prie pradž." +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Privatus" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Automatinis" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Pervardyti" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Šis vaizdo įrašas bus ištrintas." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Failo pavadinimas jau naudojamas" + +msgid "IDS_ST_BODY_OFF" +msgstr "Išjungta" + +msgid "IDS_COM_BODY_DONE" +msgstr "Atlikta" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Blykstė" +msgid "IDS_COM_SK_STOP" +msgstr "Stabdyti" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s išjungta šioje programoje. Norėdami įjungti šią funkciją, eikite į skirtuką %2$s, pasirinkite funkciją ir šią programą." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "Gerai" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Atlikta" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Atšaukti" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Įvesti pavadinimą" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Nėra vardo" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Yra tik vienas albumas." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Galite pasirinkti iki %d elementų." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Išsami informacija" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Trinti" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Ar trinti?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Atšaukti" + +msgid "IDS_IV_POP_DELETED" +msgstr "Ištrinta." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Mėgstamiausias" + +msgid "IDS_IV_SK_SAVE" +msgstr "Išsaug." + +msgid "IDS_IV_POP_SAVED" +msgstr "Išsaugota." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Nustatymai" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Dydis" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Nežinomas" + +msgid "IDS_IV_SK_YES" +msgstr "Taip" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Kopijuoti į iškarpinę" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Židinio nuotolis" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Įjungti blykstę" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Išjungti blykstę" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Vaizdų žiūryklė" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Baltos spalvos balansas" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Visi paveikslėliai" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Autom." +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Padėtis" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Kurti žymą" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Pasirinkti paveikslėlį" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Balt. sp. bal." +msgid "IDS_MP_BODY_DURATION" +msgstr "Trukmė" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Apskaičiuotas laikas" +msgid "IDS_ST_POP_SET" +msgstr "Nustatyta" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Prid. žymą" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Žymos" -msgid "IDS_IV_POP_ADDED" -msgstr "Pridėta" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Pridėti koment." -msgid "IDS_IV_BODY_ANY" -msgstr "Bet kuris" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Peržiūrėkite mediją kituose įrenginiuose naudodami įrenginius netoliese." -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Galimi panaudojimai" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Vaizdo įrašų failuose nėra informacijos apie asmenį, nes jie nepalaiko veido žymėjimo funkcijos." -msgid "IDS_IV_BODY_BASIC" -msgstr "Pagrindinis" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Neįmanoma bendrinti šio vaizdo. Jis saugomas DRM." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Skambintojo vaizdas" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Negalima atidaryti failo." -msgid "IDS_IV_BODY_COUNT" -msgstr "Skaičiuoti" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Įrašyta informacija apie orus gali skirtis nuo tikrųjų oro sąlygų dėl informacijos atnaujinimo intervalo." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Sukūrimo data" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Į iškarpinę nukopijuotą asmeninį turinį galima naudoti naujam turiniui kurti. Jūsų naujas turinys gali būti neslepiamas automatiškai." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Ekranas" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Vaizdas per mažas." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Įveskite žymos pavadinimą" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Datos informacija rodoma tik tada, kai matomos kitos žymos." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Įrašas tuščias" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Jei norite pasirinkti geriausias nuotraukas, bakstelėkite ir laikykite miniatiūras." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Vykdyti" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Skaidrių rodymo nustatymai" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Failo formatas" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Nustatyti pradžios ir užrakinimo ekrano foną" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Failo vieta" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Nustatyti šią nuotrauką kaip %s skambintojo ID?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Persiuntimas" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Nustatyti kaip skambintojo ID" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Pradžios ekrano fonas" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Siunčiama..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Neįmanoma" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Pasirinkite įrenginį" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Atskiras" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "Išimta SD kortelė." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Intervalas" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Leidimas atmestas." -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Neteisingas paveikslėlio failas" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Nėra vietos" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Platuma" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Veidų nepažymėta. Pažymėkite veidus paveikslėlyje" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Vietos" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Neaptikti jokie veidai." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Ekrano užrakin. fonas" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Nepakanka atminties. Ištrinkite kai kuriuos elementus" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Ilguma" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Prisijungti prie tinklo nepavyko." msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Pasiektas didžiausias simbolių skaičius (%d)" +msgstr "Pasiektas didžiausias simbolių skaičius (%d)." -msgid "IDS_IV_BODY_N_A" -msgstr "Netaikoma" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Neteisingas paveikslėlio failas." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Nauja gairė" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Naud. blykstė" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Leidimas atmestas" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Nepalaikomas failo formatas." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Įmanoma" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Įrašas tuščias." -msgid "IDS_IV_BODY_PRINT" -msgstr "Spausdinti" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Įveskite žymos pavadinimą." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Spausdinti per „Bluetooth“" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Įjunkite automatinio atnaujinimo funkciją orų ekrano fone, kad matytumėte orų žymas." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Raiška" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Atsisiuntimas baigtas" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Teisių būsena" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Geriausia nuotrauka" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "Išimta SD kortelė" +msgid "IDS_IV_POP_ADDED" +msgstr "Pridėta." -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Pasirinkite įrenginį" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Įrašykite antraštę" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Serverio pavadinimas" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Naudoti judesį" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Nustatyti kaip" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Neįtraukta į mėgstamiausiųjų sąrašą" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Nustatyti pradžios ir užrakinimo ekrano foną" +msgid "IDS_IV_OPT_TRIM" +msgstr "Nukirpti" -msgid "IDS_IV_OPT_SHARE" -msgstr "Dalytis" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Žymėti veidą" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Žymėjimas" + +msgid "IDS_IV_OPT_TAG" +msgstr "Žyma" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Pradėti skaidrių rodymą" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "Skaidrių demonstravimas" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Laiko skaičiavimas" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Skaidrių rodymas" -msgid "IDS_IV_OPT_TRIM" -msgstr "Nukirpti" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Rodyti elementus" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Neribota" +msgid "IDS_IV_OPT_SHARE" +msgstr "Dalytis" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Galiojimas" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Sukti į dešinę" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Tiekėjas" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Sukti į kairę" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Pašalinti žymą" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Naujinti" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Spausdinti per „Bluetooth“" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Nustatyti rankiniu būdu" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Pradžios ir užrakinimo ekranų fonas" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Paslėpti elementai" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Gauti nurodymus" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "Failo perkėlimas" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Daugiau nerodyti" +msgid "IDS_IV_OPT_ERASER" +msgstr "Trintukas" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Padėkite du pirštus ant ekrano ir pakreipkite įrenginį pirmyn bei atgal norėdami sumažinti arba padidinti ekraną" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Redaguoti orų žymą" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Redag.žymą" + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Redaguoti antraštę" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Trinti antraštę" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Kopijuoti į iškarpinę" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Ryšio informacija" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Debesis" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Bičiulio nuotraukos bendrinimas" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Gera veido išr." + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Kaip vaizdo įrašų failai" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Kaip paveikslėlių failai" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Animuota nuotrauka" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Pridėti orų žymą" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Pridėti vardą" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Pridėti antraštę" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Skaidrių rodymo muzika" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Dalytis gars. ir nuotr." + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Nustatyti kaip" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Siųsti šią nuotrauką" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Pasirinkite norimą bendrinti adresatą" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Leidimo greitis" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Ekrano užrakin. fonas" msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Apie pakreipimą" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Pradžios ekrano fonas" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Redaguoti orų žymą" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Redg. nepertr. fotogr." + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Galimi įrenginiai" + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "Visi albumai" -msgid "IDS_IV_OPT_TAG" -msgstr "Žyma" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Prid. žymą" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Pradžios ir užrakinimo ekranų fonas" +msgid "IDS_IV_BUTTON_STOP" +msgstr "Stab." -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Naudoti judesį" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Skenuoti" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Pradžios ir užrakinimo ekranai" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Galite pasidalyti medijos failais su kitais įrenginiais, naudodami netoliese esančius įrenginius." -msgid "IDS_IV_BODY_CROP" -msgstr "Apkarpyti" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Su %s ir %d kitais (-ų)" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Pradžios ekranas" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Su %s" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Užrakinimo ekranas" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Baltos spalvos balansas" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Sukti į kairę" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Orai" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Sukti į dešinę" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Oras" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Nustatyti rankiniu būdu" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Tiekėjas" -msgid "IDS_IV_BODY_ME" -msgstr "Aš" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Galiojimas" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Redag.žymą" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Neribota" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Pašalinti žymą" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Neįmanoma įkelti nuotraukos." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Laiko skaičiavimas" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Jei norite peržiūrėti informaciją apie žmones, bakstelėkite veidus." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Padėkite du pirštus ant ekrano ir pakreipkite įrenginį pirmyn bei atgal norėdami sumažinti arba padidinti ekraną." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Saulėta diena" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Snieguota diena" msgid "IDS_IV_BODY_SHARE_VIA" msgstr "Bendrinti per" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Nesiųsti" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Serverio pavadinimas" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Bičiulio nuotraukos bendrinimas" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Pasirinkite sritį, kad apkarpytumėte nuotrauką." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Veido sekimas" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Pasirinkta sritis bus atspausdinta." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Vaizdų žiūryklė" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Pasirinkta sritis bus pritaikyta ekrano fonui." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Pasirinkta sritis bus pritaikyta adresato nuotraukai." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Teisių būsena" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Raiška" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Pašalinti iš parankinių" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Lietinga diena" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Spausdinti" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Įmanoma" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Žmonės" + +msgid "IDS_IV_BODY_N_A" +msgstr "Netaikoma" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Nėra žymos" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Nauja gairė" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" msgstr "Įrenginiai netoliese" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Pasirinkite sritį, kad apkarpytumėte nuotrauką" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Mano įrenginys" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Pasirinkta sritis bus pritaikyta ekrano fonui" +msgid "IDS_IV_BODY_MODEL" +msgstr "Modelis" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Pasirinkta sritis bus atspausdinta" +msgid "IDS_IV_BODY_ME" +msgstr "Aš" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Galite pasidalyti medijos failais su kitais įrenginiais, naudodami netoliese esančius įrenginius" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Gamintojas" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Pasirinkta sritis bus pritaikyta adresato nuotraukai" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Ilguma" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Užrakinimo ekranas" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Vieta" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Vieta" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Vietos" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Vieta" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Platuma" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "%s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Intervalas" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Atskiras" + +msgid "IDS_IV_BODY_IN" +msgstr "Artinti" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Neįmanoma" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Pradžios ekranas" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Pradžios ir užrakinimo ekranai" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Persiuntimas" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Efektų meniu" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Failo pavadinimas" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Failo vieta" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Failo formatas" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "Išlaik. laikas" -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Vykdyti" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Jei norite matyti buvimo vietos žymas, fotoaparato nustatymuose suaktyvinkite GPS žymas." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Įjunkite automatinio atnaujinimo funkciją orų valdiklyje, kad galėtumėte peržiūrėti orų žymas." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Trukmė" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM informacija" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Daugiau nerodyti" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Daugiau neklausti" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Ekranas" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Sukūrimo data" + +msgid "IDS_IV_BODY_CROP" +msgstr "Apkarpyti" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Kurti žymą" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Skaičiuoti" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Debesuota diena" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Giedra naktis" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Skambintojo vaizdas" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Pagrindinis" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Galimi panaudojimai" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Automatinis" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Taikyti atitinkančią spalvų temą programoms." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Diafragma" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Padėtis" +msgid "IDS_IV_BODY_ANY" +msgstr "Bet kuris" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Gamintojas" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Įtraukti į Parankinius" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Židinio nuotolis" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Apskaičiuotas laikas" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Padėtis" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Pasiektas didžiausias simbolių skaičius." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Modelis" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Nepavyko" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Pridėti vardą" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Nustatyti kaip skambintojo ID" +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Redaguoti" + +msgid "IDS_ST_BODY_DATE" +msgstr "Data" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Paskyros" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Atsisiųsti" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Įkėlus nuotraukas į „Dropbox“, bus rodomi elementai." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Atsisiunčiama..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Pridėti paveikslėlių" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Pažymėjus jums patinkančias nuotraukas, bus rodomos nuotraukos." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Pašalinti veidų tapatybės nustatymą?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Priskirti vardą" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Patvirtinti kaip %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Išdėstymas" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "Pridėta nuotraukų: %d" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Albumas bus atšauktas." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Pradeda siųsti..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Nepakanka atminties. Ištrinkite kai kuriuos elementus" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Privati saugykla" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Vilkti čia." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Bakstelėkite ir pridėkite vaizdų." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Failas jau yra." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Šis elementas bus ištrintas." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Kai įkelsite nuotraukų į „Facebook“, bus rodomi elementai." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Netinkamas simbolis." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Rankinis" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Apdorojama..." + +msgid "IDS_ST_BODY_OK" +msgstr "Gerai" + +msgid "IDS_ST_SK_RENAME" +msgstr "Pervardyti" + +msgid "IDS_COM_BODY_NONE" +msgstr "Nėra" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "Pasirinkta: %d" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Įrenginio atmintis" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD kortelė" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Greitis" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Foninė muzika" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 sek." + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 sek." + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 sek." + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Saugojimo vieta" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Failo dydis" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 albumas bus ištrintas." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgija" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Sulieti" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Nedidelis blizgesys" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Išsaugoti pakeitimus" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Išsaugoti pakeitimus ar panaikinti?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Naikinti" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Išsaugoti" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Senoviškas" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Saulėta" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Sena nuotrauka" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Pilki tonai" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Tamsiai rusvas" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Išblukusios spalvos" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Šviesa žemyn" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Geltonas spindesys" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Paryškinti" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Eskizas" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Priešingos spalvos" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Aliejiniai dažai" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Plakato efektas" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Animacinis filmukas" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Spalvų keitimas" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Stebuklingas pieštukas" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Įtrauktas į blokuojamųjų sąrašą." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Sukti" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Įrenginio atmintyje nepakanka vietos. Eikite į skirtuką Nustatymai > Maitinimas ir saugykla > Saugykla, tada ištrinkite kelis failus ir bandykite dar kartą." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Skaidrės intervalas" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Skaidrės intervalas" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Adresato nuotrauka" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Nėra" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Redaguoti" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Pervardyti" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Nustatyti kaip" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Atsisiųsti" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Pervardyti" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Pervardyti" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Pervard." + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Paskirties aplanke failas tokiu pavadinimu jau yra." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Pakeisti" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Nustatyti kaip" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Pradžios ekrano fonas" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Užrakinimo ekrano fonas" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Pradžios/užrakinimo ekr. fonai" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Išsami informacija" + +msgid "IDS_IV_BODY_DATE" +msgstr "Data" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Neįmanoma išsaugoti vaizdo" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Jūsų įrenginio atmintyje nepakanka vietos (%d MB)." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Jūsų SD kortelėje nėra pakankamai vietos (%d MB)." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Ištrinkite kelis failus ir bandykite dar." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Išsaugoti vaizdą" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Jūsų įrenginio atmintyje nepakanka vietos (liko %d MB). Šis elementas bus išsaugotas jūsų SD kortelėje." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Jūsų SD kortelėje nepakanka vietos (liko %d MB). Šis elementas bus išsaugotas įrenginio atmintyje." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Šis vaizdas bus ištrintas." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Stabdyti" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Trinti" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Klaida" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Pasirinkti sritį" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Atlikta" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Nepavyko įkelti šio elemento." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negatyvas" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "ATLIKTA" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ATŠAUKTI" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negatyvas" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Neįmanoma atidaryti galerijos." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Įkeliama..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Įkeliama..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Įkelti nepavyko." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Įkeliamas paveikslėlis..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Panaik." + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Neįmanoma atsisiųsti" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobilieji duomenys išjungti. Prisijunkite prie „Wi-Fi“ tinklo arba įjunkite mobiliuosius duomenis ir pabandykite dar kartą." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Nesiųsti" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 sekundė" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d sek." + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Efektas" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Efektai" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Srautas" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Išblukimas" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Veidas neaptiktas" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Didinti mastelį" diff --git a/res/po/lv.po b/res/po/lv.po old mode 100755 new mode 100644 index 8938384..8e5915d --- a/res/po/lv.po +++ b/res/po/lv.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Pievienot sākumam" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Privāts" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Automātiski" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Pārdēvēt" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Šis videoklips tiks izdzēsts." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Faila nosaukums jau tiek lietots" + +msgid "IDS_ST_BODY_OFF" +msgstr "Izslēgts" + +msgid "IDS_COM_BODY_DONE" +msgstr "Gatavs" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Zibspuldze" +msgid "IDS_COM_SK_STOP" +msgstr "Apturēt" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "Funkcija %1$s šajā programmā ir deaktivizēta. Lai aktivizētu šo funkciju, atveriet %2$s, izvēlieties šo funkciju un pēc tam izvēlieties šo programmu." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "Labi" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Gatavs" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Atcelt" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Ievadiet nosaukumu" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Nav vārda" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Izveidots tikai viens albums." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Varat izvēlēties līdz pat %d objektiem." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Dati" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Dzēst" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Vai dzēst?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Atcelt" + +msgid "IDS_IV_POP_DELETED" +msgstr "Izdzēsts." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Izlase" + +msgid "IDS_IV_SK_SAVE" +msgstr "Saglabāt" + +msgid "IDS_IV_POP_SAVED" +msgstr "Saglabāts." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Iestatījumi" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Lielums" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Nezināms" + +msgid "IDS_IV_SK_YES" +msgstr "Jā" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Kopēt starpliktuvē" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Fokusa attālums" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Zibspuldze iesl." -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Zibspuldze izslēgta" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Attēlu skatītājs" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Baltā balanss" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Visi attēli" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Autom." +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Orientācija" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Izv. atz." +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Atlasīt attēlu" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Baltā balanss" +msgid "IDS_MP_BODY_DURATION" +msgstr "Ilgums" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Uzkrāts laiks" +msgid "IDS_ST_POP_SET" +msgstr "Iestatīt" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Piev. atz." +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Atzīmes" -msgid "IDS_IV_POP_ADDED" -msgstr "Pievienots" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Pievien. koment." -msgid "IDS_IV_BODY_ANY" -msgstr "Jebkurš" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Skatīt multivides saturu citās ierīcēs, izmantojot tuvumā esošās ierīces." -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Atlikušās lietošanas reizes" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Videofailos nav informācijas par personām, jo tie neatbalsta sejas atzīmēšanas funkciju." -msgid "IDS_IV_BODY_BASIC" -msgstr "Pamata" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Nevar kopīgot šo attēlu. To aizsargā DRM." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Zvanītāja attēls" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Nevar atvērt failu." -msgid "IDS_IV_BODY_COUNT" -msgstr "Skaits" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Atjaunināšanas intervāla dēļ reģistrētā laika prognoze var atšķirties no faktiskās laika prognozes." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Izveidošanas datums" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Uz starpliktuvi kopēto personisko saturu var izmantot, lai izveidotu jaunu saturu. Jaunais saturs var netikt automātiski paslēpts." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Displejs" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Šis attēls ir par mazu." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Ievadiet atzīmes nosaukumu" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Datuma informācija tiek parādīta, tikai ja ir redzamas citas atzīmes." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Ieraksts nav norādīts" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Pieskarieties sīktēliem un turiet tos, lai izvēlētos vislabākos fotoattēlus." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Izpildīt" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Slaidrādes iestatījumi" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Faila formāts" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Iestatīt sākuma ekrāna fona attēlu un bloķēt ekrānu" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Faila atrašanās vieta" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Vai iestatīt attēlu kā %s zvanītāja ID?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Pārsūtīšana" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Iestatīt kā zvanītāja ID" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Sāk.ekrān.fona attēls" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Sūta..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Nav iespējams" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Atlasīt ierīci" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Individuāls" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD karte ir izņemta." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Intervāls" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Atļauja liegta." -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Nederīgs attēla fails" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Nav atrašanās vietas" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Platums" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Nav atzīmēta neviena seja. Atzīmējiet attēlā sejas" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Atrašanās vietas" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Nav noteikta neviena seja." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Bloķēt ekr. fona att." +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Nepietiek atmiņas. Izdzēsiet dažus vienumus" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Garums" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Tīkla savienojums neizdevās." msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Sasniegts maksimālais rakstzīmju skaits (%d)" +msgstr "Sasniegts maksimālais rakstzīmju skaits (%d)." -msgid "IDS_IV_BODY_N_A" -msgstr "Nav pieejams" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Nederīgs attēla fails." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Jauna atzīme" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Izmant. zibsp." -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Atļauja liegta" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Faila formāts netiek atbalstīts." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Iespējams" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Ieraksts nav norādīts." -msgid "IDS_IV_BODY_PRINT" -msgstr "Drukāt" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Ievadiet atzīmes nosaukumu." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Drukāt, izmantojot Bluetooth" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Lai skatītu laika ziņu atzīmes, aktivizējiet laika ziņu fona attēla automātisko atsvaidzināšanu." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Izšķirtspēja" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Lejupielāde pabeigta" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Pareizais statuss" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Labākais fotoattēls" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD karte ir izņemta" +msgid "IDS_IV_POP_ADDED" +msgstr "Pievienots." -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Atlasīt ierīci" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Rakstiet parakstu" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Servera nosaukums" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Lietot kustību" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Iestatīt kā" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Nav izlase" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Iestatīt sākuma ekrāna fona attēlu un bloķēt ekrānu" +msgid "IDS_IV_OPT_TRIM" +msgstr "Apgriezt" -msgid "IDS_IV_OPT_SHARE" -msgstr "Koplietot" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Atzīmēt seju" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Draugu atzīmēšana" + +msgid "IDS_IV_OPT_TAG" +msgstr "Atzīme" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Sākt slaidrādi" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "Slaidrāde" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Skaits ar laika uzskaiti" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Slaidrāde" -msgid "IDS_IV_OPT_TRIM" -msgstr "Apgriezt" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Rādīt objektus" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Neierobežots" +msgid "IDS_IV_OPT_SHARE" +msgstr "Koplietot" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Derīgums" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Pagriezt pa labi" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Piegādātājs" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Pagriezt pa kreisi" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Noņemt atzīmi" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Atsvaidzināt" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Drukāt, izmantojot Bluetooth" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Noteikt manuāli" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Sākuma un bloķēšanas ekrāna fona attēls" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Paslēptie objekti" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Iegūt virzienus" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "Failu pārsūtīšana" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Nerādīt vēlreiz" +msgid "IDS_IV_OPT_ERASER" +msgstr "Dzēšgumija" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Lai samazinātu vai palielinātu ekrānu, pieskarieties diviem punktiem un turiet tos, pēc tam sasveriet ierīci uz priekšu un atpakaļ" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Rediģēt laika progn." + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Red. atz." + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Rediģēt parakstu" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Dzēst parakstu" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Kopēt starpliktuvē" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Savienojuma dati" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Draugu fotoattēlu kopīgošana" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Labākā seja" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Kā video failus" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Kā attēlu failus" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Animēts fotoattēls" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Piev. laika ziņu atzīmi" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Pievienot vārdu" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Pievienot parakstu" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Slaidrādes mūzika" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Kop. skaņu un fotoatt." + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Iestatīt kā" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Sūtīt šo attēlu uz" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Izvēlieties kontaktu, ko kopīgot" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Demonstrēšanas ātrums" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Bloķēt ekr. fona att." msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Informācija par sasvēršanu" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Sāk.ekrān.fona attēls" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Rediģēt laika progn." + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Rediģ. sērijveida foto" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Pieejamās ierīces" + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "Visi albumi" -msgid "IDS_IV_OPT_TAG" -msgstr "Atzīme" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Piev. atz." -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Sākuma un bloķēšanas ekrāna fona attēls" +msgid "IDS_IV_BUTTON_STOP" +msgstr "Apt." -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Lietot kustību" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Meklēt" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Sākuma un bloķēšanas ekrāni" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Savu multividi varat kopīgot ar citām ierīcēm, izmantojot tuvumā esošo ierīču funkciju." -msgid "IDS_IV_BODY_CROP" -msgstr "Apgriezt" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Ar %s un %d citiem" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Sākuma ekrāns" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Ar %s" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Bloķēšanas ekrāns" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Baltā balanss" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Pagriezt pa kreisi" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Laika prognoze" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Pagriezt pa labi" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Laiks" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Noteikt manuāli" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Piegādātājs" -msgid "IDS_IV_BODY_ME" -msgstr "Mans" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Derīgums" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Red. atz." +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Neierobežots" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Noņemt atzīmi" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Nevar ielādēt fotoattēlu." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Skaits ar laika uzskaiti" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Lai skatītu informāciju par personām, pieskarieties sejām." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Lai samazinātu vai palielinātu ekrānu, pieskarieties diviem punktiem un turiet tos, pēc tam sasveriet ierīci uz priekšu un atpakaļ." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Saulaina diena" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Sniegaina diena" msgid "IDS_IV_BODY_SHARE_VIA" msgstr "Koplietot, izmantojot" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Nesūtīt" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Servera nosaukums" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Draugu fotoattēlu kopīgošana" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Izvēlieties laukumu, lai apgrieztu attēlu." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Seju atpaz." +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Izvēlētais laukums tiks izdrukāts." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Attēlu skatītājs" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Izvēlētais laukums tiks lietots fona attēlam." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Izvēlētais laukums tiks lietots kontakta attēlam." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Pareizais statuss" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Izšķirtspēja" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Izņemt no izlases" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Lietaina diena" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Drukāt" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Iespējams" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Personas" + +msgid "IDS_IV_BODY_N_A" +msgstr "Nav pieejams" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Nav atzīmes" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Jauna atzīme" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" msgstr "Tuvumā esošās ierīces" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Izvēlieties laukumu, lai apgrieztu attēlu" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Mana ierīce" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Izvēlētais laukums tiks lietots fona attēlam" +msgid "IDS_IV_BODY_MODEL" +msgstr "Modelis" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Izvēlētais laukums tiks izdrukāts" +msgid "IDS_IV_BODY_ME" +msgstr "Mans" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Savu multividi varat kopīgot ar citām ierīcēm, izmantojot tuvumā esošo ierīču funkciju" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Ražotājs" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Izvēlētais laukums tiks lietots kontakta attēlam" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Garums" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Bloķēšanas ekrāns" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Atrašanās vieta" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Atr.vieta" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Atrašanās vietas" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Atrašanās vieta" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Platums" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "%s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Intervāls" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Individuāls" + +msgid "IDS_IV_BODY_IN" +msgstr "Tuvināt" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Nav iespējams" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Sākuma ekrāns" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Sākuma un bloķēšanas ekrāni" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Pārsūtīšana" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Flash izvēlne" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Faila nosaukums" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Faila atrašanās vieta" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Faila formāts" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "Ekspoz. laiks" -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Izpildīt" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Programmā Kamera aktivizējiet GPS atzīmes, lai redzētu atrašanās vietas atzīmes." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Lai skatītu laika prognozes atzīmes, laika prognozes logrīkā iespējojiet automātisko atsvaidzināšanu." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Ilgums" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM informācija" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Nerādīt vēlreiz" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Vairs nejautāt" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Displejs" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Izveidošanas datums" + +msgid "IDS_IV_BODY_CROP" +msgstr "Apgriezt" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Izv. atz." + +msgid "IDS_IV_BODY_COUNT" +msgstr "Skaits" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Mākoņaina diena" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Skaidra nakts" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Zvanītāja attēls" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Pamata" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Atlikušās lietošanas reizes" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Auto." + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Lietojiet programmām saskaņotu krāsu motīvu." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Atvērums" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Orientācija" +msgid "IDS_IV_BODY_ANY" +msgstr "Jebkurš" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Ražotājs" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Pievienot izlasei" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Fokusa attālums" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Uzkrāts laiks" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Orientācija" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Sasniegts maksimālais rakstzīmju skaits." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Modelis" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Neizdevās" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Pievienot vārdu" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Iestatīt kā zvanītāja ID" +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Rediģēt" + +msgid "IDS_ST_BODY_DATE" +msgstr "Datums" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Konti" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Lejupielāde" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Pēc attēlu augšupielādes pakalpojumā Dropbox, tiks parādīti objekti." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Ielādē..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Pievienot attēlus" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Pēc tam, kad atzīmēsit attēlus kā izlases attēlus, tie tiks parādīti." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Vai noņemt sejas identifikāciju?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Piešķirt vārdu" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Apstiprināt kā %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Izkārtojums" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "Pievienoti %d attēli" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Albums tiks atcelts." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Sāk lejupielādi..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Nepietiek atmiņas. Izdzēsiet dažus vienumus" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Privātā krātuve" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Velciet šeit." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Pieskarieties, lai pievienotu attēlus." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Fails jau pastāv." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Šis objekts tiks izdzēsts." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Pēc attēlu augšupielādes pakalpojumā Facebook, tiks parādīti objekti." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Nederīga rakstzīme." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Manuāli" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Apstrādā..." + +msgid "IDS_ST_BODY_OK" +msgstr "Labi" + +msgid "IDS_ST_SK_RENAME" +msgstr "Pārdēvēt" + +msgid "IDS_COM_BODY_NONE" +msgstr "Nav" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "Izvēlēts: %d" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Ierīces krātuve" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD karte" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Ātrums" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Fona mūzika" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 sek." + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 sek." + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 sek." + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Krātuves atrašanās vieta" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Faila lielums" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "Tiks izdzēsts 1 albums." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostaļģija" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Izplūdums" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Viegls spīdums" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Saglabāt izmaiņas" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Vai saglabāt jūsu izmaiņas vai atmest tās?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Atmest" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Saglabāt" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Saulgozis" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Vecs fotoattēls" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Pelēktoņi" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sēpija" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Blāvas krāsas" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Griestu lampa" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Dzeltens mirdzums" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Padarīt asāku" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Skice" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Apgrieztas krāsas" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Eļļas krāsa" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Plakāts" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Karikatūra" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Popārts" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Maģiskā pildspalva" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Pievienots bloķēto sarakstam." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Pagriezt" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Ierīces krātuvē nepietiek vietas. Atveriet Iestatījumi > Enerģija un krātuve > Krātuve, izdzēsiet dažus failus un mēģiniet vēlreiz." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Slaida intervāls" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Slaida intervāls" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Kontakta attēls" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Nav" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Rediģēt" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Pārdēvēt" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Iestatīt kā" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Lejupielādēt" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Pārdēvēt" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Pārdēvēt" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Pārdēvēt" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Mērķa mapē jau ir fails ar šādu nosaukumu." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Aizstāt" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Iestatīt kā" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Sākuma ekrāna fona attēls" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Bloķēšanas ekrāna fona attēls" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Sāk. un bloķ. ekr. fona attēli" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Dati" + +msgid "IDS_IV_BODY_DATE" +msgstr "Datums" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Nevar saglabāt attēlu" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Ierīces krātuvē nepietiek vietas (%d MB)." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "SD kartē nepietiek vietas (%d MB)." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Izdzēsiet dažus failus un mēģiniet vēlreiz." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Saglabāt attēlu" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Ierīces krātuvē nepietiek vietas (atlikuši %d MB). Šis objekts tiks saglabāts SD kartē." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "SD kartē nepietiek vietas (atlikuši %d MB). Šis objekts tiks saglabāts ierīces krātuvē." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Šis attēls tiks izdzēsts." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Beigt" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Dzēst" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Kļūda" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Izvēlēties apgabalu" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Gatavs" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Neizdevās ielādēt šo objektu." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negatīvs" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "GATAVS" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ATCELT" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negatīvs" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Nevar atvērt galeriju." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Ielādē..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Ielādē..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Ielāde neizdevās." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Ielādē attēlu..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Atmest" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Nevar lejupielādēt" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobilie dati ir izslēgti. Izveidojiet savienojumu ar Wi-Fi tīklu vai ieslēdziet mobilos datus un mēģiniet vēlreiz." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Nesūtīt" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 sekunde" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d sekundes" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Efekts" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Efekti" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Plūsma" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Izgaišana" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Neviena seja nav noteikta" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Tuvināt" diff --git a/res/po/mk.po b/res/po/mk.po old mode 100755 new mode 100644 index f440132..0807495 --- a/res/po/mk.po +++ b/res/po/mk.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Додај дома" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Приватно" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Автоматски" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Преименувај" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Видеото ќе се избрише." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Името на фајлот се користи." + +msgid "IDS_ST_BODY_OFF" +msgstr "Исклучено" + +msgid "IDS_COM_BODY_DONE" +msgstr "Извршено" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Блиц" -msgid "IDS_CAM_BODY_ISO" -msgstr "ISO" +msgid "IDS_COM_SK_STOP" +msgstr "Запри" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Копирај во посредната меморија" +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s е исклучено за оваа апликација. За да ја вклучите оваа функција, одете во %2$s, изберете ја функцијата, па изберете ја апликацијата." -msgid "IDS_CAM_BODY_FLASH_ON" -msgstr "Вкл. блиц" +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Исклучен блиц" +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Готово" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Баланс на бело" +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Откажи" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Автоматски" +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Внеси име" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Напр.озн." +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Нема име" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Баланс на бело" +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Има само еден албум." -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Вкупно траење" +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Може да изберете најмногу %d записи." -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Додај озн." +msgid "IDS_IV_OPT_DETAILS" +msgstr "Детали" -msgid "IDS_IV_POP_ADDED" -msgstr "Додадено" +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Избриши" -msgid "IDS_IV_BODY_ANY" -msgstr "Кој било" +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Да се избрише?" -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Можност за употреба" +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Откажи" -msgid "IDS_IV_BODY_BASIC" -msgstr "Основно" +msgid "IDS_IV_POP_DELETED" +msgstr "Избришано." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Слика за повикувач" +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Омилени страници" -msgid "IDS_IV_BODY_COUNT" -msgstr "Број" +msgid "IDS_IV_SK_SAVE" +msgstr "Сочувај" -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Датум на создавање" +msgid "IDS_IV_POP_SAVED" +msgstr "Меморирано." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Екран" +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Опции" -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Внеси име на ознаката" +msgid "IDS_IV_BODY_SIZE" +msgstr "Големина" -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Записот е празен" +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Непознато" -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Изврши" +msgid "IDS_IV_SK_YES" +msgstr "Да" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Формат на фајлот" +msgid "IDS_CAM_BODY_ISO" +msgstr "ISO" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Локација на фајлот" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Фокусна должина" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Препраќање" +msgid "IDS_CAM_BODY_FLASH_ON" +msgstr "Вкл. блиц" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Заднина на осн. екран" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Прегледник на слики" -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Невозможно" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Сите слики" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Индивидуално" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Поставеност" -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Интервал" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Избери слика" -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Неважечки сликовен фајл" +msgid "IDS_MP_BODY_DURATION" +msgstr "Траење" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Географска широчина" +msgid "IDS_ST_POP_SET" +msgstr "Постави" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Локации" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Ознаки" -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Закл.задн. на екранот" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Додај коментар" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Географска должина" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Гледајте ги своите медиуми на други уреди користејќи ги блиските уреди." -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Достигнат е максималниот број знаци (%d)" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Видео фајловите не содржат информации за луѓето бидејќи не ја поддржуваат функцијата за ознака за лице." -msgid "IDS_IV_BODY_N_A" -msgstr "Нема" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Не може да се сподели сликава. Заштитена е со DRM." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Нова ознака" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Не може да се отвори фајлот." -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Нема дозвола" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Запишаните информации за времето може да се разликуваат од фактичкото време поради интервалот за ажурирање." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Возможно" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Личните содржини копирани во посредната меморија може да се користат за правење нови содржини. Новите содржини може да не се скријат автоматски." -msgid "IDS_IV_BODY_PRINT" -msgstr "Печати" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Сликата е многу мала." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Печати преку Bluetooth" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Информациите за датумот се прикажуваат само кога се видливи други ознаки." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Резолуција" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Допрете и држете ги сликичките за да ги изберете најдобрите фотографии." -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Состојба на правата" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Опции за слајдовите" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD-картичката е извадена" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Постави заднина за основниот екран и заклучи екран" + +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Да се постави оваа слика како идентитет на повикувач за %s?" + +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Постави како идентификација на повикувач" + +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Се праќа..." msgid "IDS_IV_POP_SELECT_DEVICE" msgstr "Избери уред" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Име на серверот" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD-картичката е извадена." -msgid "IDS_IV_OPT_SET_AS" -msgstr "Постави како" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Нема дозвола." -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Постави заднина за основниот екран и заклучи екран" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Нема локација" -msgid "IDS_IV_OPT_SHARE" -msgstr "Сподели" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Нема означено лица. Означете лица на сликата" -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "Слајдови" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Не се откриени лица." -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Временско користење" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Нема доволно меморија. Избришете некој запис" -msgid "IDS_IV_OPT_TRIM" -msgstr "Отсечи" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Неуспешно поврзување со мрежата." -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Неограничено" +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Достигнат е максималниот број знаци (%d)." -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Валидност" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Неважечки сликовен фајл." -msgid "IDS_IV_BODY_VENDOR" -msgstr "Продавач" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Со блиц" -msgid "IDS_IV_OPT_FILE_TRANSFER" -msgstr "Пренос на фајлови" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Форматот на фајл не е поддржан." -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Не прикажувај веќе" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Записот е празен." -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Допрете и држете на две точки, а потоа навалете го уредот назад или напред за да го намалите или зголемите екранот" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Внеси име на ознаката." -msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" -msgstr "Дознајте за навалувањето" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Вклучете автоматско обновување во временската заднина за да видите временски ознаки." -msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "Сите албуми" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Преземањето заврши" -msgid "IDS_IV_OPT_TAG" -msgstr "Ознака" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Најдобра фотографија" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Заднина на почетниот и екранот за заклучување" +msgid "IDS_IV_POP_ADDED" +msgstr "Додадено." + +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Напишете натпис" msgid "IDS_IV_OPT_USE_MOTION" msgstr "Користи движења" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Почетен и екрани за заклучување" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Неомилено" -msgid "IDS_IV_BODY_CROP" -msgstr "Потсечи" +msgid "IDS_IV_OPT_TRIM" +msgstr "Отсечи" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Почетен екран" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Означи лице" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Заклучување на екранот" +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Другар за ознаки" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Ротирај лево" +msgid "IDS_IV_OPT_TAG" +msgstr "Ознака" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Почни слајдови" + +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "Слајдови" + +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Слајдови" + +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Покажи записи" + +msgid "IDS_IV_OPT_SHARE" +msgstr "Сподели" msgid "IDS_IV_OPT_ROTATE_RIGHT" msgstr "Ротирај десно" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Ротирај лево" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Отстрани ознака" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Обнови" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Печати преку Bluetooth" + msgid "IDS_IV_OPT_MANUALLY_DETECT" msgstr "Откриј рачно" -msgid "IDS_IV_BODY_ME" -msgstr "Мене" +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Заднина на почетниот и екранот за заклучување" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Скриени записи" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Означи насоки" + +msgid "IDS_IV_OPT_FILE_TRANSFER" +msgstr "Пренос на фајлови" + +msgid "IDS_IV_OPT_ERASER" +msgstr "Гумичка" + +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Изм.временска ознака" msgid "IDS_IV_OPT_EDIT_TAG" msgstr "Изм.озн." -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Отстрани ознака" +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Измени натпис" -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "Подели преку" +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Избриши натпис" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Не праќај" +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Копирај во посредната меморија" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Информ. за врската" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Облак" msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" msgstr "Другарско делење фотки" -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Ознаки за лица" +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Најдобро лице" -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Прегледник на слики" +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Како видео фајлови" -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "Уреди во близина" +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Како фајлови со слики" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Изберете подрачје за отсекување на сликата" +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Анимирана фотографија" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Избраната област ќе се примени на заднината" +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Додај временска ознака" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Избраната област ќе се испечати" +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Додај име" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Додај натпис" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Музика за слајдови" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Сподели слики со звук" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Постави како" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Прати ја сликава на" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Изберете контакт за делење" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Брзина на емитување" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Закл.задн. на екранот" + +msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" +msgstr "Дознајте за навалувањето" + +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Заднина на осн. екран" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Изм.временска ознака" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Измени рафална слика" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Достапни уреди" + +msgid "IDS_IV_HEADER_ALL_ALBUMS" +msgstr "Сите албуми" + +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Додај озн." + +msgid "IDS_IV_BUTTON_STOP" +msgstr "Запри" + +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Скенирај" msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Може да ги споделувате своите медиуми со други уреди користејќи ги блиските уреди" +msgstr "Може да ги споделувате своите медиуми со други уреди користејќи ги блиските уреди." -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Избраната област ќе биде примената за сликата на контактот" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Со %s и уште %d" -msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "Време на експ." +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Со %s" -msgid "IDS_CAM_BODY_APERTURE" -msgstr "Бленда" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Баланс на бело" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Поставеност" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Време" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Производител" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Време" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Фокусна должина" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Продавач" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Поставеност" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Валидност" -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Модел" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Неограничено" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Додај име" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Не може да се вчита фотографијата." -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Постави како идентификација на повикувач" +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Временско користење" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Допирајте лица за да видите информации за луѓето." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Допрете и држете на две точки, а потоа навалете го уредот назад или напред за да го намалите или зголемите екранот." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Сончев ден" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Снежен ден" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Сподели преку" + +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Име на серверот" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Изберете подрачје за отсекување на сликата." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Избраната област ќе се испечати." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Избраната област ќе се примени како заднина." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Избраната област ќе биде примената за сликата на контактот." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Состојба на правата" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Резолуција" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Отстрани од Омилени" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Дождлив ден" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Печати" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Возможно" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Луѓе" + +msgid "IDS_IV_BODY_N_A" +msgstr "Нема" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Нема ознака" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Нова ознака" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "Уреди во близина" + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Мој уред" + +msgid "IDS_IV_BODY_MODEL" +msgstr "Модел" + +msgid "IDS_IV_BODY_ME" +msgstr "Мене" + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Производител" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Географска должина" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Заклучување на екранот" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Локација" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Место" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Локации" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Локација" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Географска широчина" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "Во %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Интервал" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Индивидуално" + +msgid "IDS_IV_BODY_IN" +msgstr "Зголеми" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Невозможно" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Почетен екран" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Почетен и екрани за заклучување" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Препраќање" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Анимирано мени" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Име на фајлот" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Локација на фајлот" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Формат на фајлот" + +msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" +msgstr "Време на експ." + +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Изврши" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Вклучете ознаки GPS во Камерата за да ги видите ознаките за локација." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Вклучете автоматско обновување во временскиот виџет за да видите временски ознаки." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Траење" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "Инфо. за DRM" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Не прикажувај веќе" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Не прашувај повторно" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Екран" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Датум на создавање" + +msgid "IDS_IV_BODY_CROP" +msgstr "Потсечи" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Напр.озн." + +msgid "IDS_IV_BODY_COUNT" +msgstr "Број" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Облачен ден" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Јасна ноќ" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Слика за повикувач" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Основно" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Можност за употреба" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Автоматски" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Доделете тема на бои што одговара на апликациите." + +msgid "IDS_IV_BODY_APERTURE" +msgstr "Бленда" + +msgid "IDS_IV_BODY_ANY" +msgstr "Кој било" + +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Додај во Омилени" + +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Вкупно траење" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Достигнат е максималниот број знаци." + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Неуспешно" + +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" + +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Измени" + +msgid "IDS_ST_BODY_DATE" +msgstr "Датум" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Сметки" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Преземи" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Откако ќе пратите слики на Dropbox, ќе се прикажат записите." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Се презема..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Додај слики" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Откако ќе означите слики како омилени, ќе се прикажат." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Да се отстрани идентификацијата на лица?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Додели име" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Потврди како %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Распоред" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "Додадени се %d слики" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Албумот ќе се откаже." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Почнува преземање..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Нема доволно меморија. Избришете некој запис" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Приватна меморија" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Довлечете тука." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Допрете за додавање слики." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Фајлот веќе постои." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Записот ќе се избрише." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Откако ќе пратите слики на Facebook, ќе се прикажат записите." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Погрешен знак." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Рачно" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Се обработува..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Преименувај" + +msgid "IDS_COM_BODY_NONE" +msgstr "Ништо" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d избрани" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Меморија на уредот" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD-картичка" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Брзина" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Музика во заднина" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 сек." + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 сек." + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 сек." + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Место за меморирање" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Големина на фајлот" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 албум ќе се избрише." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Носталгија" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Заматено" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Благ сјај" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Сочувај промени" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Да се сочуваат промените или да се отфрлат?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Отфрли" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Сочувај" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Гроздобер" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Сончева светлина" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Стара фотографија" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Ретро" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Сиви тонови" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Сепија" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Избледени бои" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Намалена светлина" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Жолт сјај" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Изостри" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Скица" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Инверзни бои" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Слика во масло" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Постеризирање" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Карикатура" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Поп-арт" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Волшебен молив" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Додај во блокирани." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Заврти" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Нема доволно место во меморијата на уредот. Одете во Поставки > Енергија и меморија > Меморија, избришете некој фајл и обидете се повторно." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Интервал на слајдовите" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Интервал на слајдовите" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Слика на контакт" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Ништо" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Измени" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Преименувај" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Постави како" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Преземи" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Преименувај" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Преименувај" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Преимен." + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Веќе постои фајл со ова име во одредишната папка." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Замени" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Одреди како" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Заднина на почетниот екран" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Задн. за екран за заклучување" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Задн.за почет.и екран за закл." + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Детали" + +msgid "IDS_IV_BODY_DATE" +msgstr "Датум" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Не може да се зачува сликата" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Нема доволно место (%d MB) во меморијата на уредот." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Нема доволно место (%d MB) на SD-картичката." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Избришете некој фајл и обидете се повторно." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Сочувај слика" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Нема доволно место (уште %d MB) во меморијата на уредот. Записот ќе се сочува на SD-картичката." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Нема доволно место (уште %d MB) во меморијата на SD-картичката. Записот ќе се сочува во меморијата на уредот." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Сликата ќе се избрише." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Запри" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Избриши" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Грешка" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Изберете подрачје" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Готово" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Неуспешно вчитување на ставката." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Негатив" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "ГОТОВО" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ОТКАЖИ" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Негатив" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Не може да се отвори Галерија." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Се вчитува..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Активирање..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Неуспешно вчитување." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Вчитување слика..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Отфрли" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Не може да се преземе" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Мобилните податоци се исклучени. Поврзете се со мрежа Wi-Fi или вклучете Мобилни податоци и обидете се повторно." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Не праќај" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 секунда" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d секунди" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Ефект" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Ефекти" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Проток" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Затемнување" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Не е откриено лице" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Приближување" diff --git a/res/po/nb.po b/res/po/nb.po old mode 100755 new mode 100644 index 9ca9f33..7acf658 --- a/res/po/nb.po +++ b/res/po/nb.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Legg til på startside" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Privat" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Auto" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Endre navn" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Denne videoen vil bli slettet." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Filnavnet er allerede i bruk." + +msgid "IDS_ST_BODY_OFF" +msgstr "Av" + +msgid "IDS_COM_BODY_DONE" +msgstr "Utført" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Fotolys" +msgid "IDS_COM_SK_STOP" +msgstr "Stopp" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s er deaktivert i denne appen. Du kan aktivere denne funksjonen ved å gå til %2$s, velge funksjonen og deretter velge denne appen." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "OK" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Avbryt" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Angi navn" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Ingen navn" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Det er bare ett album." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Du kan velge opptil %d elementer." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Detaljer" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Slett" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Slette?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Avbryt" + +msgid "IDS_IV_POP_DELETED" +msgstr "Slettet." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Favoritt" + +msgid "IDS_IV_SK_SAVE" +msgstr "Lagre" + +msgid "IDS_IV_POP_SAVED" +msgstr "Lagret." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Innstillinger" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Størrelse" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Ukjent" + +msgid "IDS_IV_SK_YES" +msgstr "Ja" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Kopier til utklippstavle" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Brennvidde" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Fotolys på" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Fotolys av" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Bildevisning" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Hvitbalanse" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Alle bilder" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Auto" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Orientering" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Oppr. tagg" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Velg bilde" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Hvitbalanse" +msgid "IDS_MP_BODY_DURATION" +msgstr "Varighet" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Akkumulert tid" +msgid "IDS_ST_POP_SET" +msgstr "Angi" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Legg til tagg" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Tagger" -msgid "IDS_IV_POP_ADDED" -msgstr "Lagt til" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Legg til komm." -msgid "IDS_IV_BODY_ANY" -msgstr "Alle" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Vis medier på andre enheter ved å bruke enheter i nærheten." -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Kan brukes antall ganger" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Videofiler inneholder ikke informasjon om personer siden de ikke støtter ansiktsmerkingsfunksjonen." -msgid "IDS_IV_BODY_BASIC" -msgstr "Grunnleggende" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Kan ikke dele dette bildet. Det er DRM-beskyttet." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Anropsbilde" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Kan ikke åpne fil." -msgid "IDS_IV_BODY_COUNT" -msgstr "Antall" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Den registrerte værinformasjonen kan være forskjellig fra det faktiske været på grunn av oppdateringsintervallet." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Opprettet dato" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Personlig innholdet som kopieres til utklippstavlen, kan brukes til å opprette nytt innhold. Det kan hende at det nye innholdet ikke automatisk skjules." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Skjerm" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Bildet er for lite." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Angi taggnavn" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Datoinformasjonen vises bare når andre tagger er synlige." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Oppføringen er tom" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Trykk på og hold miniatyrbildene for å velge de beste bildene." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Utfør" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Bildefremvisninginnstillinger" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Filformat" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Angi bakgrunn for startskjermbildet og låseskjermen." -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Filplassering" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Angi dette bilde som anrops-ID for %s?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Videresending" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Bruk som anrops-ID" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Startskjermbakgrunn" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Sender..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Umulig" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Velg enhet" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Individuell" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD-kort fjernet." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Intervall" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Tillatelse avslått." -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Ugyldig bildefil" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Ingen posisjon" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Breddegrad" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Ingen ansikter har blitt merket. Merk ansikter i bildet." -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Plasseringer" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Ingen ansikter gjenkjent." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Skjermlåsbakgrunn" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Ikke nok minne. Slett noen elementer." -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Lengdegrad" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Nettverkstilkobling mislyktes." msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Maksimalt antall tegn (%d) er nådd" +msgstr "Maksimalt antall tegn (%d) er nådd." -msgid "IDS_IV_BODY_N_A" -msgstr "Utilgjengelig" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Ugyldig bildefil." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Ny tagg" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Blits brukt" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Tillatelse avslått" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Filformatet støttes ikke." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Mulig" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Oppføringen er tom." -msgid "IDS_IV_BODY_PRINT" -msgstr "Skriv ut" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Angi taggnavn." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Skriv ut via Bluetooth" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Aktiver automatisk oppdatering i værbakgrunnsbildet for å se værtagger." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Oppløsning" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Nedlasting fullført" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Rettighetsstatus" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Beste bilde" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD-kort fjernet" +msgid "IDS_IV_POP_ADDED" +msgstr "Lagt til." -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Velg enhet" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Skriv inn tekst" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Servernavn" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Bruk bevegelse" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Bruk som" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Fjern favorittmarkering" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Angi bakgrunn for startskjerm og skjermlås" +msgid "IDS_IV_OPT_TRIM" +msgstr "Beskjær" -msgid "IDS_IV_OPT_SHARE" -msgstr "Del" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Merk ansikt" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Vennetagg" + +msgid "IDS_IV_OPT_TAG" +msgstr "Tagg" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Start bildefremvisning" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "Bildefremvisning" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Gjenværende tid" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Bildefremvisning" -msgid "IDS_IV_OPT_TRIM" -msgstr "Beskjær" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Vis elementer" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Ubegrenset" +msgid "IDS_IV_OPT_SHARE" +msgstr "Del" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Gyldighet" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Roter med klokken" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Leverandør" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Roter mot klokken" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Fjern tagg" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Oppdater" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Skriv ut via Bluetooth" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Oppdag manuelt" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Startskjerm- og låseskjermbakgrunn" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Skjulte elementer" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Hent veibeskrivelse" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "Filoverføring" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Ikke vis igjen" +msgid "IDS_IV_OPT_ERASER" +msgstr "Viskelær" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Trykk på og hold to punkter og vipp enheten bakover og fremover for å forminske eller forstørre skjermen" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Rediger værtagg" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Red. tagg" + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Rediger tekst" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Slett bildetekst" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Kopier til utklippstavle" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Tilkoblingsinfo." + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Nettsky" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Vennebildedeling" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Beste ansikt" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Som videofiler" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Som bildefiler" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Animert bilde" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Legg til værtagg" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Legg til navn" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Legg til tekst" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Musikk for bildefremvisning" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Del lyd og bilde-opptak" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Bruk som" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Send dette bildet til" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Velg kontakt å dele med" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Avspillingshastighet" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Låseskjermbakgrunn" msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Lær om vipping" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Startskjermbakgrunn" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Rediger værtagg" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Rediger bildeserie" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Tilgjeng. enheter" + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "Alle album" -msgid "IDS_IV_OPT_TAG" -msgstr "Tagg" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Legg til tagg" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Startskjerm- og skjermlåsbakgrunn" +msgid "IDS_IV_BUTTON_STOP" +msgstr "Stopp" -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Bruk bevegelse" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Søk" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Startskjerm og skjermlås" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Du kan dele medier med andre enheter ved å bruke Enheter i nærheten." -msgid "IDS_IV_BODY_CROP" -msgstr "Beskjær" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Med %s og %d andre" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Startskjerm" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Med %s" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Skjermlås" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Hvitbalanse" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Roter mot klokken" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Vær" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Roter med klokken" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Vær" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Oppdag manuelt" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Leverandør" -msgid "IDS_IV_BODY_ME" -msgstr "Meg" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Gyldighet" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Red. tagg" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Ubegrenset" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Fjern tagg" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Kan ikke laste bilde." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Gjenværende tid" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Trykk på ansikter for å vise informasjon om personene." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Trykk på og hold to punkter og vipp enheten bakover og fremover for å forminske eller forstørre skjermen." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Solskinnsdag" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Snøværsdag" msgid "IDS_IV_BODY_SHARE_VIA" msgstr "Del via" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Ikke send" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Servernavn" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Vennebildedeling" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Marker et område for å beskjære bildet." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Ansiktsmerking" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Det markerte området vil bli skrevet ut." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Bildevisning" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Det valgte området vil bli brukt som bakgrunnsbilde." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Det markerte området vil bli brukt som kontaktbilde." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Rettighetsstatus" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Oppløsning" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Ta bort fra favoritter" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Regnværsdag" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Skriv ut" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Mulig" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Mennesker" + +msgid "IDS_IV_BODY_N_A" +msgstr "Utilgjengelig" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Ingen tagg" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Ny tagg" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" msgstr "Enheter i nærheten" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Marker et område for å beskjære bildet" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Min enhet" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Det valgte området vil bli brukt som bakgrunnsbilde" +msgid "IDS_IV_BODY_MODEL" +msgstr "Modell" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Det markerte området vil bli skrevet ut" +msgid "IDS_IV_BODY_ME" +msgstr "MEG" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Du kan dele medier med andre enheter ved å bruke Enheter i nærheten" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Produsent" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Det markerte området vil bli brukt som kontaktbilde" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Lengdegrad" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Låseskjerm" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Posisjon" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Posisjon" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Posisjoner" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Posisjon" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Breddegrad" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "Om %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Intervall" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Individuell" + +msgid "IDS_IV_BODY_IN" +msgstr "Inn" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Umulig" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Startskjerm" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Startskjerm og låseskjerm" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Videresending" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Flash-meny" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Filnavn" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Filplassering" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Filformat" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "Eksponer.tid" -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Utfør" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Aktiver GPS-tagger i Kamera for å se posisjonstagger." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Aktiver automatisk oppdatering i værwidgeten for å se værtagger." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Varighet" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM-info" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Ikke vis igjen" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Ikke spør på nytt" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Skjerm" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Opprettet dato" + +msgid "IDS_IV_BODY_CROP" +msgstr "Beskjær" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Oppr. tagg" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Antall" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Overskyet dag" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Klar natt" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Anropsbilde" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Grunnleggende" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Kan brukes antall ganger" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Auto" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Bruk et passende fargetema for apper." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Blenderåpning" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Orientering" +msgid "IDS_IV_BODY_ANY" +msgstr "Alle" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Produsent" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Legg til i Favoritter" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Brennvidde" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Akkumulert tid" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Orientering" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Nådd maksimalt antall tegn." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Modell" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Mislykket" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Legg til navn" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Bruk som anrops-ID" +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Rediger" + +msgid "IDS_ST_BODY_DATE" +msgstr "Dato" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Kontoer" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Last ned" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Når du har lastet opp bilder til Dropbox, vises elementer." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Laster ned..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Legg til bilder" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Når du har tagget bilder som favoritter, vises bildene." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Fjerne ansiktsidentifikasjon?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Tildel navn" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Bekreft som %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Layout" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d bilder lagt til" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Albumet vil bli kansellert." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Starter nedlasting..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Ikke nok minne. Slett noen elementer." + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Privat lagring" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Dra hit." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Trykk for å legge til bilder." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Filen finnes allerede." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Dette elementet vil bli slettet." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Når du har lastet opp bilder til Facebook, vises elementer." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Ugyldig tegn." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Manuelt" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Behandler..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Endre navn" + +msgid "IDS_COM_BODY_NONE" +msgstr "Ingen" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d er valgt" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Enhetsminne" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD-kort" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Hastighet" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Bakgrunnsmusikk" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 sek" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 sek" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 sek" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Lagringssted" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Filstørrelse" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album blir slettet." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgi" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Gjør uskarp" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Myk glød" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Lagre endringer" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Lagre endringene dine eller forkaste dem?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Forkast" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Lagre" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Årgang" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Solskinn" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Gammelt bilde" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Gråskala" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sepia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Falmede farger" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Downlight" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Gul glød" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Skarpere" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Skisse" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Inverterte farger" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Oljemaling" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Lag plakat" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Tegnefilm" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Pop Art" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Magisk penn" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Lagt til i sperreliste." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Roter" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Det er ikke nok ledig plass i enhetsminnet. Gå til Innstillinger > Strøm og lagring > Lagring, slett noen filer, og prøv på nytt." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Bildeintervall" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Bildeintervall" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Kontaktbilde" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Ingen" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Rediger" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Endre navn" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Bruk som" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Last ned" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Endre navn" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Endre navn" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "End. nvn" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Det finnes allerede en fil med dette navnet i målmappen." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Erstatt" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Angi som" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Bakgrunn for startskjermbilde" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Bakgrunn for låseskjerm" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Startskj.- og låseskjermbakgr." + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Detaljer" + +msgid "IDS_IV_BODY_DATE" +msgstr "Dato" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Kan ikke lagre bilde" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Det er ikke nok ledig plass (%d MB) i enhetsminnet." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Det er ikke nok ledig plass (%d MB) på SD-kortet." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Slett noen filer, og prøv på nytt." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Lagre bilde" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Det er ikke nok ledig plass (%d MB gjenstår) i enhetsminnet. Dette elementet blir lagret på SD-kortet." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Det er ikke nok ledig plass (%d MB gjenstår) på SD-kortet. Dette elementet blir lagret i enhetsminnet." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Dette bildet vil bli slettet." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Stopp" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Slett" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Feil" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Velg område" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "OK" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Kunne ikke laste dette elementet." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negativ" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "FULLFØRT" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "AVBRYT" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negativ" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Kan ikke åpne Galleri." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Åpner..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Åpner..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Kunne ikke åpne." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Åpner bilde..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Forkast" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Kan ikke laste ned" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobildata er slått av. Koble til et Wi-Fi-nettverk, eller slå på mobildata, og prøv på nytt." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Ikke send" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 sekund" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d sekunder" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Effekt" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Effekter" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Flyt" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Fade" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Ingen ansikter gjenkjent" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Zoom inn" diff --git a/res/po/nl.po b/res/po/nl.po new file mode 100644 index 0000000..bd76beb --- /dev/null +++ b/res/po/nl.po @@ -0,0 +1,996 @@ +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Privé" + +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Naam wijzigen" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Deze video wordt verwijderd." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Bestandsnaam is al in gebruik." + +msgid "IDS_ST_BODY_OFF" +msgstr "Uit" + +msgid "IDS_COM_BODY_DONE" +msgstr "Gereed" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" + +msgid "IDS_CAM_BODY_FLASH" +msgstr "Flitser" + +msgid "IDS_COM_SK_STOP" +msgstr "Stoppen" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s is uitgeschakeld in deze applicatie. Als u deze functie wilt inschakelen, gaat u naar %2$s, selecteert u deze functie en daarna deze applicatie." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Gereed" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Annul." + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Geef de naam in" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Geen naam" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Er is slechts één album." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "U kunt maximaal %d items selecteren." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Gegevens" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Wissen" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Verwijderen?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Annuleer" + +msgid "IDS_IV_POP_DELETED" +msgstr "Verwijderd." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Favoriet" + +msgid "IDS_IV_SK_SAVE" +msgstr "Opslaan" + +msgid "IDS_IV_POP_SAVED" +msgstr "Opgeslagen." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Instellingen" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Grootte" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Onbekend" + +msgid "IDS_IV_SK_YES" +msgstr "Ja" + +msgid "IDS_CAM_BODY_ISO" +msgstr "ISO" + +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Focusafstand" + +msgid "IDS_CAM_BODY_FLASH_ON" +msgstr "Flitser aan" + +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Afbeeldingenviewer" + +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Alle foto's" + +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Richting" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Foto selecteren" + +msgid "IDS_MP_BODY_DURATION" +msgstr "Duur" + +msgid "IDS_ST_POP_SET" +msgstr "Ingesteld" + +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Tags" + +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Opmerk. toev." + +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Uw media bekijken op andere apparaten door apparaten in de buurt te gebruiken." + +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Videobestanden bevatten geen informatie over personen omdat ze de functie voor gezichttags niet ondersteunen." + +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Kan deze afbeelding niet delen. DRM-beveiliging van kracht." + +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Kan bestand niet openen." + +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Het opgenomen weerbericht kan afwijken van het werkelijke weer vanwege het update-interval." + +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "De persoonlijke inhoud die is gekopieerd naar het klembord, kan worden gebruikt voor het maken van nieuwe inhoud. Uw nieuwe inhoud wordt mogelijk niet automatisch verborgen." + +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Afbeelding is te klein." + +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "De datumgegevens worden alleen weergegeven wanneer andere tags zichtbaar zijn." + +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Tik op miniaturen en houd vast om de beste foto´s te selecteren." + +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Instellingen diashow" + +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Achtergrond instellen voor startscherm en vergrendelscherm" + +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Deze foto instellen als beller-id voor %s?" + +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Instellen als beller-id" + +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Verzenden..." + +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Apparaat selecteren" + +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD-kaart verwijderd." + +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Toestemming geweigerd." + +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Geen locatie" + +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Er zijn geen gezichten getagd. Tag gezichten in de foto." + +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Geen gezichten gedetecteerd." + +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Onvoldoende geheugen. Wis een aantal items." + +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Netwerkverbinding mislukt." + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Maximumaantal tekens (%d) bereikt." + +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Ongeldig afbeeldingsbestand." + +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Flits gebruikt" + +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Bestandsindeling niet ondersteund." + +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Geen gegevens." + +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Tagnaam ingeven." + +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Automatisch vernieuwen in weerachtergrond inschakelen om weertags te zien." + +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Downloaden voltooid" + +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Beste foto" + +msgid "IDS_IV_POP_ADDED" +msgstr "Toegevoegd." + +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Bijschrift maken" + +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Beweging gebruiken" + +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Favoriet opheffen" + +msgid "IDS_IV_OPT_TRIM" +msgstr "Bijsnijden" + +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Gezicht taggen" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Taghulp" + +msgid "IDS_IV_OPT_TAG" +msgstr "Tag" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Diashow starten" + +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "Diapresentatie" + +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Diashow" + +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Items weergeven" + +msgid "IDS_IV_OPT_SHARE" +msgstr "Delen" + +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Rechtsom draaien" + +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Linksom draaien" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Label verwijderen" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Vernieuwen" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Afdrukken via Bluetooth" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Handmatig detecteren" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Achtergrond voor start- en vergrendelscherm" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Verborgen items" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Routebeschrijving ophalen" + +msgid "IDS_IV_OPT_FILE_TRANSFER" +msgstr "Bestandsoverdracht" + +msgid "IDS_IV_OPT_ERASER" +msgstr "Gum" + +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Weertag bewerken" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Bewerk tag" + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Bijschrift bewerken" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Bijschrift verwijderen" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Kopiëren naar klembord" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Verbindingsgegevens" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Foto delen met vrienden" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Beste gezicht" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Als videobestanden" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Als afbeeldingsbestanden" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Geanimeerde foto" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Weertag toevoegen" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Naam toevoegen" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Bijschrift toevoegen" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Muziek diashow" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Foto'met geluid & opname delen" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Instellen als" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Foto verzenden naar" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Selecteer contact om te delen" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Afspeelsnelheid" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Achtergrond vergrendelscherm" + +msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" +msgstr "Informatie over draaibeweging" + +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Achtergrond startscherm" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Weertag bewerken" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Bewerk continu-opname" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Beschikb. apparaten" + +msgid "IDS_IV_HEADER_ALL_ALBUMS" +msgstr "Alle albums" + +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Tag toev." + +msgid "IDS_IV_BUTTON_STOP" +msgstr "Stop" + +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Scannen" + +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "U kunt uw media delen met andere apparaten door apparaten in de buurt te gebruiken." + +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Met %s en %d anderen" + +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Met %s" + +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Witbalans" + +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Weer" + +msgid "IDS_IV_BODY_WEATHER" +msgstr "Weer" + +msgid "IDS_IV_BODY_VENDOR" +msgstr "Leverancier" + +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Geldigheid" + +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Onbeperkt" + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Kan foto niet laden." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Speelduur" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "Het opgenomen weerbericht moet handmatig worden bewerkt. Het ontvangen van opgenomen weerberichten van de weerwidget wordt niet ondersteund door uw apparaat." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Tik op gezichten om informatie over mensen weer te geven." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Tik en houd vast op twee punten en kantel het apparaat heen en terug om het scherm te verkleinen/vergroten." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Zonnige dag" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Sneeuwdag" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Delen via" + +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Servernaam" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Selecteer een gebied om de foto bij te snijden." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Geselecteerd gebied wordt afgedrukt." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Geselecteerd gebied wordt toegepast op de achtergrond." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Geselecteerd gebied wordt toegepast op contactfoto." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Status rechten" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Resolutie" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Verwijderen uit favorieten" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Regenachtige dag" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Afdrukken" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Mogelijk" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Mensen" + +msgid "IDS_IV_BODY_N_A" +msgstr "N.v.t." + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Geen tag" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Nieuwe tag" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "Apparaten in de buurt" + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Mijn apparaat" + +msgid "IDS_IV_BODY_MODEL" +msgstr "Model" + +msgid "IDS_IV_BODY_ME" +msgstr "Ik" + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Fabrikant" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Lengtegraad" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Vergrendelscherm" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Locatie" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Locatie" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Locaties" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Locatie" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Breedtegraad" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "In %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Interval" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Individueel" + +msgid "IDS_IV_BODY_IN" +msgstr "In" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Niet mogelijk" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Startscherm" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Start- en vergrendelscherm" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Doorsturen" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Flashmenu" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Bestandsnaam" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Bestandslocatie" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Bestandsindeling" + +msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" +msgstr "Belicht.tijd" + +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Uitvoeren" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "GPS-tags in Camera inschakelen om locatietags weer te geven." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Automatisch vernieuwen in de weerwidget inschakelen om weertags te zien." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Duur" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM-info" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Niet meer tonen" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Niet meer vragen" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Display" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Datum gemaakt" + +msgid "IDS_IV_BODY_CROP" +msgstr "Bijsnijden" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Tag maken" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Aantal" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Bewolkte dag" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Heldere nacht" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Afbeelding beller" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Basis" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Aantal keer dat het gebruikt mag worden" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Auto" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Pas een bijpassend kleurenthema toe op applicaties." + +msgid "IDS_IV_BODY_APERTURE" +msgstr "Lensopening" + +msgid "IDS_IV_BODY_ANY" +msgstr "Alle" + +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Toevoegen aan favorieten" + +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Totale tijd" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Maximumaantal tekens bereikt." + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Mislukt" + +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" + +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Bewerken" + +msgid "IDS_ST_BODY_DATE" +msgstr "Datum" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Accounts" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Downloaden" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Nadat u foto's hebt geüpload naar Dropbox, worden items getoond." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Downloaden..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Foto´s toevoegen" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Foto´s worden weergegeven nadat u deze als favoriet hebt getagd." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Gezichtsidentificatie verwijderen?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Naam toewijzen" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Bevestigen als %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Lay-out" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d foto´s toegevoegd" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Het album wordt geannuleerd." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Download starten..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Onvoldoende geheugen. Wis een aantal items." + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Privé-opslag" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Hiernaartoe slepen." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Tik om afbeeldingen toe te voegen." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Bestand bestaat al." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Dit item wordt verwijderd." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Nadat u foto's hebt geüpload naar Facebook, worden items getoond." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Ongeldig teken." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Handmatig" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Verwerken..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Hernoemen" + +msgid "IDS_COM_BODY_NONE" +msgstr "Geen" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d geselecteerd" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Apparaatopslag" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD-kaart" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Snelheid" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Achtergrondmuziek" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 sec" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 sec" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 sec" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Opslaglocatie" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Bestandsgrootte" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album wordt verwijderd." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgia" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Vaag" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Zachte gloed" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Wijzigingen opslaan" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Uw wijzigingen opslaan of verwijderen?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Wissen" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Opslaan" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Vintage" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Zonlicht" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Oude foto" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Grijstint" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sepia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Vervaagde kleuren" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Downlight" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Gele gloed" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Scherper" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Schets" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Omgekeerde kleuren" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Olieverf" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Posterisatie" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Cartoon" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Popart" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Toverpen" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Toegevoegd aan blokkeerlijst." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Draaien" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Er is onvoldoende ruimte in uw apparaatopslag. Ga naar Instellingen > Energie en opslag > Opslag, verwijder een aantal bestanden en probeer het opnieuw." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Interval dia's" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Interval dia's" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Foto contact" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Geen" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Bewerk" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Naam wijzigen" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Instellen als" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Downloaden" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Naam wijzigen" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Naam wijzigen" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Hernoemen" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Er is al een bestand met deze naam in de bestemmingsmap." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Vervang" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Instellen als" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Achtergrond startscherm" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Achtergrond vergrendelen" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Achtergrond start/vergr.scherm" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Gegevens" + +msgid "IDS_IV_BODY_DATE" +msgstr "Datum" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Kan afbeelding niet opslaan" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Er is onvoldoende ruimte (%d MB) in uw apparaatopslag." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Er is onvoldoende ruimte (%d MB) op uw SD-kaart." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Verwijder een aantal bestanden en probeer het opnieuw." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Afbeelding opslaan" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Er is onvoldoende ruimte (%d MB over) in uw apparaatopslag. Dit item wordt opgeslagen op uw SD-kaart." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Er is onvoldoende ruimte (%d MB over) op de SD-kaart. Dit item wordt opgeslagen in uw apparaatopslag." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Deze afbeelding wordt verwijderd." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Stoppen" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Wissen" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Fout" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Gebied selecteren" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Gereed" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Kan dit item niet laden." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negatief" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "GEREED" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ANNULEREN" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negatief" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Kan Galerij niet openen." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Laden..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Laden..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Laden mislukt." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Afbeelding laden..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Verwijderen" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Kan niet downloaden" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobiele gegevens zijn uitgeschakeld. Maak verbinding met een Wi-Fi-netwerk of schakel Mobiele gegevens in en probeer het opnieuw." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Niet verzenden" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 seconde" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d seconden" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Effect" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Effecten" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Stroom" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Uitvloeien" + +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Inzoomen" + diff --git a/res/po/nl_NL.po b/res/po/nl_NL.po deleted file mode 100755 index 6ebeed9..0000000 --- a/res/po/nl_NL.po +++ /dev/null @@ -1,288 +0,0 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Toevoegen aan startpagina" - -msgid "IDS_CAM_BODY_AUTO" -msgstr "Automatisch" - -msgid "IDS_CAM_BODY_FLASH" -msgstr "Flitser" - -msgid "IDS_CAM_BODY_ISO" -msgstr "ISO" - -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Kopiëren naar klembord" - -msgid "IDS_CAM_BODY_FLASH_ON" -msgstr "Flitser aan" - -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Flitser uit" - -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Witbalans" - -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Auto" - -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Tag maken" - -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Witbalans" - -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Totale tijd" - -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Tag toev." - -msgid "IDS_IV_POP_ADDED" -msgstr "Toegevoegd" - -msgid "IDS_IV_BODY_ANY" -msgstr "Alle" - -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Aantal keer dat het gebruikt mag worden" - -msgid "IDS_IV_BODY_BASIC" -msgstr "Basis" - -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Afbeelding beller" - -msgid "IDS_IV_BODY_COUNT" -msgstr "Aantal" - -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Datum gemaakt" - -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Display" - -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Tagnaam ingeven" - -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Geen gegevens" - -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Uitvoeren" - -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Bestandsindeling" - -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Bestandslocatie" - -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Doorsturen" - -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Achtergrond startscherm" - -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Niet mogelijk" - -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Individueel" - -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Interval" - -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Ongeldig afbeeldingsbestand" - -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Breedtegraad" - -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Locaties" - -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Achtergrond vergrendelscherm" - -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Lengtegraad" - -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Maximumaantal tekens (%d) bereikt" - -msgid "IDS_IV_BODY_N_A" -msgstr "N.v.t." - -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Nieuwe tag" - -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Toestemming geweigerd" - -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Mogelijk" - -msgid "IDS_IV_BODY_PRINT" -msgstr "Afdrukken" - -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Afdrukken via Bluetooth" - -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Resolutie" - -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Status rechten" - -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD-kaart verwijderd" - -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Apparaat selecteren" - -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Servernaam" - -msgid "IDS_IV_OPT_SET_AS" -msgstr "Instellen als" - -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Achtergrond instellen voor startscherm en vergrendelscherm" - -msgid "IDS_IV_OPT_SHARE" -msgstr "Delen" - -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "Diapresentatie" - -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Speelduur" - -msgid "IDS_IV_OPT_TRIM" -msgstr "Bijsnijden" - -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Onbeperkt" - -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Geldigheid" - -msgid "IDS_IV_BODY_VENDOR" -msgstr "Leverancier" - -msgid "IDS_IV_OPT_FILE_TRANSFER" -msgstr "Bestandsoverdracht" - -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Niet meer tonen" - -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Tik en houd vast op twee punten en kantel het apparaat heen en terug om het scherm te verkleinen/vergroten" - -msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" -msgstr "Informatie over draaibeweging" - -msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "Alle albums" - -msgid "IDS_IV_OPT_TAG" -msgstr "Tag" - -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Achtergrond voor start- en vergrendelscherm" - -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Beweging gebruiken" - -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Start- en vergrendelscherm" - -msgid "IDS_IV_BODY_CROP" -msgstr "Bijsnijden" - -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Startscherm" - -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Vergrendelscherm" - -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Linksom draaien" - -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Rechtsom draaien" - -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Handmatig detecteren" - -msgid "IDS_IV_BODY_ME" -msgstr "Ik" - -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Bewerk tag" - -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Label verwijderen" - -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "Delen via" - -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Niet verzenden" - -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Foto delen met vrienden" - -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Gezichttags" - -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Afbeeldingenviewer" - -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "Apparaten dichtbij" - -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Selecteer een gebied om de foto bij te snijden" - -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Geselecteerd gebied wordt toegepast op de achtergrond" - -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Geselecteerd gebied wordt afgedrukt" - -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "U kunt uw media delen met andere apparaten door apparaten in de buurt te gebruiken" - -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Geselecteerd gebied wordt toegepast op contactfoto" - -msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "Belicht.tijd" - -msgid "IDS_CAM_BODY_APERTURE" -msgstr "Lensopening" - -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Richting" - -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Fabrikant" - -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Focusafstand" - -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Richting" - -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Model" - -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Naam toevoegen" - -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Instellen als beller-id" - -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Geen gezicht gedetecteerd" - diff --git a/res/po/pl.po b/res/po/pl.po old mode 100755 new mode 100644 index 7693d56..3fc84bf --- a/res/po/pl.po +++ b/res/po/pl.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Dodaj do ekr. startowego" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Prywatne" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Automatyczny" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Zmień nazwę" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Ten film wideo zostanie usunięty." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Nazwa pliku już w użyciu." + +msgid "IDS_ST_BODY_OFF" +msgstr "Wyłącz" + +msgid "IDS_COM_BODY_DONE" +msgstr "Gotowe" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Flesz" -msgid "IDS_CAM_BODY_ISO" -msgstr "ISO" +msgid "IDS_COM_SK_STOP" +msgstr "Stop" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Kopiuj do schowka" +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "Funkcja %1$s jest wyłączona w tej aplikacji. Aby ją włączyć, przejdź do opcji %2$s, wybierz tę funkcję, a następnie wybierz tę aplikację." -msgid "IDS_CAM_BODY_FLASH_ON" -msgstr "Flesz wł." +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Flesz Wył." +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Gotowe" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Balans bieli" +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Anuluj" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Auto" +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Wpisz nazwę" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Utw.etyk." +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Bez nazwy" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Balans bieli" +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Istnieje tylko jeden album." -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Łączny czas połączeń" +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Maksymalna liczba elementów, które można wybrać: %d." -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Dodaj etykietę" +msgid "IDS_IV_OPT_DETAILS" +msgstr "Szczegóły" -msgid "IDS_IV_POP_ADDED" -msgstr "Dodano" +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Usuń" -msgid "IDS_IV_BODY_ANY" -msgstr "Dowolny" +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Usunąć?" -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Dostępne zastosowania" +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Anuluj" -msgid "IDS_IV_BODY_BASIC" -msgstr "Podstawowy" +msgid "IDS_IV_POP_DELETED" +msgstr "Usunięto." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Zdjęcie kontaktu" +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Ulubione" -msgid "IDS_IV_BODY_COUNT" -msgstr "Liczba" +msgid "IDS_IV_SK_SAVE" +msgstr "Zapisz" -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Data utworzenia" +msgid "IDS_IV_POP_SAVED" +msgstr "Zapisano." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Wyświetlacz" +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Ustawienia" -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Wprowadź nazwę znacznika" +msgid "IDS_IV_BODY_SIZE" +msgstr "Rozmiar" -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Wpis jest pusty" +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Nieznane" -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Wykonaj" +msgid "IDS_IV_SK_YES" +msgstr "Tak" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Format pliku" +msgid "IDS_CAM_BODY_ISO" +msgstr "ISO" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Lokalizacja pliku" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Ogniskowa" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Przesyłanie" +msgid "IDS_CAM_BODY_FLASH_ON" +msgstr "Flesz wł." -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Tapeta ekranu start." +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Przeglądarka obrazów" -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Niemożliwe" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Wszystkie obrazy" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Osobiste" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Orientacja" -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Okres" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Wybierz obraz" -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Nieprawidłowy plik obrazu" +msgid "IDS_MP_BODY_DURATION" +msgstr "Czas trwania" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Szerokość geogr." +msgid "IDS_ST_POP_SET" +msgstr "Ustawiono" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Lokalizacje" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Etykiety" -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Tapeta ekranu blokady" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Dodaj koment." -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Długość geogr." +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Oglądaj swoje dane multimedialne na innych urządzeniach, korzystając z urządzeń w pobliżu." -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Osiągnięto maksymalną liczbę znaków (%d)" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Pliki wideo nie zawierają informacji o osobach, ponieważ nie obsługują funkcji etykiety twarzy." -msgid "IDS_IV_BODY_N_A" -msgstr "Brak" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Nie można udostępnić tego obrazu. Jest on chroniony za pomocą technologii DRM." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Nowa etykieta" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Nie można otworzyć pliku." -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Nie udzielono zezwolenia" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Zarejestrowane informacje o pogodzie mogą różnić się od rzeczywistej pogody w wyniku interwału uaktualnień." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Możliwe" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Zawartość osobistą skopiowaną do schowka można użyć do utworzenia nowej zawartości. Nowa zawartość może nie zostać ukryta automatycznie." -msgid "IDS_IV_BODY_PRINT" -msgstr "Drukuj" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Obraz jest zbyt mały." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Drukuj przez Bluetooth" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Informacje o dacie są wyświetlane tylko wtedy, gdy widoczne są inne etykiety." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Rozdzielczość" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Dotknij i przytrzymaj miniatury, aby wybrać najlepsze zdjęcia." -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Status uprawnienia" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Ustawienia pokazu slajdów" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "Wyjęto kartę pamięci" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Ustaw tapetę ekranu startowego i ekranu blokady" + +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Ustawić to zdjęcie jako identyfikator rozmówcy %s?" + +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Ustaw jako identyfikator rozmówcy" + +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Wysyłanie..." msgid "IDS_IV_POP_SELECT_DEVICE" msgstr "Wybierz urządzenie" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Nazwa serwera" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "Wyjęto kartę pamięci." -msgid "IDS_IV_OPT_SET_AS" -msgstr "Ustaw jako" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Nie udzielono zezwolenia." -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Ustaw tapetę ekranu startowego i ekranu blokady" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Brak lokalizacji" -msgid "IDS_IV_OPT_SHARE" -msgstr "Udostępnij" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Żadnych twarzy nie oznaczono etykietami. Oznacz twarze na zdjęciu" -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "Pokaz slajdów" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Nie wykryto twarzy." -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Licznik synchronizowany" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Brak pamięci. Usuń niektóre elementy" -msgid "IDS_IV_OPT_TRIM" -msgstr "Przytnij" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Błąd połączenia sieciowego" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Nieograniczony" +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Osiągnięto maksymalną liczbę znaków (%d)." -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Ważność" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Nieprawidłowy plik obrazu" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Dostawca" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Z lampą błysk." -msgid "IDS_IV_OPT_FILE_TRANSFER" -msgstr "Przesyłanie plików" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Nieobsługiwany format pliku." -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Nie wyświetlaj ponownie" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Wpis jest pusty." -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Dotknij i przytrzymaj w dwóch punktach, a następnie obróć urządzenie w jedną stronę i z powrotem, aby pomniejszyć lub powiększyć ekran" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Wprowadź nazwę znacznika." -msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" -msgstr "Poznaj funkcję obracania" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Włącz automatyczne odświeżanie na tapecie pogodowej, aby zobaczyć etykiety pogody." -msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "Wszystkie albumy" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Pobieranie zakończone" -msgid "IDS_IV_OPT_TAG" -msgstr "Etykieta" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Najlepsze zdjęcie" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Tapeta ekranu startowego i ekranu blokady" +msgid "IDS_IV_POP_ADDED" +msgstr "Dodano." + +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Napisz podpis" msgid "IDS_IV_OPT_USE_MOTION" msgstr "Użycie ruchu" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Ekran startowy i blokowania" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Usuń z Ulubionych" -msgid "IDS_IV_BODY_CROP" +msgid "IDS_IV_OPT_TRIM" msgstr "Przytnij" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Ekran startowy" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Oznaczanie twarzy" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Ekran blokady" +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Asystent etykiety" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Obróć w lewo" +msgid "IDS_IV_OPT_TAG" +msgstr "Etykieta" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Rozpocznij pokaz slajdów" + +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "Pokaz slajdów" + +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Pokaz slajdów" + +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Pokaż elementy" + +msgid "IDS_IV_OPT_SHARE" +msgstr "Udostępnij" msgid "IDS_IV_OPT_ROTATE_RIGHT" msgstr "Obróć w prawo" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Obróć w lewo" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Usuń etykietę" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Odśwież" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Drukuj przez Bluetooth" + msgid "IDS_IV_OPT_MANUALLY_DETECT" msgstr "Wykryj ręcznie" -msgid "IDS_IV_BODY_ME" -msgstr "Ja" +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Tapeta ekranu startowego i ekranu blokady" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Ukryte elementy" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Uzyskaj wskazówki dojazdu" + +msgid "IDS_IV_OPT_FILE_TRANSFER" +msgstr "Przesyłanie plików" + +msgid "IDS_IV_OPT_ERASER" +msgstr "Gumka" + +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Edytuj etyk. pogody" msgid "IDS_IV_OPT_EDIT_TAG" msgstr "Edytuj etyk." -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Usuń etykietę" +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Edytuj opis" -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "Udostępnij przez" +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Usuń opis" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Nie wysyłaj" +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Kopiuj do schowka" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Inform. o połączeniu" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Chmura" msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" msgstr "Udost. zdjęć znajomym" -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Oznacz twarz" +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Najl. wyraz tw." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Przeglądarka obrazów" +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Jako pliki wideo" -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "Urządzenia w pobliżu" +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Jako pliki obrazów" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Wybierz obszar przycięcia obrazu" +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Animowane zdjęcie" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Zaznaczony obszar będzie przeznaczony na tapetę" +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Dodaj etykietę pogody" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Zaznaczony obszar zostanie wydrukowany" +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Dodaj nazwę" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Dodaj opis" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Muzyka do pokazu slajdów" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Udost. zdj. dźw. i obr." + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Ustaw jako" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Wyślij ten obraz do" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Wybierz kontakt, który chcesz udostępnić" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Szybkość odtwarzania" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Tapeta ekranu blokady" + +msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" +msgstr "Poznaj funkcję obracania" + +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Tapeta ekranu start." + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Edytuj etyk. pogody" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Edytuj zdjęcie seryjne" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Dostępne urządzenia" + +msgid "IDS_IV_HEADER_ALL_ALBUMS" +msgstr "Wszystkie albumy" + +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Dodaj etykietę" + +msgid "IDS_IV_BUTTON_STOP" +msgstr "Stop" + +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Skanuj" msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Możesz udostępniać dane multimedialne innym urządzeniom, korzystając z urządzeń w pobliżu" +msgstr "Możesz udostępniać dane multimedialne innym urządzeniom, korzystając z urządzeń w pobliżu." -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Zaznaczony obszar będzie przeznaczony na obraz kontaktu" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "%s i innych: %d" -msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "Czas ekspoz." +msgid "IDS_IV_BODY_WITH_PS" +msgstr "%s" -msgid "IDS_CAM_BODY_APERTURE" -msgstr "Przysłona" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Balans bieli" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Orientacja" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Pogoda" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Producent" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Pogoda" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Ogniskowa" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Dostawca" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Orientacja" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Ważność" -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Model" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Nieograniczony" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Dodaj nazwę" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Nie można załadować zdjęcia." -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Ustaw jako identyfikator rozmówcy" +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Licznik synchronizowany" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Aby wyświetlić informacje o osobach, dotknij twarzy." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Dotknij i przytrzymaj w dwóch punktach, a następnie obróć urządzenie w jedną stronę i z powrotem, aby pomniejszyć lub powiększyć ekran." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Słonecznie" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Śnieżny dzień" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Udostępnij przez" + +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Nazwa serwera" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Wybierz obszar przycięcia obrazu." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Zaznaczony obszar zostanie wydrukowany." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Zaznaczony obszar będzie przeznaczony na tapetę." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Zaznaczony obszar będzie przeznaczony na obraz kontaktu." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Status uprawnienia" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Rozdzielczość" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Usuń z ulubionych" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Deszczowy dzień" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Drukuj" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Możliwe" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Osoby" + +msgid "IDS_IV_BODY_N_A" +msgstr "Brak" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Brak etykiety" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Nowa etykieta" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "Urządzenia w pobliżu" + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Moje urządzenie" + +msgid "IDS_IV_BODY_MODEL" +msgstr "Model" + +msgid "IDS_IV_BODY_ME" +msgstr "Ja" + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Producent" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Długość geogr." + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Ekran blokady" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Lokalizacja" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Lokaliz." + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Lokalizacje" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Lokalizacja" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Szerokość geogr." + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "W %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Okres" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Osobiste" + +msgid "IDS_IV_BODY_IN" +msgstr "Powiększ" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Niemożliwe" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Ekran startowy" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Ekran startowy i blokowania" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Przesyłanie" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Menu Flash" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Nazwa pliku" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Lokalizacja pliku" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Format pliku" + +msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" +msgstr "Czas ekspoz." + +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Wykonaj" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Aby użyć etykiet lokalizacji, włącz etykiety GPS w aplikacji Aparat." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Włącz automatyczne odświeżanie w widgecie pogodowym, aby zobaczyć etykiety pogody." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Czas trwania" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Nie wyświetlaj ponownie" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Nie pytaj ponownie" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Wyświetlacz" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Data utworzenia" + +msgid "IDS_IV_BODY_CROP" +msgstr "Przytnij" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Utwórz etykietę" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Liczba" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Pochmurny dzień" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Bezchmurna noc" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Zdjęcie kontaktu" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Podstawowy" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Dostępne zastosowania" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Auto" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Dostosuj pasujący motyw kolorystyczny do aplikacji." + +msgid "IDS_IV_BODY_APERTURE" +msgstr "Przysłona" + +msgid "IDS_IV_BODY_ANY" +msgstr "Dowolny" + +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Dodaj do Ulubionych" + +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Łączny czas połączeń" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Osiągnięto maksymalną liczbę znaków." + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Błąd" + +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" + +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "kB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Edytuj" + +msgid "IDS_ST_BODY_DATE" +msgstr "Data" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Konta" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Pobierz" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Elementy zostaną wyświetlone po przekazaniu zdjęć do Dropbox." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Pobieranie..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Dodaj obrazy" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Zdjęcia będą widoczne po ich oznaczeniu jako ulubione." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Usunąć identyfikację twarzy?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Przypisz nazwę" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Potwierdź jako %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Układ" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "Dodano obrazów: %d" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Album zostanie anulowany." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Rozpoczynanie pobierania..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Brak pamięci. Usuń niektóre elementy" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Pamięć prywatna" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Przeciągnij tutaj." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Dotknij, aby dodać obrazy." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Plik już istnieje." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Ten element zostanie usunięty." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Elementy zostaną wyświetlone po przekazaniu zdjęć do Facebooka." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Nieprawidłowy znak" + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Ręcznie" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Przetwarzanie..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Zmień nazwę" + +msgid "IDS_COM_BODY_NONE" +msgstr "Brak" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "Wybrano %d" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Pamięć urządzenia" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "Karta pamięci" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Szybkość" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Granie w tle" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 s" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 s" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 s" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Położenie pamięci" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Rozmiar pliku" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album zostanie usunięty." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgia" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Rozmycie" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Delikatny blask" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Zapisywanie zmian" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Zapisać zmiany czy odrzucić?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Odrzuć" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Zapisz" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Winietowanie" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Słońce" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Stare zdjęcie" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Skala szarości" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sepia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Wyblakłe kolory" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Oświetlenie punktowe" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Żółta poświata" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Wyostrzenie" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Szkic" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Odwrócone kolory" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Farba olejna" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Posteryzacja" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Kreskówka" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Pop-art" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Magiczne pióro" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Dodano do listy zablokowanych." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Obróć" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Za mało miejsca w położeniu pamięci urządzenia. Przejdź do menu Ustawienia > Energia i położenie pamięci > Położenie pamięci, a następnie usuń niektóre pliki i spróbuj ponownie." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Czas wyświetlania slajdów" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Czas wyświetlania slajdów" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Zdjęcie kontaktu" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Brak" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Edytuj" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Zmień nazwę" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Ustaw jako" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Pobierz" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Zmień nazwę" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Zmień nazwę" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Zm. naz." + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Istnieje już plik o tej nazwie w katalogu docelowym." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Zamień" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Ustawianie jako" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Tapeta ekranu startowego" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Tapeta ekranu blokady" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Tapety ekr.start. i ekr.blok." + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Szczegóły" + +msgid "IDS_IV_BODY_DATE" +msgstr "Data" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Nie można zapisać obrazu" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Za mało miejsca (%d MB) w pamięci urządzenia." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Za mało miejsca (%d MB) na karcie pamięci." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Usuń niektóre pliki i spróbuj ponownie." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Zapisywanie obrazu" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Brak miejsca (pozostało %d MB) w pamięci urządzenia. Ten element zostanie zapisany na karcie pamięci." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Brak miejsca (pozostało %d MB) na karcie pamięci. Ten element zostanie zapisany w pamięci urządzenia." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Obraz zostanie usunięty." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Stop" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Usuń" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Błąd!" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Wybór obszaru" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Gotowe" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Nie udało się załadować tego elementu." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negatyw" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "GOTOWE" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ANULUJ" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negatyw" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Nie można otworzyć Galerii." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Ładowanie..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Ładuję..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Błąd ładowania" + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Ładowanie obrazu..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Usuń" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Nie można pobrać" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Transmisja danych po sieci jest wyłączona. Połącz się z siecią Wi-Fi lub włącz transmisję danych po sieci i spróbuj ponownie." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Nie wysyłaj" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 sek." + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d sek." + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Efekty" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Efekty" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Przepływanie" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Zanikanie" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Nie wykryto twarzy" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Powiększ" diff --git a/res/po/pt_BR.po b/res/po/pt_BR.po old mode 100755 new mode 100644 index c18a67c..e0a7cb2 --- a/res/po/pt_BR.po +++ b/res/po/pt_BR.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Adicionar à tela principal" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Privado" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Automático" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Renomear" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Este vídeo será excluído." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "O nome do arquivo já está em uso." + +msgid "IDS_ST_BODY_OFF" +msgstr "Desativado" + +msgid "IDS_COM_BODY_DONE" +msgstr "Concluído" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Flash" +msgid "IDS_COM_SK_STOP" +msgstr "Parar" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s está desativado neste aplicativo. Para ativar esta função, vá para %2$s, selecione esta função e selecione este aplicativo." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "OK" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Cancelar" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Inserir nome" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Sem nome" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Existe apenas um álbum." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Você pode selecionar até %d itens." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Detalhes" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Apagar" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Apagar?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cancelar" + +msgid "IDS_IV_POP_DELETED" +msgstr "Excluído." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Favorito" + +msgid "IDS_IV_SK_SAVE" +msgstr "Salvar" + +msgid "IDS_IV_POP_SAVED" +msgstr "Salvo." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Configurações" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Tamanho" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Desconhecido" + +msgid "IDS_IV_SK_YES" +msgstr "Sim" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Copiar para área de transferência" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Distância focal" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Ligar flash" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Desligar flash" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Visualizador de imagens" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Controle do branco" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Todas as imagens" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Automático" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Orientação" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Criar tag" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Selecionar imagem" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Controle do branco" +msgid "IDS_MP_BODY_DURATION" +msgstr "Duração" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Tempo acumulado" +msgid "IDS_ST_POP_SET" +msgstr "Definido" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Adicionar etiqueta" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Etiquetas" -msgid "IDS_IV_POP_ADDED" -msgstr "Adicionado" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Adic. comentário" -msgid "IDS_IV_BODY_ANY" -msgstr "Qualquer" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Exibir sua mídia em outros dispositivos usando dispositivos próximos." -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Utilizações disponíveis" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Os arquivos de vídeo não contém informações sobre as pessoas assim como não tem suporte à função de reconhecimento de face." -msgid "IDS_IV_BODY_BASIC" -msgstr "Básico" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Não é possível compartilhar esta imagem. Ela está protegida por DRM." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "ID de chamada" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Impossível abrir arquivo." -msgid "IDS_IV_BODY_COUNT" -msgstr "Contagem" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "As informações do tempo gravadas podem ser diferentes do tempo atual por causa do intervalo de atualização." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Data de criação" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "O conteúdo pessoal copiado para a área de transferência pode ser usado para criar novo conteúdo. Seu novo conteúdo pode não ser oculto automaticamente." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Visor" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Esta imagem é muito pequena." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Insira o nome da tag" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "A informação da data só é exibida quando outras etiquetas estão visíveis." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Entrada vazia" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Toque e segure miniaturas para selecionar as melhores fotos." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Executar" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Conf. Apres. de slides" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Formato de arquivo" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Definir fundo da tela principal e bloqueio de tela" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Localização de arquivo" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Definir esta foto como ID do originador de %s?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Encaminhamento" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Definir como ID de chamada" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Fundo da tela princ." +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Enviando…" -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Impossível" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Selecione dispositivo" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Individual" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "Cartão de memória removido." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Intervalo" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Permissão negada." -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Arquivo de imagem inválido" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Sem local" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Latitude" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Nenhum rosto foi marcado. Marque rostos na imagem" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Localizações" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Nenhum rosto detectado." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Fundo da tela de bloq." +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Memória insuficiente. Apague alguns itens" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Longitude" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Falha da conexão de rede." msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Número máximo de caracteres (%d) atingido" +msgstr "Número máximo de caracteres (%d) atingido." -msgid "IDS_IV_BODY_N_A" -msgstr "N/D" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Arquivo de imagem inválido." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Etiqueta nova" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Flash usado" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Permissão negada" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Formato de arquivo sem suporte." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Possível" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Entrada vazia." -msgid "IDS_IV_BODY_PRINT" -msgstr "Imprimir" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Insira o nome da tag." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Imprimir via Bluetooth" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Ativar a atualização automática no papel de parede do tempo para consultar etiquetas de tempo." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Resolução" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Download concluído" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Status de direitos" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Melhor foto" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "Cartão de memória removido" +msgid "IDS_IV_POP_ADDED" +msgstr "Adicionado." -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Selecione dispositivo" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Escrever legenda" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Nome do servidor" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Utilizar movimento" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Definir como" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Não favorito" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Definir fundo da tela principal e bloqueio de tela" +msgid "IDS_IV_OPT_TRIM" +msgstr "Cortar" -msgid "IDS_IV_OPT_SHARE" -msgstr "Compartilhar" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Marcar rosto" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Etiqueta de amigo" + +msgid "IDS_IV_OPT_TAG" +msgstr "Etiqueta" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Iniciar apresentação de slides" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "Exibição de slides" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Contagem temporizada" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Apresentação de slides" -msgid "IDS_IV_OPT_TRIM" -msgstr "Cortar" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Exibir itens" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Ilimitado" +msgid "IDS_IV_OPT_SHARE" +msgstr "Compartilhar" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Validade" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Girar para a direita" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Fornecedor" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Girar para a esquerda" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Remover etiqueta" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Atualizar" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Imprimir via Bluetooth" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Detectar manualmente" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Papel de parede da tela Início e de bloqueio" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Itens ocultos" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Obter direções" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "Transferência de arquivo" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Não mostrar novamente" +msgid "IDS_IV_OPT_ERASER" +msgstr "Apagador" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Mantenha pressionados dois pontos, em seguida, incline o aparelho para frente e para trás para reduzir ou aumentar a tela." +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Edt. rótulo de tempo" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Editar tag" + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Editar legenda" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Excluir legenda" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Copiar para área de transferência" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Informações conexão" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "S Cloud" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Comp. foto de amigo" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Melhor rosto" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Como arquivos de vídeo" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Como arquivos de imagem" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Foto animada" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Adic. etiqueta de tempo" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Adicionar nome" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Adicionar legenda" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Música da Apres. de slides" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Comp. imagem som e foto" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Definir como" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Enviar esta imagem p/" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Selecionar contato para compartilhar" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Velocidade de reprodução" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Fundo da tela de bloq." msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Aprender a utilizar inclinações" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Fundo da tela princ." + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Edt. rótulo de tempo" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Edit. disparo contínuo" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Dispositivos dispon." + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "Todos os álbuns" -msgid "IDS_IV_OPT_TAG" -msgstr "Etiqueta" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Adicionar etiqueta" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Papel de parede da tela Início e de bloqueio" +msgid "IDS_IV_BUTTON_STOP" +msgstr "Parar" -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Utilizar movimento" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Pesquisar" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Tela de início e de bloqueio" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "É possível compartilhar suas mídias com outros dispositivos usando dispositivos próximos." -msgid "IDS_IV_BODY_CROP" -msgstr "Cortar" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Com %s e outros %d" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Tela principal" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Com %s" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Tela de bloqueio" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Balanço de branco" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Girar para a esquerda" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Tempo" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Girar para a direita" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Clima" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Detectar manualmente" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Fornecedor" -msgid "IDS_IV_BODY_ME" -msgstr "Eu" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Validade" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Editar tag" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Ilimitado" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Remover etiqueta" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Não é possível carregar foto." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Contagem temporizada" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Toque em faces para visualizar informações sobre as pessoas." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Mantenha pressionados dois pontos, em seguida, incline o aparelho para frente e para trás para reduzir ou aumentar a tela." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Dia ensolarado" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Dia de neve" msgid "IDS_IV_BODY_SHARE_VIA" msgstr "Compartilhar via" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Não enviar" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Nome do servidor" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Comp. foto de amigo" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Selecione uma área para recortar a imagem." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Classif. rosto" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "A área selecionada será impressa." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Visualizador de imagens" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "A área selecionada será aplicada ao papel de parede." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "A área selecionada será aplicada à imagem do contato." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Status de direitos" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Resolução" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Remover dos Favoritos" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Dia chuvoso" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Imprimir" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Possível" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Pessoas" + +msgid "IDS_IV_BODY_N_A" +msgstr "N/D" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Sem marcas" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Etiqueta nova" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "Dispositivos nas proximidades" +msgstr "Dispositivos próximos" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Selecione uma área para recortar a imagem" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Meu dispositivo" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "A área selecionada será aplicada ao papel de parede" +msgid "IDS_IV_BODY_MODEL" +msgstr "Modelo" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "A área selecionada será impressa" +msgid "IDS_IV_BODY_ME" +msgstr "Eu" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "É possível compartilhar suas mídias com outros dispositivos usando dispositivos próximos" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Fabricante" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "A área selecionada será aplicada à imagem do contato" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Longitude" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Tela de bloqueio" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Local" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Local" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Localizações" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Local" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Latitude" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "Em %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Intervalo" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Individual" + +msgid "IDS_IV_BODY_IN" +msgstr "Em" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Impossível" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Tela de início" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Tela de início e de bloqueio" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Encaminhamento" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Flash" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Nome do arquivo" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Localização de arquivo" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Formato de arquivo" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "Tempo de exp." -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Executar" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Ativar etiquetas GPS na Câmera para exibir etiquetas de localização." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Ativar a atualização automática no widget do tempo para consultar marcas de tempo." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Duração" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "Informações de DRM" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Não mostrar novamente" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Não pergunte novamente" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Visor" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Data de criação" + +msgid "IDS_IV_BODY_CROP" +msgstr "Recortar" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Criar tag" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Contagem" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Dia nublado" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Noite limpa" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "ID de chamada" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Básico" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Utilizações disponíveis" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Automático" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Aplique um tema de cor correspondente aos aplicativos." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Abertura" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Orientação" +msgid "IDS_IV_BODY_ANY" +msgstr "Qualquer" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Fabricante" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Adicionar aos favoritos" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Distância focal" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Tempo acumulado" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Orientação" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Número máximo de caracteres atingido." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Modelo" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Falha" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Adicionar nome" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Definir como ID de chamada" +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Editar" + +msgid "IDS_ST_BODY_DATE" +msgstr "Data" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Contas" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Download" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Após carregar as imagens para o Dropbox, os itens serão exibidos." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Baixando…" + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Adicionar imagens" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Após rotular imagens como suas favoritas, elas serão exibidas." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Remover a identificação do rosto?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Atribuir nome" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Confirme como %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Layout" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d imagens adicionadas" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "O álbum será cancelado." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Iniciando download..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Memória insuficiente. Apague alguns itens" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Armazenamento privado" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Arraste aqui." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Tocar para adicionar imagens." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Arquivo existente." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Este item será removido." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Após carregar suas imagens para o Facebook, os itens serão exibidos." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Caractere inválido." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Manual" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Processando..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Renomear" + +msgid "IDS_COM_BODY_NONE" +msgstr "Desativado" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d selecionado(s)" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Armazenamento do dispositivo" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "Cartão SD" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Velocidade" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Música em segundo plano" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1s" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3s" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5s" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Localização do armazenamento" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Tamanho do arquivo" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 álbum será excluído." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgia" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Desfocar" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Brilho suave" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Salvar alterações" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Salvar suas alterações ou descartá-las?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Descart." + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Salvar" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Vintage" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Alvorada" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Foto antiga" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retrô" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Escala de cinzas" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sépia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Cores esmaecidas" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Luz indireta" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Brilho amarelo" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Nítido" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Esboço" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Cores invertidas" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Pintura à óleo" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Posterizar" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Cartum" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Arte popular" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Caneta Mágica" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Adicionado à lista de bloqueio." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Girar" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Não existe espaço suficiente no armazenamento do dispositivo. Vá para Configurações > Energia e armazenamento > Armazenamento e exclua alguns arquivos e tente novamente." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Intervalo do slide" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Intervalo do slide" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Foto do contato" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Nenhum" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Editar" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Renomear" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Definir como" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Baixar" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Renomear" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Renomear" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Renomear" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Já existe um arquivo com este nome na pasta de destino." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Substit." + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Defina como" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Papel de parede tela inicial" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Papel parede tela de bloqueio" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Papéis de parede da tela inicial e da tela de bloqueio" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Detalhes" + +msgid "IDS_IV_BODY_DATE" +msgstr "Data" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Não é possível salvar imagem" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Não existe espaço suficiente (%d MB) no armazenamento do seu dispositivo." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Não existe espaço suficiente (%d MB) no seu cartão SD." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Exclua alguns arquivos e tente novamente." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Salvar imagem" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Não existe espaço suficiente (%d MB restantes) no armazenamento do seu aparelho. Este item será salvo no seu cartão SD." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Não existe espaço suficiente (%d MB restantes) no cartão SD. Este item será salvo no armazenamento do seu aparelho." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Esta imagem será apagada." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Parar" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Excluir" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Erro" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Selecionar área" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "OK" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Falha ao carregar este item." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negativo" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "CONCLUÍDO" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CANCELAR" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negativo" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Não é possível abrir a Galeria." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Carregando..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Carregando..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Erro ao carregar." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Carregando imagem..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Descartar" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Não é possível baixar" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Os dados móveis estão desligados. Conecte-se a uma rede Wi-Fi ou ligue os Dados móveis e tente novamente." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Não enviar" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 segundo" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d segundos" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Efeito" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Efeitos" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Fluir" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Saída gradual" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Nenhum rosto detectado" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Aumentar zoom" diff --git a/res/po/pt_PT.po b/res/po/pt_PT.po old mode 100755 new mode 100644 index eab3f08..4069de1 --- a/res/po/pt_PT.po +++ b/res/po/pt_PT.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Adicionar ao início" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Privado" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Automático" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Mudar nome" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Este vídeo será eliminado." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Nome ficheiro já utilizado." + +msgid "IDS_ST_BODY_OFF" +msgstr "Desligado" + +msgid "IDS_COM_BODY_DONE" +msgstr "Concluído" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Flash" +msgid "IDS_COM_SK_STOP" +msgstr "Parar" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s está desactivada nesta aplicação. Para activar esta função, aceda a %2$s, seleccione esta função e depois seleccione esta aplicação." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Concluir" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Cancelar" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Introduzir nome" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Sem nome" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Existe apenas um álbum." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Pode seleccionar até %d itens." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Detalhes" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Eliminar" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Eliminar?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Cancelar" + +msgid "IDS_IV_POP_DELETED" +msgstr "Eliminado." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Favoritos" + +msgid "IDS_IV_SK_SAVE" +msgstr "Guardar" + +msgid "IDS_IV_POP_SAVED" +msgstr "Guardado." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Definições" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Tamanho" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Desconhecido" + +msgid "IDS_IV_SK_YES" +msgstr "Sim" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Copiar para bloco de notas" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Distância focal" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Ligar Flash" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Desligar Flash" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Visualizador de imagens" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Equilíbrio de brancos" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Todas as imagens" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Automático" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Orientação" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Criar etiq." +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Seleccionar imagem" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Equilíbrio brancos" +msgid "IDS_MP_BODY_DURATION" +msgstr "Duração" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Tempo acumulado" +msgid "IDS_ST_POP_SET" +msgstr "Definido" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Ad. etiq." +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Etiquetas" -msgid "IDS_IV_POP_ADDED" -msgstr "Adicionado" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Adic. comentário" -msgid "IDS_IV_BODY_ANY" -msgstr "Qualquer" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Veja os seus ficheiros multimédia noutros dispositivos utilizando dispositivos próximos." -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Utilizações disponíveis" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Os ficheiros de vídeo não contêm informações sobre as pessoas, pois não suportam a função de etiqueta de rosto." -msgid "IDS_IV_BODY_BASIC" -msgstr "Básico" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Impossível partilhar esta imagem. Está protegida por DRM." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Imagem do chamador" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Impossível abrir ficheiro." -msgid "IDS_IV_BODY_COUNT" -msgstr "Contagem" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "As informações meteorológicas registadas poderão não coincidir com as condições meteorológicas reais devido ao intervalo de actualização." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Data criada" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "O conteúdo pessoal copiado para a área de transferência pode ser utilizado para criar novo conteúdo. O seu novo conteúdo pode não ser ocultado automaticamente." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Visor" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "A imagem é demasiado pequena." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Introduzir nome da etiqueta" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "As informações da data só são apresentadas quando as outras etiquetas estão visíveis." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Entrada vazia" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Toque sem soltar nas miniaturas para seleccionar as melhores fotografias." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Executar" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Definições da apresentação de slides" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Formato de ficheiro" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Definir fundo do ecrã principal e bloqueio do ecrã" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Localização de ficheiro" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Definir esta fotografia como ID de chamador de %s?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Reencaminhar" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Definir como ID do chamador" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Fundo do ecrã princ." +msgid "IDS_IV_POP_SENDING_ING" +msgstr "A enviar..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Impossível" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Seleccionar dispositivo" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Individual" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "Cartão SD removido." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Intervalo" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Permissão negada." -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Ficheiro de imagem inválido" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Sem localização" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Latitude" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Nenhum dos rostos foi etiquetado. Aplicar etiquetas aos rostos da fotografia." -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Localizações" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Sem rostos detectados." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Fundo ecrã bloqueio" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Memória insuficiente. Apague alguns itens." -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Longitude" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Falha da ligação de rede." msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Número máximo de caracteres (%d) atingido" +msgstr "Número máximo de caracteres (%d) atingido." -msgid "IDS_IV_BODY_N_A" -msgstr "N/A" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Ficheiro de imagem inválido." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Etiqueta nova" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Flash utiliz." -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Permissão negada" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Formato de ficheiro não suportado." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Possível" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Entrada vazia." -msgid "IDS_IV_BODY_PRINT" -msgstr "Imprimir" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Introduzir nome da etiqueta." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Imprimir via Bluetooth" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Activar a actualização automática no fundo da meteorologia para ver etiquetas meteorológicas." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Resolução" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Transferência concluída" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Estado dos direitos" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Melhor fotografia" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "Cartão SD removido" +msgid "IDS_IV_POP_ADDED" +msgstr "Adicionado." -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Seleccionar dispositivo" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Escrever legenda" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Nome do servidor" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Utilizar movimento" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Definir como" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Não favorito" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Definir fundo do ecrã principal e bloqueio do ecrã" +msgid "IDS_IV_OPT_TRIM" +msgstr "Recortar" -msgid "IDS_IV_OPT_SHARE" -msgstr "Partilhar" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Rosto de etiqueta" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Etiquetas" + +msgid "IDS_IV_OPT_TAG" +msgstr "Etiqueta" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Iniciar apresentação de slides" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "Apresentação de slides" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Contagem temporizada" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Apresentação de slides" -msgid "IDS_IV_OPT_TRIM" -msgstr "Recortar" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Mostrar itens" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Ilimitado" +msgid "IDS_IV_OPT_SHARE" +msgstr "Partilhar" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Validade" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Rodar para a direita" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Representante" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Rodar para a esquerda" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Remover etiqueta" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Actualizar" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Imprimir via Bluetooth" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Detectar manualmente" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Fundo do ecrã principal e ecrã bloqueado" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Itens ocultos" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Obter instruções direcção" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "Transferência de ficheiros" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Não mostrar novamente" +msgid "IDS_IV_OPT_ERASER" +msgstr "Apagador" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Toque sem soltar em dois pontos e, em seguida, incline o dispositivo para trás e para a frente para reduzir ou aumentar o ecrã" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Editar etiq. meteo" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Ed. etiq." + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Editar legenda" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Eliminar legenda" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Copiar para bloco de notas" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Info de ligação" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Partilha de foto de amigo" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Melhor rosto" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Como ficheiros de vídeo" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Como ficheiros de imagem" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Foto animada" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Adicionar etiqueta meteo" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Adicionar nome" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Adicionar legenda" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Música de apresentação de slides" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Partilhar som e instan." + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Definir como" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Enviar esta imagem p/" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Seleccionar contacto para partilhar" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Velocidade de reprodução" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Fundo ecrã bloqueio" msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Aprender a utilizar inclinações" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Fundo do ecrã princ." + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Editar etiq. meteo" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Editar disp. contínuos" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Disposit disponíveis" + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "Todos os álbuns" -msgid "IDS_IV_OPT_TAG" -msgstr "Etiqueta" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Adicionar etiqueta" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Fundo do ecrã principal e ecrã bloqueado" +msgid "IDS_IV_BUTTON_STOP" +msgstr "Parar" -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Utilizar movimento" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Pesquisar" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Ecrãs principal e de bloqueio" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Pode partilhar os seus ficheiros multimédia com outros dispositivos utilizando dispositivos próximos." -msgid "IDS_IV_BODY_CROP" -msgstr "Recortar" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Com %s e %d outros" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Ecrã principal" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Com %s" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Ecrã bloqueado" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Equilíbrio de brancos" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Rodar para a esquerda" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Meteorologia" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Rodar para a direita" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Tempo" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Detectar manualmente" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Representante" -msgid "IDS_IV_BODY_ME" -msgstr "Eu" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Validade" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Ed. etiq." +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Ilimitado" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Remover etiqueta" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Impossível carregar fotografia." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Contagem temporizada" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "As informações meteorológicas registadas devem ser editadas manualmente. O seu dispositivo não suporta a recepção de informações meteorológicas registadas a partir do widget de meteorologia." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Toque nos rosto para ver informações sobre as pessoas." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Toque sem soltar em dois pontos e, em seguida, incline o dispositivo para trás e para a frente para reduzir ou aumentar o ecrã." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Dia de sol" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Dia de neve" msgid "IDS_IV_BODY_SHARE_VIA" msgstr "Partilhar via" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Não enviar" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Nome do servidor" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Partilha de foto de amigo" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Seleccionar uma área para cortar a fotografia." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Classif. rosto" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "A área seleccionada será impressa." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Visualizador de imagens" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "A área seleccionada será aplicada ao fundo." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "A área seleccionada será aplicada à fotografia do contacto." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Estado dos direitos" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Resolução" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Remover dos favoritos" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Dia chuvoso" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Imprimir" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Possível" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Pessoas" + +msgid "IDS_IV_BODY_N_A" +msgstr "N/A" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Sem etiqueta" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Etiqueta nova" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" msgstr "Dispositivos próximos" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Seleccionar uma área para cortar a fotografia" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "O meu dispositivo" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "A área seleccionada será aplicada ao fundo" +msgid "IDS_IV_BODY_MODEL" +msgstr "Modelo" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "A área seleccionada será impressa" +msgid "IDS_IV_BODY_ME" +msgstr "Eu" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Pode partilhar os seus ficheiros multimédia com outros dispositivos utilizando dispositivos próximos" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Fabricante" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "A área seleccionada será aplicada à fotografia do contacto" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Longitude" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Ecrã bloqueado" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Localização" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Localiz." + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Localizações" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Localização" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Latitude" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "Em %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Intervalo" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Individual" + +msgid "IDS_IV_BODY_IN" +msgstr "Em" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Impossível" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Ecrã principal" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Ecrãs principal e bloqueado" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Reencaminhar" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Menu do flash" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Nome do ficheiro" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Localização de ficheiro" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Formato de ficheiro" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "Tempo exposiç." +msgstr "Exposição" + +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Executar" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Active as etiquetas GPS na Câmara para ver etiquetas de localização." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Activar a actualização automática no widget da meteorologia para ver etiquetas meteorológicas." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Duração" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "Informações de DRM" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Não mostrar novamente" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Não voltar a perguntar" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Visor" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Data criada" + +msgid "IDS_IV_BODY_CROP" +msgstr "Recortar" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Criar tag NFC" -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_COUNT" +msgstr "Contagem" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Dia nublado" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Noite sem nuvens" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Imagem do chamador" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Básico" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Utilizações disponíveis" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Automático" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Aplique nas aplicações um tema de cores correspondente." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Abertura" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Orientação" +msgid "IDS_IV_BODY_ANY" +msgstr "Qualquer" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Fabricante" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Adicionar aos Favoritos" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Distância focal" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Tempo acumulado" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Orientação" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Número máximo de caracteres atingido." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Modelo" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Falhou" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Adicionar nome" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Definir como ID do chamador" +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Editar" + +msgid "IDS_ST_BODY_DATE" +msgstr "Data" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Contas" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Transferir" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Depois de transferir fotografias para o Dropbox, os itens serão mostrados." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "A transferir..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Adicionar imagens" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Depois de classificar as fotografias como suas favoritas, as fotografias serão mostradas." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Remover identificação de rostos?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Atribuir nome" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Confirmar como %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Esquema" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d imagens adicionadas" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "O álbum será cancelado." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "A iniciar transferência..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Memória insuficiente. Apague alguns itens." + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Armazenamento privado" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Arraste para aqui." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Tocar para adicionar imagens." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Ficheiro já existe." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Este item será eliminado." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Depois de transferir fotografias para o Facebook, os itens serão mostrados." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Carácter inválido." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Manual" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "A processar..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Mudar nome" + +msgid "IDS_COM_BODY_NONE" +msgstr "Desligado" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d selecionado(s)" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Armazenamento do dispositivo" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "Cartão SD" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Velocidade" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Música de fundo" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 s" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 s" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 s" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Localização armazenamento" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Tamanho do ficheiro" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 álbum será eliminado." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgia" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Desfocado" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Brilho suave" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Guardar alterações" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Guardar as suas alterações ou eliminá-las?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Eliminar" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Guardar" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Vintage" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Sol" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Fotografia antiga" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Cinza" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sépia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Cores atenuadas" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Atenuar luz" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Brilho amarelo" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Mais nítida" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Esboço" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Cores invertidas" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Pintura a óleo" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Criar poster" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Desenho animado" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Pop Art" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Caneta mágica" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Adicionado à lista de bloqueios." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Rodar" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Não há espaço suficiente no armazenamento do seu dispositivo. Vá às Definições > Potência e armazenamento > Armazenamento e depois elimine alguns ficheiros e tente novamente." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Intervalo de slide" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Intervalo entre slides" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Imagem do contacto" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Nenhum" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Editar" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Mudar nome" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Definir como" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Transferir" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Mudar nome" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Mudar nome" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Renomear" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Já existe um ficheiro com este nome na pasta de destino." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Subs." + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Definir como" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Fundo do ecrã principal" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Bloquear fundo do ecrã" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Fundos de ecrã princ. e bloq." + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Detalhes" + +msgid "IDS_IV_BODY_DATE" +msgstr "Data" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Impossível guardar imagem" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Não há espaço suficiente (%d MB) no armazenamento do seu dispositivo." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Não existe espaço suficiente (%d MB) no seu cartão SD." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Elimine alguns ficheiros e tente novamente." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Guardar imagem" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Não existe espaço suficiente (restam %d MB) no armazenamento do seu dispositivo. Este item será guardado no seu cartão SD." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Não existe espaço suficiente (restam %d MB) no cartão SD. Este item será guardado no armazenamento do seu dispositivo." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Esta imagem será eliminada." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Parar" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Eliminar" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Erro" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Seleccionar área" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Concluir" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Falha ao carregar este item." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negativo" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "CONCLUÍDO" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CANCELAR" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negativo" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Impossível abrir a Galeria." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "A carregar..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "A carregar..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Falha ao carregar." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "A carregar imagem..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Apagar" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Impossível transferir" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Os dados móveis estão desligados. Ligue-se a uma rede Wi-Fi ou ligue os Dados móveis e tente de novo." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Não enviar" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 segundo" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d segundos" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Efeito" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Efeitos" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Fluir" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Saída gradual" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Nenhum rosto detectado" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Aumentar" diff --git a/res/po/ro.po b/res/po/ro.po old mode 100755 new mode 100644 index 0552672..e5f4e57 --- a/res/po/ro.po +++ b/res/po/ro.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Adăugare la ecran principal" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Private" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Automat" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Redenumire" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Acest videoclip va fi şters." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Numele de fişier este deja utilizat." + +msgid "IDS_ST_BODY_OFF" +msgstr "Oprit" + +msgid "IDS_COM_BODY_DONE" +msgstr "Efectuat" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Bliţ" -msgid "IDS_CAM_BODY_ISO" -msgstr "ISO" +msgid "IDS_COM_SK_STOP" +msgstr "Oprire" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Copiere în clipboard" +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "Funcţia %1$s este dezactivată în această aplicaţie. Pentru a activa această funcţie, accesaţi %2$s, selectaţi-o, apoi selectaţi această aplicaţie." -msgid "IDS_CAM_BODY_FLASH_ON" -msgstr "Bliţ pornit" +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Blitz oprit" +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Efectuat" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Balans de alb" +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Anulare" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Automat" +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Introduceţi numele" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Creare" +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Nici un nume" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Balans de alb" +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Există un singur album." -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Timp cumulat" +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Puteţi selecta maximum %d elemente." -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Ad. Etichetă" +msgid "IDS_IV_OPT_DETAILS" +msgstr "Detalii" -msgid "IDS_IV_POP_ADDED" -msgstr "Adăugat" +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Ştergere" -msgid "IDS_IV_BODY_ANY" -msgstr "Oricare" +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Ştergeţi?" -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Utilizări disponibile" +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Anulare" -msgid "IDS_IV_BODY_BASIC" -msgstr "De bază" +msgid "IDS_IV_POP_DELETED" +msgstr "Şters" -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Imagine apelant" +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Favorit" -msgid "IDS_IV_BODY_COUNT" -msgstr "Contor" +msgid "IDS_IV_SK_SAVE" +msgstr "Salvare" -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Data creării" +msgid "IDS_IV_POP_SAVED" +msgstr "Salvat" -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Ecran" +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Setări" -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Introduceţi numele unei etichete" +msgid "IDS_IV_BODY_SIZE" +msgstr "Dimensiune" -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Locaţie liberă" +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Necunoscut" -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Executare" +msgid "IDS_IV_SK_YES" +msgstr "Da" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Format fişier" +msgid "IDS_CAM_BODY_ISO" +msgstr "ISO" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Locaţie fişier" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Distanţă focală" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Redirecţionare" +msgid "IDS_CAM_BODY_FLASH_ON" +msgstr "Bliţ pornit" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Fundal ecran pornire" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Vizualizator de imagini" -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Imposibil" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Toate imaginile" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Individual" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Orientare" -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Interval" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Selectare imagine" -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Fişier de imagini nevalid" +msgid "IDS_MP_BODY_DURATION" +msgstr "Durată" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Latitudine" +msgid "IDS_ST_POP_SET" +msgstr "Afişare" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Locaţii" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Etichete" -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Bloc. fundal ec. por." +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Adăugaţi coment." -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Longitudine" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Vizualizaţi conţinutul media pe alte dispozitive cu ajutorul dispozitivelor din apropiere." -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Numărul maxim de caractere (%d) a fost atins" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Fişierele video nu conţin informaţii despre persoane, întrucât nu acceptă funcţia etichetă faţă." -msgid "IDS_IV_BODY_N_A" -msgstr "Nedisponibil" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Imaginea nu poate fi partajată. Este protejată prin DRM." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Etichetă nouă" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Imposibil de deschis fişierul" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Permisiunea a fost refuzată" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Informaţiile meteo înregistrate pot să difere de starea efectivă a vremii, din cauza intervalului de actualizare." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Posibil" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Conţinutul personal copiat în clipboard poate fi utilizat pentru a crea conţinut nou. Este posibil ca noul conţinut să nu fie ascuns în mod automat." -msgid "IDS_IV_BODY_PRINT" -msgstr "Imprimare" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Imaginea este prea mică." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Imprimare prin Bluetooth" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Informaţiile despre dată sunt afişate doar când sunt vizibile alte etichete." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Rezoluţie" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Ţineţi apăsat pe miniaturi pentru a selecta cele mai bune fotografii." -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Stare drepturi" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Setări expunere diapozitive" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "Cartela SD a fost eliminată" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Setare fundal pentru ecran de pornire şi blocare ecran." + +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Setaţi imaginea ca ID de apelant pentru %s?" + +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Setare ca identitate apelant" + +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Se trimite..." msgid "IDS_IV_POP_SELECT_DEVICE" msgstr "Selectare dispozitiv" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Nume server" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "Cartela SD a fost eliminată." -msgid "IDS_IV_OPT_SET_AS" -msgstr "Setare ca" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Permisiunea a fost refuzată." -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Setare fundal pentru ecran de pornire şi blocare ecran." +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Fără locaţie" -msgid "IDS_IV_OPT_SHARE" -msgstr "Partajare" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Nu au fost etichetate feţe. Etichetaţi feţele din imagine" -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "Expuneri diapozitive" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Nicio faţă detectată" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Numărătoare temporizată" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Memorie insuficientă. Ştergeţi câteva elemente" -msgid "IDS_IV_OPT_TRIM" -msgstr "Decupare" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Conectarea la reţea a eşuat." -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Nelimitat" +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Numărul maxim de caractere (%d) a fost atins." -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Valabilitate" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Fişier de imagini nevalid" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Distribuitor" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Flash utilizat" -msgid "IDS_IV_OPT_FILE_TRANSFER" -msgstr "Transfer fişier" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Formatul de fişier nu este acceptat." -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Nu se mai afişează" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Locaţie liberă" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Atingeţi şi menţineţi două puncte, apoi înclinaţi dispozitivul înainte şi înapoi pentru a micşora sau pentru a mări ecranul" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Introduceţi numele unei etichete." -msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" -msgstr "Aflaţi despre înclinare" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Activaţi reîmprospătarea automată în imaginea de fundal meteo pentru a vedea etichetele meteo." -msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "Toate albumele" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Descărcare finalizată" -msgid "IDS_IV_OPT_TAG" -msgstr "Etichetă" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Fotografie optimă" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Fundal ecran de pornire şi de blocare" +msgid "IDS_IV_POP_ADDED" +msgstr "Adăugat" + +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Scrieţi legenda" msgid "IDS_IV_OPT_USE_MOTION" msgstr "Utilizare mişcare" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Ecrane de pornire şi de blocare" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Revocare preferat" -msgid "IDS_IV_BODY_CROP" -msgstr "Tăiere" +msgid "IDS_IV_OPT_TRIM" +msgstr "Decupare" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Ecran de pornire" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Etichetare faţă" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Blocare ecran" +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Asistent pentru etichete" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Rotire stânga" +msgid "IDS_IV_OPT_TAG" +msgstr "Etichetă" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Începere expunere de diapozitive" + +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "Expuneri diapozitive" + +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Expunere de diapozitive" + +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Afişare elemente" + +msgid "IDS_IV_OPT_SHARE" +msgstr "Partajare" msgid "IDS_IV_OPT_ROTATE_RIGHT" msgstr "Rotire dreapta" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Rotire stânga" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Eliminare etichetă" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Reîmprospătare" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Imprimare prin Bluetooth" + msgid "IDS_IV_OPT_MANUALLY_DETECT" msgstr "Detectare manuală" -msgid "IDS_IV_BODY_ME" -msgstr "Eu" +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Fundal ecran de pornire şi de blocare" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Elemente ascunse" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Obţinere indicaţii" + +msgid "IDS_IV_OPT_FILE_TRANSFER" +msgstr "Transfer fişier" + +msgid "IDS_IV_OPT_ERASER" +msgstr "Radieră" + +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Edit. etichetă meteo" msgid "IDS_IV_OPT_EDIT_TAG" msgstr "Edit. et." -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Eliminare etichetă" +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Editare legendă" -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "Partajare prin" +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Ştergere legendă" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Nu se trimite" +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Copiere în clipboard" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Info. conexiune" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" msgstr "Partajare foto prieten" -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Etichet. faţă" +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Faţă optimă" -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Vizualizator de imagini" +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Ca fişiere video" -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "Dispozitive în apropiere" +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Ca fişiere imagine" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Selectaţi o zonă pentru a trunchia imaginea" +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Fotografie animată" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Zona selectată va fi aplicată fundalului" +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Adăugare etichetă meteo" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Zona selectată va fi imprimată" +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Adăugare nume" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Puteţi partaja conţinutul media cu alte dispozitive cu ajutorul dispozitivelor din apropiere" +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Adăugare legendă" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Zona selectată va fi aplicată imaginii contactului" +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Muzică expunere de diapozitive" -msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "Timp expunere" +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Partaj. img. sunet&foto" -msgid "IDS_CAM_BODY_APERTURE" -msgstr "Deschidere" +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Setare ca" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Orientare" +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Trimitere imagine la" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Fabricant" +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Selectare contact pentru partajare" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Distanţă focală" +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Viteză de redare" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Orientare" +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Bloc. fundal ec. por." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Model" +msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" +msgstr "Aflaţi despre înclinare" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Adăugare nume" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Fundal ecran pornire" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Setare ca identitate apelant" +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Edit. etichetă meteo" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Nicio faţă detectată" +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Editare foto continuă" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Dispozitive dispon." + +msgid "IDS_IV_HEADER_ALL_ALBUMS" +msgstr "Toate albumele" + +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Ad. Etichetă" + +msgid "IDS_IV_BUTTON_STOP" +msgstr "Stop" + +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Căutare" + +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Puteţi partaja conţinutul media cu alte dispozitive cu ajutorul dispozitivelor din apropiere." + +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Cu %s şi încă %d persoane" + +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Cu %s" + +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Balans de alb" + +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Meteo" + +msgid "IDS_IV_BODY_WEATHER" +msgstr "Vreme" + +msgid "IDS_IV_BODY_VENDOR" +msgstr "Distribuitor" + +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Valabilitate" + +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Nelimitat" + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Imposibil de încărcat fotografia" + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Numărătoare temporizată" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Atingeţi feţe pentru a vedea informaţii despre persoane." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Atingeţi şi menţineţi două puncte, apoi înclinaţi dispozitivul înainte şi înapoi pentru a micşora sau pentru a mări ecranul." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Zi însorită" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Zi cu zăpadă" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Partajare prin" + +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Nume server" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Selectaţi o zonă pentru a trunchia imaginea." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Zona selectată va fi imprimată." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Zona selectată va fi aplicată fundalului." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Zona selectată va fi aplicată imaginii contactului." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Stare drepturi" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Rezoluţie" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Eliminare din Favorite" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Zi ploioasă" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Imprimare" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Posibil" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Participanţi" + +msgid "IDS_IV_BODY_N_A" +msgstr "Nedisponibil" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Nicio etichetă" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Etichetă nouă" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "Dispozitive în apropiere" + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Dispozitivul meu" + +msgid "IDS_IV_BODY_MODEL" +msgstr "Model" + +msgid "IDS_IV_BODY_ME" +msgstr "Eu" + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Fabricant" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Longitudine" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Blocare ecran" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Locaţie" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Locaţie" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Locaţii" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Locaţie" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Latitudine" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "În %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Interval" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Individual" + +msgid "IDS_IV_BODY_IN" +msgstr "În" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Imposibil" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Ecran de pornire" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Ecrane de pornire şi de blocare" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Redirecţionare" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Meniu Flash" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Nume fişier" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Locaţie fişier" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Format fişier" + +msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" +msgstr "Timp expunere" + +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Executare" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Activaţi etichetele GPS pe Cameră pentru a vedea etichetele de locaţie." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Activaţi reîmprospătarea automată în widget-ul meteo pentru a vedea etichetele meteo." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Durată" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "Informaţii DRM" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Nu se mai afişează" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Nu se întreabă din nou" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Ecran" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Data creării" + +msgid "IDS_IV_BODY_CROP" +msgstr "Tăiere" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Creare" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Contor" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Zi înnorată" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Noapte senină" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Imagine apelant" + +msgid "IDS_IV_BODY_BASIC" +msgstr "De bază" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Utilizări disponibile" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Automat" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Adăugaţi o temă de culoare potrivită pentru aplicaţii." + +msgid "IDS_IV_BODY_APERTURE" +msgstr "Deschidere" + +msgid "IDS_IV_BODY_ANY" +msgstr "Oricare" + +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Adăugare la Favorite" + +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Timp cumulat" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Adăugare la marcaje" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Nereuşit" + +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" + +msgid "IDS_ST_BODY_MB" +msgstr "MO" + +msgid "IDS_ST_BODY_KB" +msgstr "KO" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Editare" + +msgid "IDS_ST_BODY_DATE" +msgstr "Dată" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Conturi" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Descărcare" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "După ce încărcaţi imagini în Dropbox, se vor afişa elementele." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Se descarcă..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Adăugare imagini" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "După ce etichetaţi imagini ca preferate, acestea vor fi afişate." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Eliminaţi identificarea feţelor?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Atribuire nume" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Confirmare ca %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Aspect" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d imagini adăugate" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Albumul va fi anulat." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Se începe descărcarea..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Memorie insuficientă. Ştergeţi câteva elemente" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Spaţiu de stocare privat" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Glisaţi aici." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Atingeţi pentru a adăuga imagini." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Fişierul există deja." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Acest element va fi şters." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "După ce încărcaţi imagini pe Facebook, se vor afişa elementele." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Caracter incorect" + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Manual" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Se procesează..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Redenumire" + +msgid "IDS_COM_BODY_NONE" +msgstr "Niciuna" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d selectate" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Spaţiu stocare dispozitiv" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "Card SD" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Viteză" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Muzică de fundal" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 sec." + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 sec." + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 sec." + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Locaţie stocare" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Dimensiune fişier" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album va fi şters." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgia" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Estompare" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Strălucire fină" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Salvare schimbări" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Salvaţi modificările sau renunţaţi la acestea?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Renunţ." + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Salvare" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "De epocă" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Soare" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Fotografie veche" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Tonuri de gri" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sepia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Culori estompate" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Lumină centrată" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Galben strălucitor" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Mărire claritate" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Schiţă" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Culori inversate" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Pictură în ulei" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Posterizare" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Desen animat" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Pop Art" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Creion magic" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Adăugat la Listă blocare" + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Rotire" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Spaţiul din memoria dispozitivului este insuficient. Deschideţi meniul Setări > Energie şi stocare > Stocare, apoi ştergeţi câteva fişiere şi încercaţi din nou." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Interval diapozitive" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Interval diapozitive" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Imagine contact" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Fără" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Editare" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Redenumire" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Setare ca" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Descărcaţi" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Redenumire" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Redenumire" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Redenum." + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Numele fişierului este deja utilizat în folderul de destinaţie." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Înloc." + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Setare ca" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Fundal ecran de pornire" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Fundal ecran de blocare" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Fundaluri ecr. acasă şi bloc." + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Detalii" + +msgid "IDS_IV_BODY_DATE" +msgstr "Dată" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Imposibil de salvat imaginea" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Nu există spaţiu suficient (%d MB) în memoria dispozitivului." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Nu există spaţiu suficient (%d MO) pe cardul SD." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Ştergeţi câteva fişiere şi încercaţi din nou." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Salvare imagine" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Spaţiu insuficient (mai aveţi %d MB) în memoria dispozitivului. Elementul va fi salvat pe cardul SD." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Spaţiu insuficient (mai aveţi %d MB) pe cardul SD. Elementul va fi salvat în memoria dispozitivului." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Această imagine va fi ştearsă." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Oprire" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Ştergere" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Eroare" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Selectare zonă" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Efectuat" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Încărcarea acestui element nu a reuşit." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negativ" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "EFECTUAT" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ANULARE" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negativ" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Galeria nu poate fi deschisă." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Se încarcă..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Încărcare..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Încărcarea nu a reuşit." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Se încarcă imaginea..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Renunţare" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Nu se poate descărca" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Datele mobile sunt dezactivate. Conectaţi-vă la o reţea Wi-Fi sau activaţi Datele mobile şi încercaţi din nou." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Nu se trimite" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 secundă" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d secunde" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Efect" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Efecte" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Curgere" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Estompare" + +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Mărire" diff --git a/res/po/ru_RU.po b/res/po/ru_RU.po old mode 100755 new mode 100644 index 3ecf826..41bc16a --- a/res/po/ru_RU.po +++ b/res/po/ru_RU.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Добавить на главный экран" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Личное" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Авто" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Переименовать" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Это видео будет удалено." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Имя файла уже используется" + +msgid "IDS_ST_BODY_OFF" +msgstr "Выключено" + +msgid "IDS_COM_BODY_DONE" +msgstr "Готово" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Вспышка" +msgid "IDS_COM_SK_STOP" +msgstr "Стоп" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "Функция %1$s отключена в этом приложении. Чтобы включить ее, перейдите к %2$s, выберите функцию и данное приложение" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "ОК" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Готово" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Отмена" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Введите имя" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Нет имени" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Существует только один альбом." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Можно выбрать до %d элементов." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Свойства" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Удалить" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Удалить?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Отмена" + +msgid "IDS_IV_POP_DELETED" +msgstr "Удалено." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Избранное" + +msgid "IDS_IV_SK_SAVE" +msgstr "Соxранить" + +msgid "IDS_IV_POP_SAVED" +msgstr "Сохранено." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Настройки" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Размер" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Неизвестно" + +msgid "IDS_IV_SK_YES" +msgstr "Да" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Копировать в буфер обмена" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Фокусное расстояние" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Включить вспышку" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Вспышка выключена" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Просмотр изображения" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Баланс белого" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Все фотографии" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Авто" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Ориентация" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Создать метку" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Выберите рисунок" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Баланс белого" +msgid "IDS_MP_BODY_DURATION" +msgstr "Продолжительность" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Суммарное время" +msgid "IDS_ST_POP_SET" +msgstr "Установлено" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Добавить метку" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Теги" -msgid "IDS_IV_POP_ADDED" -msgstr "Добавлено" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Комментировать" -msgid "IDS_IV_BODY_ANY" -msgstr "Любой" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Просмотр мультимедиа на других устройствах с помощью устройств поблизости." -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Доступно" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Видеофайлы не содержат информации о людях, так как они не поддерживают метки лиц." -msgid "IDS_IV_BODY_BASIC" -msgstr "Основной" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Не удалось поделиться этим изображением. Оно защищено DRM." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Фотоопределитель" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Невозможно открыть файл." -msgid "IDS_IV_BODY_COUNT" -msgstr "Количество" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Информация о погоде может не соответствовать действительности из-за задержки обновления." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Дата создания" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Личное содержимое, скопированное в буфер обмена, может использоваться для создания нового содержимого. Новое содержимое может не скрываться автоматически." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Дисплей" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Слишком маленькое изображение." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Введите название тега" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Сведения о дате выводятся только тогда, когда видны другие теги." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Пустая запись" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Нажимайте и удерживайте эскизы для выбора лучших снимков." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Запуск" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Параметры" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Формат файла" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Задайте обои для главного экрана и экрана блокировки." -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Расположение файла" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Использовать эту фотографию как идентификатор абонента %s?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Пересылка" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Использовать как фотоопределитель" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Обои главного экрана" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Отправка..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Невозможно" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Выберите устройство" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Индивидуальный" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "Карта памяти SD извлечена." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Интервал" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Разрешение не получено." + +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Нет местоположения" + +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "На фотографии нет тегов людей. Добавьте их" + +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Лица не распознаны." + +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Недостаточно памяти. Удалите некоторые элементы" + +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Сбой подключения сети." + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Достигнуто максимальное число символов (%d)." msgid "IDS_IV_POP_INVALID_IMAGE_FILE" msgstr "Недопустимый файл изображения" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Широта" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Со вспышкой" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Расположения" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Формат файла не поддерживается." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Экран блокировки" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Пустая запись." -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Долгота" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Введите название тега." -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Достигнуто максимальное число символов (%d)" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Чтобы видеть теги погоды, включите автообновление обоев “Погода”." -msgid "IDS_IV_BODY_N_A" -msgstr "Н/Д" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Загрузка завершена" -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Новый тег" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Лучшее фото" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Разрешение не получено" +msgid "IDS_IV_POP_ADDED" +msgstr "Добавлено." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Возможно" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Подписать" -msgid "IDS_IV_BODY_PRINT" -msgstr "Печать" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Использовать движение" -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Печать через Bluetooth" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Удалить из избранного" -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Разрешение" +msgid "IDS_IV_OPT_TRIM" +msgstr "Обрезать" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Состояние прав" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Отметить лицо" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "Карта памяти SD извлечена" +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Помощник по тегам" -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Выберите устройство" +msgid "IDS_IV_OPT_TAG" +msgstr "Метка" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Имя сервера" +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Запустить" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Установить как" +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "Слайд-шоу" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Задайте обои для главного экрана и экрана блокировки" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Слайд-шоу" + +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Показать элементы" msgid "IDS_IV_OPT_SHARE" msgstr "Поделиться" -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "Слайд-шоу" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Повернуть вправо" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Счетчик" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Повернуть влево" -msgid "IDS_IV_OPT_TRIM" -msgstr "Обрезать" +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Удалить тег" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Не ограничено" +msgid "IDS_IV_OPT_REFRESH" +msgstr "Обновить" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Период действия" +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Печать через Bluetooth" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Поставщик" +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Обнаружить вручную" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Обои для главного экрана и экрана блокировки" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Скрытые элементы" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Узнать дорогу" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "Передача файлов" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Не показывать снова" +msgid "IDS_IV_OPT_ERASER" +msgstr "Корректор" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Чтобы уменьшить или увеличить экран, нажмите и удерживайте две точки, а затем наклоните устройство назад и вперед" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Изменить тег погоды" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Изменить метку" + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Изменить подпись" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Удалить подпись" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Копировать в буфер обмена" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Сведения о подключ." + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Облачное хранилище" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Обмен фото с друзьями" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Лучшее лицо" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Как видеофайл" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Как изображение" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Анимированный снимок" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Добавить тег погоды" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Добавить имя" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Добавить подпись" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Музыка для слайд-шоу" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Отправить 'Фото со звуком'" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Установить как" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Отправить изображение" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Выберите контакт, который нужно отправить" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Скорость воспроизведения" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Экран блокировки" msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Наклон" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Обои главного экрана" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Изменить тег погоды" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Ред. серийн. снимок" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Доступные устройства" + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "Все альбомы" -msgid "IDS_IV_OPT_TAG" -msgstr "Метка" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Добавить метку" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Обои для главного экрана и экрана блокировки" +msgid "IDS_IV_BUTTON_STOP" +msgstr "Стоп" -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Использовать движение" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Поиск" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Главный экран и экран блокировки" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Вы можете отправлять мультимедийные файлы на устройства поблизости." -msgid "IDS_IV_BODY_CROP" -msgstr "Обрезать" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "%s и еще %d чел." -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Главный экран" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "С %s" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Экран блокировки" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Баланс белого" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Повернуть влево" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Погода" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Повернуть вправо" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Погода" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Обнаружить вручную" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Поставщик" -msgid "IDS_IV_BODY_ME" -msgstr "Я" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Период действия" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Изменить метку" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Не ограничено" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Удалить тег" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Невозможно загрузить фотографию." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Счетчик" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "Записанную информацию о погоде следует редактировать вручную. Ваше устройство не поддерживает получение записанной информации о погоде из виджета погоды." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Прикоснитесь к лицам для просмотра информации о людях." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Чтобы уменьшить или увеличить экран, нажмите и удерживайте две точки, а затем наклоните устройство назад и вперед." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Солнечный день" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Снежный день" msgid "IDS_IV_BODY_SHARE_VIA" msgstr "Отправить через" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Не отправлять" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Имя сервера" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Обмен фото с друзьями" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Выберите область, чтобы обрезать изображение." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Идентифик. лиц" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Выбранная область будет напечатана." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Просмотр изображения" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Выбранная область будет применена к обоям." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Выбранная область будет применена к изображению контакта." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Состояние прав" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Разрешение" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Удалить из избранного" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Дождливый день" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Печать" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Возможно" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Люди" + +msgid "IDS_IV_BODY_N_A" +msgstr "Н/Д" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Нет меток" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Новый тег" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" msgstr "Устройства поблизости" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Выберите область, чтобы обрезать изображение" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Мое устройство" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Выбранная область будет применена к обоям" +msgid "IDS_IV_BODY_MODEL" +msgstr "Модель" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Выбранная область будет напечатана" +msgid "IDS_IV_BODY_ME" +msgstr "Я" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Вы можете отправлять мультимедийные файлы на устройства поблизости" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Изготовитель" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Выбранная область будет применена к изображению контакта" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Долгота" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Экран блокировки" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Расположение" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Место" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Расположения" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Местоположение" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Широта" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "В %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Интервал" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Индивидуальный" + +msgid "IDS_IV_BODY_IN" +msgstr "Увеличить" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Невозможно" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Главный экран" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Главный экран и экран блокировки" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Пересылка" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Flash-анимация" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Имя файла" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Расположение файла" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Формат файла" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "Время экспоз." +msgstr "Выдержка" + +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Запуск" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Чтобы видеть теги местоположения, включите теги GPS в приложении “Камера”." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Чтобы видеть теги погоды, включите автообновление в виджете погоды." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Длительность" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "Сведения об управлении цифровыми правами" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Не показывать снова" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Больше не спрашивать" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Дисплей" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Дата создания" + +msgid "IDS_IV_BODY_CROP" +msgstr "Обрезать" -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Создать метку" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Количество" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Пасмурный день" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Ночью ясно" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Фотография контакта" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Основной" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Доступно" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Авто" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Применение подходящей цветовой темы к приложениям." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Диафрагма" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Ориентация" +msgid "IDS_IV_BODY_ANY" +msgstr "Любой" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Изготовитель" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Добавить в Избранное" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Фокусное расстояние" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Суммарное время" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Ориентация" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Достигнуто максимальное число символов." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Модель" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Сбой" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Добавить имя" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Использовать как фотоопределитель" +msgid "IDS_ST_BODY_MB" +msgstr "МБ" + +msgid "IDS_ST_BODY_KB" +msgstr "КБ" + +msgid "IDS_ST_BODY_GB" +msgstr "Гб" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Изменить" + +msgid "IDS_ST_BODY_DATE" +msgstr "Дата" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Учетные записи" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Загрузка" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Здесь будут показаны фотографии, отправленные в Dropbox." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Загрузка..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Добавить рисунки" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Здесь выводятся фотографии, добавленные в избранное." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Удалить идентификацию лица?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Назначить имя" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Подтвердить как %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Макет" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "Добавлено фотографий: %d" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Альбом будет отменен." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Начало загрузки..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Недостаточно памяти. Удалите некоторые элементы" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Приватное хранилище" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Перетащите сюда." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Нажмите, чтобы добавить изображения." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Файл уже существует." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Этот элемент будет удален." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Здесь будут показаны фотографии, отправленные в Facebook." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Неверный символ" + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Вручную" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Обработка..." + +msgid "IDS_ST_BODY_OK" +msgstr "Да" + +msgid "IDS_ST_SK_RENAME" +msgstr "Переименовать" + +msgid "IDS_COM_BODY_NONE" +msgstr "Нет" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "Выбрано: %d" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Память устройства" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "Карта памяти SD" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Скорость" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Фоновая музыка" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 сек." + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 сек." + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 сек." + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Место хранения" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Размер файла" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "Будет удален 1 альбом." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Ностальгия" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Размытость" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Мягкое свечение" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Сохранить изменения" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Сохранить изменения или удалить их?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Удалить" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Сохранить" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Винтаж" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Лучи солнца" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Старое фото" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Ретро" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Оттенки серого" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Сепия" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Выцветшее" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Светильник" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Желтый свет" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Увеличение резкости" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Эскиз" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Обращенные цвета" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Масляная краска" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Постеризация" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Мультфильм" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Поп-арт" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Волшебное перо" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Добавлен в список блокировки." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Повернуть" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Недостаточно места в памяти устройства. Откройте “Параметры” > “Питание и хранилище” > “Хранилище”, удалите часть файлов и повторите попытку." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Интервал между слайдами" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Интервал между слайдами" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Фотография контакта" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Нет" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Изменить" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Переименовать" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Установить как" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Загрузить" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Переименовать" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Переименовать" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Переим." + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Файл с таким именем уже существует в папке назначения." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Заменить" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Установить как" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Обои главного экрана" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Обои экрана блокировки" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Обои главн. экр. и экр. блок." + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Свойства" + +msgid "IDS_IV_BODY_DATE" +msgstr "Дата" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Невозм. сохранить изображение" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Недостаточно места (%d МБ) в памяти устройства." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "На карте памяти SD недостаточно места (%d МБ)." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Удалите несколько файлов и повторите попытку." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Сохранить изображение" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Недостаточно места в памяти устройства (осталось %d МБ). Этот элемент будет сохранен на карту памяти SD." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Недостаточно места на карте памяти SD (осталось %d МБ). Этот элемент будет сохранен в памяти устройства." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Изображение будет удалено." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Стоп" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Удалить" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Ошибка" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Выбрать область" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Готово" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Не удается загрузить этот элемент." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Негатив" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "ГОТОВО" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ОТМЕНА" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Негатив" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Не удалось открыть галерею." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Загрузка..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Загрузка..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Сбой загрузки." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Загрузка изображения..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Отменить" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Не удалось загрузить" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Передача мобильных данных отключена. Подключитесь к сети Wi-Fi или включите мобильные данные и повторите попытку." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Не отправлять" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 секунда" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d сек." + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Эффект" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Эффекты" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Поток" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Исчезание" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Лицо не обнаружено" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Увеличить" diff --git a/res/po/sk.po b/res/po/sk.po old mode 100755 new mode 100644 index 305e97c..3410a0f --- a/res/po/sk.po +++ b/res/po/sk.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Pridať na úv. obrazovku" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Súkromné" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Automaticky" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Premenovať" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Toto video sa odstráni." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Názov súboru sa už používa." + +msgid "IDS_ST_BODY_OFF" +msgstr "Vyp." + +msgid "IDS_COM_BODY_DONE" +msgstr "Hotovo" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Blesk" +msgid "IDS_COM_SK_STOP" +msgstr "Stop" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "Funkcia %1$s je v tejto aplikácii vypnutá. Ak chcete zapnúť túto funkciu, prejdite do menu %2$s, vyberte túto funkciu a potom vyberte túto aplikáciu." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Hotovo" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Zrušiť" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Zadať meno" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Žiadny názov" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "K dispozícii je iba jeden album." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Môžete vybrať maximálne %d položiek." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Podrobnosti" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Odstrániť" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Odstrániť?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Zrušiť" + +msgid "IDS_IV_POP_DELETED" +msgstr "Odstránené." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Obľúbené" + +msgid "IDS_IV_SK_SAVE" +msgstr "Uložiť" + +msgid "IDS_IV_POP_SAVED" +msgstr "Uložené." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Nastavenia" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Veľkosť" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Neznáme" + +msgid "IDS_IV_SK_YES" +msgstr "Áno" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Kopírovať do schránky" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Ohnisková vzdialenosť" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Zapnúť blesk" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Blesk vypnutý" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Zobrazovač obrázkov" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Vyváženie bielej" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Všetky obrázky" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Automaticky" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Orientácia" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Vytv. zn." +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Vyberte obrázok" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Vyváženie bielej" +msgid "IDS_MP_BODY_DURATION" +msgstr "Trvanie" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Akumulovaný čas" +msgid "IDS_ST_POP_SET" +msgstr "Nastaviť" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Pr. znač." +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Značky" -msgid "IDS_IV_POP_ADDED" -msgstr "Pridané" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Pridať komentár" -msgid "IDS_IV_BODY_ANY" -msgstr "Všetko" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Zobrazenie vašich médií v iných zariadeniach pomocou funkcie blízkych zariadení." -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Počet použití k dispozícii" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Videosúbory neobsahujú informácie o ľuďoch, pretože nepodporujú funkciu značky tváre." -msgid "IDS_IV_BODY_BASIC" -msgstr "Základný" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Tento obrázok nemožno zdieľať. Je chránený funkciou DRM." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Obrázok volajúceho" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Súbor sa nedá otvoriť." -msgid "IDS_IV_BODY_COUNT" -msgstr "Počet" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Zaznamenané informácie o počasí sa môžu líšiť od skutočného počasia z dôvodu intervalu aktualizácie." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Dátum vytvorenia" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Osobný obsah skopírovaný do schránky možno použiť na vytvorenie nového obsahu. Tento nový obsah nemusí byť automaticky skrytý." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Displej" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Obrázok je príliš malý." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Zadajte názov značky" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Informácie o dátume sa zobrazia iba vtedy, keď sú viditeľné ostatné značky." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Prázdna položka" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Ťuknutím na miniatúry a ich podržaním môžete vybrať najlepšie fotografie." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Vykonať" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Nastavenia prezentácie" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Formát súboru" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Nastaviť tapetu domovskej obrazovky a uzamknúť obrazovku" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Umiestnenie súboru" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Nastaviť túto fotografiu ako identifikáciu volajúceho %s?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Preposlanie" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Nastaviť ako ID volajúceho" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Tapeta úv. obrazovky" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Odosielanie..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Nemožné" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Vyberte zariadenie" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Jednotlivé" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "Karta SD je odstránená." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Interval" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Povolenie odmietnuté." -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Neplatný súbor s obrázkom" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Žiadne umiestnenie" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Zemepisná šírka" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Neboli označené žiadne tváre. Označte tváre na obrázku" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Umiestnenia" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Nezistili sa žiadne tváre." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Tapeta uzamk. obraz." +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Nedostatok pamäte. Vymažte niektoré položky" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Zemepisná dĺžka" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Sieťové pripojenie zlyhalo." msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Dosiahol sa maximálny počet znakov (%d)" +msgstr "Dosiahol sa maximálny počet znakov (%d)." -msgid "IDS_IV_BODY_N_A" -msgstr "Nedá sa použiť" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Neplatný súbor s obrázkom." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Nová značka" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Použ. sa blesk" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Povolenie odmietnuté" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Formát súboru nie je podporovaný." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Možné" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Prázdna položka." -msgid "IDS_IV_BODY_PRINT" -msgstr "Tlač" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Zadajte názov značky." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Tlačiť cez Bluetooth" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Ak chcete zobraziť značky počasia, zapnite automatické obnovovanie v tapete počasia." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Rozlíšenie" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Sťahovanie je dokončené" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Stav práv" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Najlepšia fotografia" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "Karta SD je odstránená" +msgid "IDS_IV_POP_ADDED" +msgstr "Pridané." -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Vyberte zariadenie" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Zapísať titulok" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Názov servera" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Použiť pohyb" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Nastaviť ako" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Odstrániť z obľúbených" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Nastaviť tapetu úvodnej obrazovky a uzamknúť obrazovku" +msgid "IDS_IV_OPT_TRIM" +msgstr "Orezať" -msgid "IDS_IV_OPT_SHARE" -msgstr "Zdieľať" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Označiť tvár" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Kontextový názov" + +msgid "IDS_IV_OPT_TAG" +msgstr "Značka" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Spustiť prezentáciu" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "Prezentácia" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Časovaný počet" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Prezentácia" -msgid "IDS_IV_OPT_TRIM" -msgstr "Orezať" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Zobraziť položky" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Neobmedzené" +msgid "IDS_IV_OPT_SHARE" +msgstr "Zdieľať" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Platnosť" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Otočiť doprava" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Dodávateľ" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Otočiť doľava" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Odstrániť značku" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Obnoviť" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Tlačiť cez Bluetooth" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Zistiť manuálne" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Tapeta domovskej a zamknutej obrazovky" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Skryté položky" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Získať navigačné pokyny" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "Prenos súboru" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Už nezobrazovať" +msgid "IDS_IV_OPT_ERASER" +msgstr "Guma" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Ťuknite na dva body, podržte ich stlačené a potom naklonením zariadenia tam a späť môžete zmenšiť alebo zväčšiť obrazovku" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Upr. značku počasia" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Uprav. zn." + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Upraviť titulok" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Odstrániť popis" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Kopírovať do schránky" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Inform. o pripojení" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Zdieľanie fotografií priateľa" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Najlepšia tvár" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Ako video súbory" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Ako obrázkové súbory" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Animovaná fotografia" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Pridať značku počasia" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Pridať meno" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Pridať titulok" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Hudba prezentácie" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Zdieľ. zvuku a fotogr." + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Nastaviť ako" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Odoslať obrázok príj." + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Vyberte kontakt na zdieľanie" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Rýchlosť prehrávania" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Tapeta uzamk. obraz." msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Informácie o naklonení" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Tapeta úv. obrazovky" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Upr. značku počasia" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Upraviť sériový záber" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Dostupné zariadenia" + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "Všetky albumy" -msgid "IDS_IV_OPT_TAG" -msgstr "Značka" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Pr. znač." -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Tapeta domovskej a zamknutej obrazovky" +msgid "IDS_IV_BUTTON_STOP" +msgstr "Stop" -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Použiť pohyb" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Vyhľadať" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Domovská obrazovka a zamknutá obrazovka" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Vaše médiá môžete zdieľať s inými zariadeniami pomocou funkcie blízkych zariadení." -msgid "IDS_IV_BODY_CROP" -msgstr "Orezať" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "S používateľom %s a %d ďalšími" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Úvodná obrazovka" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "S %s" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Uzamknúť obrazovku" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Vyváženie bielej" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Otočiť doľava" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Počasie" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Otočiť doprava" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Počasie" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Zistiť manuálne" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Dodávateľ" -msgid "IDS_IV_BODY_ME" -msgstr "Ja" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Platnosť" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Uprav. zn." +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Neobmedzené" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Odstrániť značku" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Fotografia sa nedá načítať." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Časovaný počet" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Ťuknutím na tváre môžete zobraziť informácie o ľuďoch." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Ťuknite na dva body, podržte ich stlačené a potom naklonením zariadenia tam a späť môžete zmenšiť alebo zväčšiť obrazovku." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Slnečný deň" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Zasnežený deň" msgid "IDS_IV_BODY_SHARE_VIA" msgstr "Zdieľať cez" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Neodoslať" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Názov servera" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Zdieľanie fotografií priateľa" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Vyberte oblasť na orezanie obrázka." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Označ. tváre" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Vybratá oblasť sa vytlačí." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Zobrazovač obrázkov" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Vybratá oblasť sa použije pre tapetu." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Vybratá oblasť sa použije pre obrázok kontaktu." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Stav práv" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Rozlíšenie" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Odstrániť z obľúbených položiek" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Daždivý deň" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Tlač" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Možné" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Ľudia" + +msgid "IDS_IV_BODY_N_A" +msgstr "Nedá sa použiť" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Žiadna značka" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Nová značka" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" msgstr "Blízke zariadenia" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Vyberte oblasť na orezanie obrázka" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Moje zariadenie" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Vybratá oblasť sa použije pre tapetu" +msgid "IDS_IV_BODY_MODEL" +msgstr "Model" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Vybratá oblasť sa vytlačí" +msgid "IDS_IV_BODY_ME" +msgstr "Ja" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Vaše médiá môžete zdieľať s inými zariadeniami pomocou funkcie blízkych zariadení" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Výrobca" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Vybratá oblasť sa použije pre obrázok kontaktu" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Zemepisná dĺžka" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Zamknutá obrazovka" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Miesto" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Poloha" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Umiestnenia" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "GPS" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Zemepisná šírka" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "V %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Interval" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Jednotlivé" + +msgid "IDS_IV_BODY_IN" +msgstr "Zväčšiť" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Nemožné" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Domovská obrazovka" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Domovská obrazovka a zamknutá obrazovka" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Preposlanie" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Flash menu" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Názov súboru" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Umiestnenie súboru" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Formát súboru" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "Doba expozície" -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Vykonať" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Ak chcete zobraziť lokalizačné značky, zapnite značky systému GPS v aplikácii Fotoaparát." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Ak chcete zobraziť značky počasia, zapnite automatické obnovenie v aplikácii počasia." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Trvanie" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM – informácie" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Už nezobrazovať" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Už sa nepýtať" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Displej" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Dátum vytvorenia" + +msgid "IDS_IV_BODY_CROP" +msgstr "Orezať" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Vytv. zn." + +msgid "IDS_IV_BODY_COUNT" +msgstr "Počet" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Zamračený deň" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Jasná noc" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Obrázok volajúceho" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Základný" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Počet použití k dispozícii" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Automatický" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Môžete použiť vyhovujúci farebný motív pre aplikácie." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Clona" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Orientácia" +msgid "IDS_IV_BODY_ANY" +msgstr "Všetko" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Výrobca" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Pridať do obľúbených" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Ohnisková vzdialenosť" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Akumulovaný čas" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Orientácia" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Bol dosiahnutý maximálny počet znakov." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Model" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Zlyhanie" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Pridať meno" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Nastaviť ako ID volajúceho" +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "kB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Upraviť" + +msgid "IDS_ST_BODY_DATE" +msgstr "Dátum" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Kontá" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Stiahnuť" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Po odoslaní obrázkov do služby Dropbox sa zobrazia položky." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Sťahovanie..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Pridať obrázky" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Po označení obrázkov ako obľúbených sa zobrazia obrázky." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Odstrániť identifikáciu tváre?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Priradiť meno" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Potvrdiť ako %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Rozloženie" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "Pridané obrázky: %d" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Album sa zruší." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Spúšťa sa sťahovanie..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Nedostatok pamäte. Vymažte niektoré položky" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Súkromné úložisko" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Presuňte sem." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Ťuknutím môžete obrázky." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Súbor už existuje." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Táto položka sa vymaže." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Po odoslaní obrázkov do služby Facebook sa zobrazia položky." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Chybný znak." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Ručne" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Spracováva sa..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Premenovať" + +msgid "IDS_COM_BODY_NONE" +msgstr "Žiadny" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "Vybraté: %d" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Úložisko zariadenia" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "Karta SD" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Rýchlosť" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Hudba na pozadí" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 s" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 s" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 s" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Umiestnenie úložiska" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Veľkosť súboru" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album sa odstráni." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgia" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Rozostriť" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Jemná žiara" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Uložiť zmeny" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Uložiť zmeny alebo ich zahodiť?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Zahodiť" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Uložiť" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Starobylý efekt" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Slnečný svit" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Stará fotografia" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Odtiene sivej" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sépia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Vyblednuté farby" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Bodové osvetlenie" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Žltá žiara" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Zvýšiť ostrosť" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Skica" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Inverzné farby" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Olejomaľba" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Posterizácia" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Karikatúra" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Pop-art" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Magické pero" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Pridaný do zoznamu blokovaných používateľov." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Otočiť" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "V úložisku zariadenia nie je dostatok miesta. Prejdite do menu Nastavenia > Energia a úložisko > Úložisko a potom odstráňte niektoré súbory a skúste to znova." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Interval zmeny snímok" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Interval zmeny snímok" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Fotografia kontaktu" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Žiadne" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Upraviť" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Premenovať" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Nastaviť ako" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Stiahnuť" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Premenovať" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Premenovať" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Premen." + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "V cieľovom priečinku už existuje súbor s týmto názvom." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Nahradiť" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Nastaviť ako" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Tapeta domovskej obrazovky" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Tapeta zamknutej obrazovky" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Tapety dom. a zamk. obrazovky" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Podrobnosti" + +msgid "IDS_IV_BODY_DATE" +msgstr "Dátum" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Fotografia sa nedá uložiť" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "V úložisku zariadenia nie je dostatok miesta (%d MB)." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Na karte SD nie je dostatok miesta (%d MB)." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Odstráňte niektoré súbory a skúste to znova." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Uložiť fotografiu" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "V úložisku zariadenia nie je dostatok miesta (zostáva %d MB). Táto položka sa uloží na kartu SD." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Na karte SD nie je dostatok miesta (zostáva %d MB). Táto položka sa uloží do úložiska zariadenia." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Tento obrázok sa vymaže." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Stop" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Odstrániť" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Chyba" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Vyberte oblasť" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Hotovo" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Nepodarilo sa načítať túto položku." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negatív" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "HOTOVO" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ZRUŠIŤ" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negatív" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Galéria sa nedá otvoriť." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Načítava sa..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Načítava sa..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Načítanie sa nepodarilo." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Načítanie obrázka..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Vyradiť" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Nedá sa stiahnuť" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobilné dátové pripojenie je vypnuté. Pripojte sa k sieti Wi-Fi alebo zapnite mobilné dátové pripojenie a skúste to znova." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Neodoslať" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 sekunda" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "Počet sekúnd: %d" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Efekt" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Efekty" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Prietok" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Stmievanie" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Nedetekovala sa žiadna tvár" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Priblížiť" diff --git a/res/po/sl.po b/res/po/sl.po old mode 100755 new mode 100644 index 4ac7336..63b2065 --- a/res/po/sl.po +++ b/res/po/sl.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Dodaj na domači zaslon" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Zasebno" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Samodejno" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Preimenuj" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Ta videoposnetek bo izbrisan." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Ime datoteke je že v uporabi." + +msgid "IDS_ST_BODY_OFF" +msgstr "Izključeno" + +msgid "IDS_COM_BODY_DONE" +msgstr "Končano" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Bliskavica" +msgid "IDS_COM_SK_STOP" +msgstr "Ustavi" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "Funkcija %1$s je onemogočena v tej aplikaciji. Če želite omogočiti to funkcijo, pojdite v meni %2$s, izberite to funkcijo in nato izberite to aplikacijo." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "V redu" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Končano" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Prekliči" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Vnesite ime" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Brez imena" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Obstaja samo en album." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Izberete lahko do %d elementov." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Podrobnosti" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Izbriši" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Izbrišem?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Prekliči" + +msgid "IDS_IV_POP_DELETED" +msgstr "Izbrisano." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Priljubljene" + +msgid "IDS_IV_SK_SAVE" +msgstr "Shrani" + +msgid "IDS_IV_POP_SAVED" +msgstr "Shranjeno." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Nastavitve" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Velikost" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Neznano" + +msgid "IDS_IV_SK_YES" +msgstr "Da" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Kopiraj v odložišče" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Goriščna razdalja" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Vključena bliskavica" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Bliskavica izklopljena" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Pregledovalnik slik" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Izenačevanje beline" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Vse slike" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Samodejno" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Orientacija" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Ustv. ozn." +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Izberite sliko" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Ravnotežje beline" +msgid "IDS_MP_BODY_DURATION" +msgstr "Trajanje" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Skupni čas" +msgid "IDS_ST_POP_SET" +msgstr "Nastavi" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Dodaj ozn." +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Oznake" -msgid "IDS_IV_POP_ADDED" -msgstr "Dodano" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Dodaj komentar" -msgid "IDS_IV_BODY_ANY" -msgstr "Karkoli" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Oglejte si svoje predstavnostne vsebine v drugih napravah z uporabo naprav v bližini." -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Število uporab" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Video datoteke ne vsebujejo informacij o osebah, saj ne podpirajo funkcije označevanja obrazov." -msgid "IDS_IV_BODY_BASIC" -msgstr "Osnovno" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Te slike ni mogoče deliti z drugimi. Zaščitena je z DRM." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Slika klicatelja" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Datoteke ni mogoče odpreti." -msgid "IDS_IV_BODY_COUNT" -msgstr "Štetje" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Zaradi intervala posodabljanja se lahko posneti podatki o vremenu razlikujejo od dejanskega vremena." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Datum ustvarjanja" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Osebno vsebino, kopirano v odložišče, lahko uporabite za ustvarjanje nove vsebine. Nova vsebina morda ne bo samodejno skrita." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Zaslon" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Slika je premajhna." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Vnesite ime oznake" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Datum je prikazan samo, ko so druge oznake vidne." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Prazen vnos" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Pritisnite in pridržite sličice, da izberete najboljše fotografije." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Izvedi" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Nastavitve diaprojekcije" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Zapis datoteke" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Nastavi ozadje za domači zaslon in zakleni zaslon" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Lokacija datoteke" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Želite to sliko nastaviti kot ID klicatelja za osebo %s?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Posredovanje" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Nastavi kot ID kličočega" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Ozadje za dom. zaslon" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Pošiljam..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Nemogoče" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Izberite napravo" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Posamezno" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "Kartica SD je bila odstranjena." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Interval" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Dovoljenje zavrnjeno." -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Neveljavna slikovna datoteka" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Ni lokacije" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Zemljepisna širina" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Noben obraz ni označen. Označite obraze na sliki" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Lokacije" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Noben obraz ni zaznan." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Ozadje za zak. zaslon" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Ni dovolj pomnilnika. Izbrišite nekaj predmetov" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Zemljepisna dolžina" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Omrežna povezava prekinjena." msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Doseženo je največje število znakov (%d)" +msgstr "Doseženo je največje število znakov (%d)." -msgid "IDS_IV_BODY_N_A" -msgstr "Ni nastavljeno" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Neveljavna slikovna datoteka." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Nova oznaka" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Up. je blisk." -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Dovoljenje zavrnjeno" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Zapis datoteke ni podprt." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Mogoče" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Prazen vnos." -msgid "IDS_IV_BODY_PRINT" -msgstr "Tiskanje" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Vnesite ime oznake." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Tiskanje prek Bluetootha" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Omogočite samodejno osveževanje v ozadju za vreme, da prikažete vremenske oznake." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Ločljivost" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Prenos je končan" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Stanje pravic" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Najboljša fotografija" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "Kartica SD je bila odstranjena" +msgid "IDS_IV_POP_ADDED" +msgstr "Dodano." -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Izberite napravo" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Pisanje napisov" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Ime strežnika" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Uporabi gibanje" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Nastavi kot" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Odstrani iz priljubljenih" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Nastavi ozadje za domači zaslon in zakleni zaslon" +msgid "IDS_IV_OPT_TRIM" +msgstr "Obreži" -msgid "IDS_IV_OPT_SHARE" -msgstr "Deli" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Označevanje obraza" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Označi prijatelja" + +msgid "IDS_IV_OPT_TAG" +msgstr "Oznaka" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Začni diaprojekcijo" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "Diaprojekcija" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Časovno število" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Diaprojekcija" -msgid "IDS_IV_OPT_TRIM" -msgstr "Obreži" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Pokaži elemente" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Neomejeno" +msgid "IDS_IV_OPT_SHARE" +msgstr "Deli" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Veljavnost" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Zavrti v desno" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Ponudnik" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Zavrti v levo" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Odstrani oznako" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Osveži" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Tiskanje prek Bluetootha" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Ročno zaznavanje" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Ozadje za domači in zaklenjen zaslon" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Skriti elementi" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Pridobi navodila za pot" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "Prenos datotek" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Ne kaži več" +msgid "IDS_IV_OPT_ERASER" +msgstr "Radirka" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Pritisnite in držite na dveh točkah, nato pa nagnite napravo nazaj in naprej, da zmanjšate ali razširite zaslon" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Ur. oznako za vreme" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Uredi ozn." + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Uredi napis" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Izbriši napis" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Kopiraj v odložišče" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Podatki o povezavi" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Skupna raba prijateljeve fotografije" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Najboljši obraz" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Kot video datoteke" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Kot slikovne datoteke" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Animirana fotografija" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Dodaj vremensko oznako" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Dodajte ime" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Dodaj napis" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Glasba za diaprojekcijo" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Sk. raba sl. zvok+slik." + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Nastavi kot" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Pošlji to sliko osebi" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Izberite stik, s katerim želite deliti vsebino" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Hitrost predvajanja" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Ozadje za zak. zaslon" msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Več o nagibu" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Ozadje za dom. zaslon" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Ur. oznako za vreme" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Urejanje raf. posnetka" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Razpoložlj. naprave" + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "Vsi albumi" -msgid "IDS_IV_OPT_TAG" -msgstr "Oznaka" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Dodaj ozn." -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Ozadje za domači in zaklenjen zaslon" +msgid "IDS_IV_BUTTON_STOP" +msgstr "Stop" -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Uporabi gibanje" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Preišči" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Domači in zaklenjen zaslon" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Z uporabo naprav v bližini lahko svoje večpredstavnostne vsebine delite z drugimi napravami." -msgid "IDS_IV_BODY_CROP" -msgstr "Obreži" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Z osebo %s in %d drugimi" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Domači zaslon" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Z osebo %s" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Zaklepanje zaslona" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Izenačevanje beline" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Zavrti v levo" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Vreme" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Zavrti v desno" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Vreme" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Ročno zaznavanje" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Ponudnik" -msgid "IDS_IV_BODY_ME" -msgstr "Jaz" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Veljavnost" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Uredi ozn." +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Neomejeno" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Odstrani oznako" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Fotografije ni mogoče naložiti." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Časovno število" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Pritisnite obraze za prikaz podatkov o osebah." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Pritisnite in držite na dveh točkah, nato pa nagnite napravo nazaj in naprej, da zmanjšate ali razširite zaslon." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Sončen dan" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Sneženi dan" msgid "IDS_IV_BODY_SHARE_VIA" msgstr "Souporaba preko" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Ne pošlji" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Ime strežnika" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Skupna raba prijateljeve fotografije" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Izberite območje, da obrežete sliko." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Oznaka obraza" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Izbrano območje bo natiskano." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Pregledovalnik slik" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Izbrano območje bo uporabljeno za ozadje." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Izbrano območje bo uporabljeno za sliko stika." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Stanje pravic" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Ločljivost" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Odstrani iz priljubljenih" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Deževen dan" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Tiskanje" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Mogoče" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Ljudje" + +msgid "IDS_IV_BODY_N_A" +msgstr "Ni nastavljeno" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Ni oznake" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Nova oznaka" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" msgstr "Naprave v bližini" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Izberite območje, da obrežete sliko" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Moja naprava" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Izbrano območje bo uporabljeno za ozadje" +msgid "IDS_IV_BODY_MODEL" +msgstr "Model" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Izbrano območje bo natiskano" +msgid "IDS_IV_BODY_ME" +msgstr "Jaz" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Z uporabo naprav v bližini lahko svoje večpredstavnostne vsebine delite z drugimi napravami" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Proizvajalec" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Izbrano območje bo uporabljeno za sliko stika" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Zemljepisna dolžina" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Zaklenjen zaslon" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Lokacija" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Lokacija" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Lokacije" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Lokacija" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Zemljepisna širina" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "Lokacija: %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Interval" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Posamezno" + +msgid "IDS_IV_BODY_IN" +msgstr "Povečava" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Nemogoče" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Domači zaslon" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Domači in zaklenjen zaslon" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Posredovanje" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Bliskovni meni" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Ime datoteke" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Lokacija datoteke" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Zapis datoteke" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "Čas osvetlitve" -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Izvedi" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "V Kameri omogočite oznake GPS, če želite videti lokacijske oznake." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Omogočite samodejno osveževanje v pripomočku za vreme, da prikažete vremenske oznake." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Trajanje" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "Informacije o DRM" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Ne kaži več" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Ne vprašaj znova" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Zaslon" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Datum ustvarjanja" + +msgid "IDS_IV_BODY_CROP" +msgstr "Obreži" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Ustv. ozn." + +msgid "IDS_IV_BODY_COUNT" +msgstr "Štetje" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Oblačen dan" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Jasna noč" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Slika klicatelja" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Osnovno" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Število uporab" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Samodejno" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Uporabi ustrezno barvno temo v aplikacijah." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Zaslonka" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Orientacija" +msgid "IDS_IV_BODY_ANY" +msgstr "Karkoli" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Proizvajalec" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Dodaj med priljubljene" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Goriščna razdalja" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Skupni čas" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Orientacija" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Doseženo je največje dovoljeno število znakov." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Model" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Ni uspelo" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Dodaj ime" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Nastavi kot ID kličočega" +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Uredi" + +msgid "IDS_ST_BODY_DATE" +msgstr "Datum" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Računi" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Prenos" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Ko boste prenesli slike v Dropbox, se bodo elementi prikazali." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Prenašam ..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Dodaj slike" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Ko boste slike označili kot priljubljene, se bodo prikazale." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Želite odstraniti prepoznavanje obrazov?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Določi ime" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Potrdi kot %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Postavitev" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d slik dodanih" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Album bo preklican." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Prenos se začenja ..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Ni dovolj pomnilnika. Izbrišite nekaj predmetov" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Zasebna shramba" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Povlecite sem." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Pritisnite, da dodate slike." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Datoteka že obstaja." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Ta element bo izbrisan." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Ko boste prenesli slike v Facebook, se bodo elementi prikazali." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Neveljaven znak." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Ročno" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Obdelava ..." + +msgid "IDS_ST_BODY_OK" +msgstr "V redu" + +msgid "IDS_ST_SK_RENAME" +msgstr "Preimenuj" + +msgid "IDS_COM_BODY_NONE" +msgstr "Brez" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d izbranih" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Shramba naprave" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "Kartica SD" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Hitrost" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Glasba v ozadju" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 s" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 s" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 s" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Lokacija shrambe" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Velikost datoteke" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album bo izbrisan." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgija" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Zameglitev" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Nežen sijaj" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Shranite spremembe" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Želite shraniti spremembe ali jih zavreči?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Zavrzite" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Shrani" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Staranje" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Sonce" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Stara fotografija" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Črno-belo" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sepija" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Pojemajoče barve" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Stropna luč" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Rumeni sijaj" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Izostritev" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Skica" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Barvni negativ" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Oljna slika" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Poster" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Strip" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Pop Art" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Čarobno pisalo" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Dodano na seznam blokiranih." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Obrni" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "V shrambi naprave ni dovolj prostora. Pojdite v meni Nastavitve > Energija in shramba > Shramba, izbrišite nekaj datotek in poskusite znova." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Interval diaprojekcije" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Interval diaprojekcije" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Slika stika" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Brez" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Uredi" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Preimenuj" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Nastavi kot" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Prenos" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Preimenuj" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Preimenujte" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Preimen." + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Datoteka s tem imenom je že v ciljni mapi." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Zamenjaj" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Nastavi kot" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Ozadje za domači zaslon" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Ozadje za zaklenjen zaslon" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Ozadja za dom. in zakl. zaslon" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Podrobnosti" + +msgid "IDS_IV_BODY_DATE" +msgstr "Datum" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Slike ni mogoče shraniti" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "V shrambi naprave ni dovolj prostora (%d MB)." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Na kartici SD ni dovolj prostora (%d MB)." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Izbrišite nekaj datotek in poskusite znova." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Shrani sliko" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "V shrambi naprave ni dovolj prostora (še %d MB). Ta element bo shranjen na kartico SD." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Na kartici SD ni dovolj prostora (še %d MB). Ta element bo shranjen v shrambo naprave." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Ta slika bo izbrisana." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Ustavi" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Izbriši" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Napaka" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Izberite območje" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Končano" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Tega elementa ni uspelo naložiti." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negativ" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "KONČANO" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "PREKLIČI" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negativ" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Galerije ni mogoče odpreti." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Nalaganje ..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Nalaganje..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Prenos ni uspel." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Nalagam sliko..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Zavrzi" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Ni mogoče prenesti" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Funkcija Prenos podatkov prek mobilnega omrežja je izklopljena. Povežite se z omrežjem Wi-Fi ali vklopite funkcijo Prenos podatkov prek mobilnega omrežja in poskusite znova." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Ne pošlji" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 sekunda" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d sekund" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Učinek" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Učinki" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Tok" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Zatemnitev" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Obraz ni zaznan" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Povečava" diff --git a/res/po/sr.po b/res/po/sr.po old mode 100755 new mode 100644 index d8ac448..06e36c9 --- a/res/po/sr.po +++ b/res/po/sr.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Dodaj na početnu" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Privatni" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Automatski" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Preimenuj" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Ovaj video će biti izbrisan." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Naziv fajla već u upotrebi." + +msgid "IDS_ST_BODY_OFF" +msgstr "Isključeno" + +msgid "IDS_COM_BODY_DONE" +msgstr "Gotovo" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Blic" +msgid "IDS_COM_SK_STOP" +msgstr "Stop" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "Funkcija %1$s je onemogućena u ovoj aplikaciji. Da bi omogućio/la ovu funkciju, idi u %2$s, izaberi ovu funkciju, a zatim izaberi ovu aplikaciju." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Gotovo" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Otkaži" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Unesi ime" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Nema imena" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Postoji samo jedan album." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Možete izabrati do %d stavki." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Detalji" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Obriši" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Obriši?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Otkaži" + +msgid "IDS_IV_POP_DELETED" +msgstr "Obrisano." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Omiljeni" + +msgid "IDS_IV_SK_SAVE" +msgstr "Sačuvaj" + +msgid "IDS_IV_POP_SAVED" +msgstr "Sačuvano." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Podešavanja" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Veličina" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Nepoznato" + +msgid "IDS_IV_SK_YES" +msgstr "Da" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Kopiraj u privremenu memoriju" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Žižna daljina" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Blic uključen" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Isključen blic" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Prikazivač slika" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Balans bele boje" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Sve slike" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Automatski" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Orijentacija" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Označi" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Izaberi sliku" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Balans bele boje" +msgid "IDS_MP_BODY_DURATION" +msgstr "Trajanje" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Akumulirano vreme" +msgid "IDS_ST_POP_SET" +msgstr "Podesi" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Označi" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Oznake" -msgid "IDS_IV_POP_ADDED" -msgstr "Dodato" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Dodaj komentar" -msgid "IDS_IV_BODY_ANY" -msgstr "Sve" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Prikaži medije na drugim uređajima koristeći uređaje u blizini." -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Moguće upotrebe" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Video datoteke ne sadrže informacije o ljudima jer ne podržavaju funkciju označavanja lica." -msgid "IDS_IV_BODY_BASIC" -msgstr "Osnovni" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Nije moguće deliti ovu sliku. DRM je štiti." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Slika pozivaoca" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Nemoguće otvoriti fajl." -msgid "IDS_IV_BODY_COUNT" -msgstr "Broj" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Zabeležena informacija o vremenskim prilikama može se razlikovati od trenutnih vremenskih prilika zbog intervala dopune." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Datum kreiranja" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Lični sadržaj koji je kopiran u privremenu memoriju može da se koristi za kreiranje novog sadržaja. Tvoj novi sadržaj možda neće automatski biti skriven." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Ekran" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Slika je premala." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Unesi naziv oznake" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Podatak o datumu se prikazuje samo ako se prikazuju i druge oznake." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Unos je prazan" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Kucni i zadrži sličice da bi izabrao/la najbolje fotografije." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Izvrši" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Podešavanja za slajd-šou" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Format fajla" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Podesi tapete za početni i zaključani ekran" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Lokacija fajla" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Podesiti ovu sliku kao identifikaciju pozivaoca %s?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Prosleđivanje" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Postavi kao identifikaciju pozivaoca" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Tapet početnog ekrana" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Slanje..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Nemoguće" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Izaberi uređaj" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Pojedinačno" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD kartica izvađena." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Interval" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Dozvola odbijena." -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Neispravna slika" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Nema lokacije" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Geografska širina" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Lica su označena. Označi lica na slici" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Lokacije" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Nije detektovano nijedno lice." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Tapet zaključ. ekrana" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Nedovoljno memorije. Obriši neke od stavki" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Geografska dužina" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Greška veze sa mrežom." msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Dostignut maksimalan broj karaktera (%d)" +msgstr "Dostignut maksimalan broj karaktera (%d)." -msgid "IDS_IV_BODY_N_A" -msgstr "Nema" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Neispravna slika." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Nova oznaka" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Blic je kor." -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Dozvola odbijena" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Format fajla nije podržan." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "moguće" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Unos je prazan." -msgid "IDS_IV_BODY_PRINT" -msgstr "Štampaj" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Unesi naziv oznake." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Štampaj putem Bluetooth-a" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Omogući automatsko osvežavanje tapeta da bi se videle oznake vremenskih prilika." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Rezolucija" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Preuzimanje završeno" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Pravni status" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Najbolja fotografija" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD kartica izvađena" +msgid "IDS_IV_POP_ADDED" +msgstr "Dodato." -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Izaberi uređaj" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Napiši titl" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Naziv servera" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Koristi pokrete" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Postavi kao" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Izbaci iz omiljenih" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Podesi tapete za početni i zaključani ekran" +msgid "IDS_IV_OPT_TRIM" +msgstr "Odseci" -msgid "IDS_IV_OPT_SHARE" -msgstr "Podeli" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Označi lice" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Asistent za oznake" + +msgid "IDS_IV_OPT_TAG" +msgstr "Oznaka" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Pokreni slajd-šou" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "Slajd-šou" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Preostalo vreme" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Slajd-šou" -msgid "IDS_IV_OPT_TRIM" -msgstr "Odseci" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Prikaži stavke" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Neograničeno" +msgid "IDS_IV_OPT_SHARE" +msgstr "Podeli" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Važenje" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Rotiraj udesno" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Dobavljač" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Rotiraj ulevo" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Ukloni oznaku" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Osveži" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Štampaj putem Bluetooth-a" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Ručno detektovanje" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Tapet početnog i zaključanog ekrana" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Skrivene stavke" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Nađi pravce" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "Prenos fajlova" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Ne prikazuj ponovo" +msgid "IDS_IV_OPT_ERASER" +msgstr "Brisač" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Kucni i drži u dve tačke, pa nagni uređaj u nazad ili napred da smanjiš ili povećaš prikaz" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Izm. oznaku za vreme" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Izm.oznaku" + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Izmeni titl" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Izbriši naslov" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Kopiraj u privremenu memoriju" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Informacije o vezi" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Deljenje fotografija drugara" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Najbolje lice" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Kao video fajlove" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Kao fajlove slike" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Animirana fotografija" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Dodaj oznaku za vreme" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Dodaj ime" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Dodaj naslov" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Muzika za slajd-šou" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Deli zvuk i snimi slike" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Postavi kao" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Pošalji ovu sliku na" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Izaberi kontakt za deljenje" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Brzina reprodukcije" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Tapet zaključ. ekrana" msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Saznaj o naginjanju" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Tapet početnog ekrana" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Izm. oznaku za vreme" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Izmeni brzi snimak" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Dostupni uređaji" + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "Svi albumi" -msgid "IDS_IV_OPT_TAG" -msgstr "Oznaka" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Označi" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Tapet početnog i zaključanog ekrana" +msgid "IDS_IV_BUTTON_STOP" +msgstr "Stop" -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Koristi pokrete" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Skeniraj" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Početni i zaključani ekrani" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Možeš da deliš medijske sadržaje sa drugim uređajima koristeći uređaje u blizini." -msgid "IDS_IV_BODY_CROP" -msgstr "Opseci" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Sa %s i %d drugih" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Početni ekran" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Sa %s" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Zaključavanje ekrana" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Balans bele boje" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Rotiraj ulevo" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Vreme" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Rotiraj udesno" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Vreme" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Ručno detektovanje" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Dobavljač" -msgid "IDS_IV_BODY_ME" -msgstr "Ja" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Važenje" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Izm.oznaku" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Neograničeno" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Ukloni oznaku" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Nije moguće učitati fotografiju." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Preostalo vreme" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Kucni na lica da bi prikazao/la informacije o osobama." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Kucni i drži u dve tačke, pa nagni uređaj u nazad ili napred da smanjiš ili povećaš prikaz." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Sunčan dan" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Snežan dan" msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "Podeli putem" +msgstr "Podeli koristeći" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Ne šalji" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Naziv servera" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Deljenje fotografija drugara" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Izaberi oblast za isecanje slike." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Označav. lica" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Izabrana oblast će biti odštampana." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Prikazivač slika" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Izabrana oblast biće primenjena na tapet." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Izabrana oblast biće primenjena na sliku kontakta." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Pravni status" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Rezolucija" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Ukloni iz omiljenih" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Kišni dan" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Štampaj" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "moguće" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Ljudi" + +msgid "IDS_IV_BODY_N_A" +msgstr "Nema" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Nema oznake" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Nova oznaka" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" msgstr "Uređaji u blizini" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Izaberi oblast za isecanje slike" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Moj uređaj" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Izabrana oblast biće primenjena na tapet" +msgid "IDS_IV_BODY_MODEL" +msgstr "Model" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Izabrana oblast će biti odštampana" +msgid "IDS_IV_BODY_ME" +msgstr "Ja" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Možeš da deliš medijske sadržaje sa drugim uređajima koristeći uređaje u blizini" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Proizvođač" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Izabrana oblast biće primenjena na sliku kontakta" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Geografska dužina" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Zaključan ekran" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Lokacija" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Lokacija" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Lokacije" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Lokacija" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Geografska širina" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "U %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Interval" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Pojedinačno" + +msgid "IDS_IV_BODY_IN" +msgstr "Uvećaj" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Nemoguće" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Početni ekran" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Početni i zaključan ekrani" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Prosleđivanje" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Animirani meni" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Ime fajla" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Lokacija fajla" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Format fajla" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "Traj. ekspoz." -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Izvrši" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Omogući GPS oznake na kameri da bi se videle oznake lokacija." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Omogući automatsko osvežavanje u widget-u za vreme da bi se videle oznake vremenskih prilika." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Trajanje" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM informacije" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Ne prikazuj ponovo" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Ne pitaj ponovo" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Ekran" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Datum kreiranja" + +msgid "IDS_IV_BODY_CROP" +msgstr "Opseci" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Označi" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Broj" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Oblačan dan" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Noć bez oblaka" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Slika pozivaoca" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Osnovni" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Moguće upotrebe" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Auto" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Primeni odgovarajuću temu boja na aplikacije." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Otvor blende" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Orijentacija" +msgid "IDS_IV_BODY_ANY" +msgstr "Sve" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Proizvođač" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Dodaj u omiljene" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Žižna daljina" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Akumulirano vreme" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Orijentacija" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Dostignut maksimalan broj karaktera." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Model" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Nije uspelo" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Dodaj ime" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Postavi kao identifikaciju pozivaoca" +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Izmeni" + +msgid "IDS_ST_BODY_DATE" +msgstr "Datum" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Nalozi" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Preuzmi" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Nakon što pošalješ slike u Dropbox, prikazaće se stavke." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Preuzimanje..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Dodaj slike" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Kada označiš slike kao omiljene, one će se prikazati." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Ukloniti prepoznavanje lica?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Dodeli ime" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Potvrdi za osobu %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Izgled" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "Dodato je %d slika" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Ovaj album će biti otkazan." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Preuzimanje počinje..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Nedovoljno memorije. Obriši neke od stavki" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Privatna memorija" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Prevuci ovde." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Kucni za dodavanje slika." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Fajl već postoji." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Ova stavka će biti obrisana." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Nakon što pošalješ slike na Facebook, prikazaće se stavke." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Neispravan karakter." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Ručno" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Obrada..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Preimenuj" + +msgid "IDS_COM_BODY_NONE" +msgstr "Nema" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "Izabrano je %d" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Skladišna lokacija uređaja" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD kartica" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Brzina" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Pozadinska muzika" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 s" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 s" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 s" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Skladišna lokacija" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Veličina fajla" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album će biti izbrisan." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgija" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Zamućenje" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Mekani sjaj" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Sačuvaj izmene" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Sačuvati promene ili ih odbaciti?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Odbaci" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Sačuvaj" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Vintidž" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Sunce" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Stara fotografija" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Nijanse sive" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sepija" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Boje koje blede" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Svetlost lampe" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Žuti sjaj" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Izoštravanje" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Skica" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Inverzija boja" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Uljane boje" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Posterizuj" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Crtani film" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Pop-art" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Magična olovka" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Dodato u listu blokiranih." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Rotiraj" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Nema dovoljno prostora na skladišnoj lokaciji uređaja. Idi na Podešavanja > Napajanje i skladište > Skladišna lokacija, a zatim izbriši neke fajlove i pokušaj ponovo." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Interval između slajdova" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Interval između slajdova" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Slika kontakta" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Nema" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Izmeni" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Preimenuj" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Postavi kao" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Preuzmi" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Preimenuj" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Preimenuj" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Preime." + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "U odredišnom folderu već postoji fajl sa ovim nazivom." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Zameni" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Podesi kao" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Tapet početnog ekrana" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Tapet zaključanog ekrana" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Tapeti počet. i zaklj. ekrana" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Detalji" + +msgid "IDS_IV_BODY_DATE" +msgstr "Datum" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Nemoguće je sačuvati sliku" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Nema dovoljno mesta (%d MB) u skladišnoj lokaciji uređaja." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Nema dovoljno prostora (%d MB) na SD kartici." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Izbriši neke fajlove i pokušaj ponovo." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Sačuvaj sliku" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Nema dovoljno prostora na skladišnoj lokaciji uređaja (preostalo je %d MB). Ova stavka će biti sačuvana na SD kartici." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Nema dovoljno prostora na SD kartici (preostalo je %d MB). Ova stavka će biti sačuvana na skladišnoj lokaciji uređaja." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Ova slika će biti obrisana." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Zaustavi" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Izbriši" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Greška" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Izaberi područje" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Gotovo" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Neuspešno učitavanje ove stavke." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negativ" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "GOTOVO" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "OTKAŽI" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negativ" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Nije moguće otvoriti Galeriju." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Učitavanje..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Učitavanje..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Učitavanje neuspešno." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Učitavanje slike..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Odbaci" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Ne može se preuzeti" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Prenos podataka putem mobilne telefonije je isključen. Poveži se na Wi-Fi mrežu ili uključi Prenos podataka putem mobilne telefonije i pokušaj ponovo." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Ne šalji" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 sekunda" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d sekundi" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Efekat" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Efekti" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Tok" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Izbledi" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Lice nije detektovano" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Uvećanje" diff --git a/res/po/sv.po b/res/po/sv.po old mode 100755 new mode 100644 index 75e3730..0455109 --- a/res/po/sv.po +++ b/res/po/sv.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Lägg till start" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Privat" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Auto" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Byt namn" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Det här videoklippet kommer att raderas." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Filnamnet används redan." + +msgid "IDS_ST_BODY_OFF" +msgstr "Av" + +msgid "IDS_COM_BODY_DONE" +msgstr "Klar" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Fotolampa" +msgid "IDS_COM_SK_STOP" +msgstr "Stopp" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s är inaktiverad i det här programmet. Om du vill aktivera den här funktionen går du till %2$s, väljer den här funktionen och väljer sedan det här programmet." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Klar" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Avbryt" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Ange namn" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Inget namn" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Det finns endast ett album." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Du kan välja upp till %d objekt." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Detaljer" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Radera" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Radera?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Avbryt" + +msgid "IDS_IV_POP_DELETED" +msgstr "Raderad." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Favoriter" + +msgid "IDS_IV_SK_SAVE" +msgstr "Spara" + +msgid "IDS_IV_POP_SAVED" +msgstr "Sparad." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Inställningar" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Storlek" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Okänd" + +msgid "IDS_IV_SK_YES" +msgstr "Ja" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Kopiera till Urklipp" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Brännvidd" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Blixt på" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Fotolampa av" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Bildvisare" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Vitbalans" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Alla bilder" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Auto" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Orientering" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Skapa tagg" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Välj bild" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Vitbalans" +msgid "IDS_MP_BODY_DURATION" +msgstr "Varaktighet" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Sammanlagd tid" +msgid "IDS_ST_POP_SET" +msgstr "Ange" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Lägg till tagg" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Taggar" -msgid "IDS_IV_POP_ADDED" -msgstr "Tillagd" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Lägg till komm." -msgid "IDS_IV_BODY_ANY" -msgstr "Alla" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Visa media på andra enheter med enheter i närheten." -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Tillgängliga tillämpningar" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Videofiler innehåller inte information om personer eftersom de inte stöder funktionen för att tagga ansikten." -msgid "IDS_IV_BODY_BASIC" -msgstr "Grundläggande" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Det gick inte att dela denna bild. Den är DRM-skyddad." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Foto-ID" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Det går inte att öppna filen." -msgid "IDS_IV_BODY_COUNT" -msgstr "Antal" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Den registrerade väderinformationen kan skilja sig från det faktiska vädret på grund uppdateringsintervallet." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Skapat den" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Privat innehåll som kopieras till Urklipp kan användas för att skapa nytt innehåll. Ditt nya innehåll kan inte döljas automatiskt." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Display" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Bilden är för liten." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Ange taggnamn" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Datuminformationen visas endast när andra taggar är synliga." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Posten är tom" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Tryck och håll kvar på miniatyrerna för att välja bästa foton." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Exekvera" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Bildspelsinställningar" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Filformat" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Ange bakgrund för hemskärmen och låsskärmen." -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Filplats" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Vill du använda bilden som %ss uppringar-ID?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Vidarebefordra" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Använd som Foto-ID" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Bakg. för hemskärmen" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Sänder..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Ej möjlig" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Välj enhet" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Individuell" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD-kortet har tagits bort." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Intervall" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Tillstånd nekades." -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Ogiltig bildfil" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Ingen plats" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Latitud" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Inga ansikten har taggats. Tagga ansikten i bilden." -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Platser" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Inga ansikten hittades." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Bakgrund för låsskärm" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Minnet räcker inte. Radera några objekt." -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Longitud" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Nätverksanslutningen misslyckades." msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Högsta antal tecken (%d) har uppnåtts" +msgstr "Högsta antal tecken (%d) har uppnåtts." -msgid "IDS_IV_BODY_N_A" -msgstr "Saknas" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Ogiltig bildfil." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Ny tagg" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Blixt används" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Tillstånd nekades" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Filformatet stöds inte." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Möjlig" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Posten är tom." -msgid "IDS_IV_BODY_PRINT" -msgstr "Skriv ut" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Ange taggnamn." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Skriv ut via Bluetooth" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Aktivera Uppdatera automatiskt i väderbakgrunden om du vill visa vädertaggar." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Upplösning" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Hämtningen är klar" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Rättighetsstatus" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Bästa foto" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD-kortet har tagits bort" +msgid "IDS_IV_POP_ADDED" +msgstr "Tillagd." -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Välj enhet" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Skriv bildtext" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Servernamn" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Använd rörelse" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Använd som" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Ta bort från favoriter" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Ange bakgrund för startsidan och låsskärmen" +msgid "IDS_IV_OPT_TRIM" +msgstr "Beskär" -msgid "IDS_IV_OPT_SHARE" -msgstr "Dela" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Tagga ansikte" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Relaterad sida" + +msgid "IDS_IV_OPT_TAG" +msgstr "Tagg" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Starta bildspel" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "Bildspel" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Tidsgräns för räkning" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Bildspel" -msgid "IDS_IV_OPT_TRIM" -msgstr "Beskär" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Visa objekt" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Obegränsad" +msgid "IDS_IV_OPT_SHARE" +msgstr "Dela" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Giltighet" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Rotera medurs" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Leverantör" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Rotera moturs" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Ta bort tagg" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Uppdatera" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Skriv ut via Bluetooth" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Identifiera manuellt" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Bakgrund för start- och låsskärmen" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Dolda objekt" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Hämta vägbeskrivning" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "Filöverföring" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Visa inte igen" +msgid "IDS_IV_OPT_ERASER" +msgstr "Radera" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Tryck och håll ned på två punkter och vinkla sedan enheten framåt eller bakåt för att förstora eller förminska skärmen" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Redigera vädertagg" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Red. tagg" + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Redigera bildtext" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Ta bort bildtext" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Kopiera till Urklipp" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Anslutningsinfo" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Moln" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Dela foto med kompis" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Bästa ansikte" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Som videofiler" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Som bildfiler" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Animerat foto" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Lägg till vädertagg" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Lägg till namn" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Lägg till bildtext" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Musik till bildspel" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Dela ljud och bilder" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Använd som" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Skicka bilden till" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Välj en kontakt som du vill dela" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Uppspelningshastighet" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Bakgrund för låsskärm" msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Lär dig mer om luta" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Bakg. för hemskärmen" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Redigera vädertagg" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Redigera serietagning" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Tillängliga enheter" + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "Alla album" -msgid "IDS_IV_OPT_TAG" -msgstr "Tagg" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Lägg till tagg" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Bakgrund för start- och låsskärmen" +msgid "IDS_IV_BUTTON_STOP" +msgstr "Stopp" -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Använd rörelse" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Skanna" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Hem- och låsskärmar" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Du kan dela media med andra enheter med enheter i närheten." -msgid "IDS_IV_BODY_CROP" -msgstr "Beskär" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "Med %s och %d andra" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Hemskärm" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "Med %s" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Låsskärm" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Vitbalans" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Rotera moturs" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Väder" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Rotera medurs" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Väder" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Identifiera manuellt" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Leverantör" -msgid "IDS_IV_BODY_ME" -msgstr "Mig" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Giltighet" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Red. tagg" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Obegränsad" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Ta bort tagg" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Det går inte att läsa in fotot." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Tidsgräns för räkning" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Tryck på ansikten för att visa information om personerna." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Tryck och håll ned på två punkter och vinkla sedan enheten framåt eller bakåt för att förstora eller förminska skärmen." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Sommardag" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Snöig dag" msgid "IDS_IV_BODY_SHARE_VIA" msgstr "Dela via" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Skicka inte" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Servernamn" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Dela foto med kompis" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Markera ett område för att beskära bilden." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Ansiktsmärkn." +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Det markerade området kommer att skrivas ut." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Bildvisare" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Det markerade området gäller för bakgrund." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Valt område gäller för kontaktbilden." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Rättighetsstatus" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Upplösning" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Ta bort från Favoriter" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Regnig dag" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Skriv ut" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Möjlig" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Personer" + +msgid "IDS_IV_BODY_N_A" +msgstr "Saknas" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Ingen tagg" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Ny tagg" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" msgstr "Enheter i närheten" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Markera ett område för att beskära bilden" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Min enhet" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Det markerade området gäller för bakgrund" +msgid "IDS_IV_BODY_MODEL" +msgstr "Modell" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Det markerade området kommer att skrivas ut" +msgid "IDS_IV_BODY_ME" +msgstr "Mig" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Du kan dela media med andra enheter med närliggande enheter" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Tillverkare" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Valt område gäller för kontaktbilden" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Longitud" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Låsskärm" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Plats" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Plats" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Platser" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Plats" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Latitud" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "I %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Intervall" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Individuell" + +msgid "IDS_IV_BODY_IN" +msgstr "Tum" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Ej möjlig" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Hemskärm" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Hem- och låsskärmar" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Vidarebefordra" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Flash-meny" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Filnamn" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Filplats" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Filformat" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "Exponeringstid" -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Exekvera" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Aktivera GPS-taggar i Kamera för att visa platstaggar." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Aktivera Uppdatera automatiskt i väderwidgeten om du vill visa vädertaggar." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Speltid" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM-info" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Visa inte igen" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Fråga inte igen" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Display" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Skapat den" + +msgid "IDS_IV_BODY_CROP" +msgstr "Beskär" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Skapa tagg" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Antal" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Molnig dag" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Klar natt" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Foto-ID" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Grundläggande" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Tillgängliga tillämpningar" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Auto" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Använd ett matchande färgtema för program." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Bländare" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Orientering" +msgid "IDS_IV_BODY_ANY" +msgstr "Alla" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Tillverkare" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Lägg till i Favoriter" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Brännvidd" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Sammanlagd tid" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Orientering" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Maximalt antal tecken har använts." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Modell" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Misslyckad" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Lägg till namn" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Använd som Foto-ID" +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "kB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Redigera" + +msgid "IDS_ST_BODY_DATE" +msgstr "Datum" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Konton" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Hämta" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "När du har överfört bilder till Dropbox kommer objekten att visas." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Laddar ned..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Lägg till bilder" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "När du har taggat bilder som favoriter visas bilderna." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Ta bort ansiktsidentifiering?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Tilldela namn" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Bekräfta som %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Layout" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d bilder tillagda" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Albumet avbryts." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Startar hämtning..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Minnet räcker inte. Radera några objekt." + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Privat lagring" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Dra hit." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Tryck för att lägga till bilder." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Filen finns redan." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Det här objektet kommer att raderas." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "När du överfört bilder till Facebook kommer objekten att visas." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Ogiltigt tecken." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Manuellt" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Bearbetar..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Byt namn" + +msgid "IDS_COM_BODY_NONE" +msgstr "Ingen" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d valda" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Enhetslagring" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD-kort" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Hastighet" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Bakgrundsmusik" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 sek" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 s" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 s" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Lagringsplats" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Filstorlek" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album kommer att tas bort." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalgi" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Suddig" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Mjukt sken" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Spara ändringar" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Vill du spara dina ändringar eller ignorera dem?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Ta bort" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Spara" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Antik" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Solsken" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Gammalt foto" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Gråskala" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sepia" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Tonade färger" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Downlight" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Gult sken" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Gör skarpare" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Skiss" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Inverterade färger" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Oljemålning" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Färgreduktion" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Tecknat" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Popkonst" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Magisk penna" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Tillagd i Blockerade." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Rotera" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Det finns inte tillräckligt med utrymme på enhetens lagringsutrymme. Gå till Inställningar > Ström och lagring > Lagring och ta bort några filer. Försök sedan igen." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Bildspelsintervall" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Bildspelsintervall" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Kontaktbild" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Ingen" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Redigera" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Byt namn" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Ange som" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Hämta" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Byt namn" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Byt namn" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Byt namn" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Det finns redan en fil med det namnet i målmappen." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Ersätt" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Ange som" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Bakgrund för hemskärmen" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Bakgrund för låsskärm" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Hem- och låsskärmsbakgrunder" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Detaljer" + +msgid "IDS_IV_BODY_DATE" +msgstr "Datum" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Det går inte att spara bilden" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Det finns inte tillräckligt med utrymme (%d MB) i enhetslagringen." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Det finns inte tillräckligt med utrymme (%d MB) på SD-kortet." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Ta bort några filer och försök igen." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Spara bild" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Det finns inte tillräckligt med utrymme i enhetslagringen (%d MB kvar). Det här objektet sparas på SD-kortet." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Det finns inte tillräckligt med utrymme på SD-kortet (%d MB kvar). Det här objektet sparas i enhetslagringen." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Den här bilden raderas." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Stopp" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Ta bort" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Fel" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Välj område" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Klar" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Det gick inte att läsa in objektet." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negativ" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "KLAR" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "AVBRYT" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negativ" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Kan inte öppna Galleri." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Laddar..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Laddar..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Det gick inte att läsa in." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Läser in bild..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Avvisa" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Det går inte att hämta" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobildata är har slagits av. Anslut till ett Wi-Fi-nätverk eller slå på Mobildata och försök igen." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Skicka inte" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 sekund" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d sekunder" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Effekt" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Effekter" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Flöde" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Tona" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Inget ansikte hittades" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Zooma in" diff --git a/res/po/tr_TR.po b/res/po/tr_TR.po old mode 100755 new mode 100644 index 6215ad8..2836d8d --- a/res/po/tr_TR.po +++ b/res/po/tr_TR.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Ana sayfaya ekle" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Özel" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Otomatik" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Yeniden adlandır" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Bu video silinecek." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Dosya adı kullanılıyor" + +msgid "IDS_ST_BODY_OFF" +msgstr "Kapalı" + +msgid "IDS_COM_BODY_DONE" +msgstr "Tamamlandı" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Flaş" +msgid "IDS_COM_SK_STOP" +msgstr "Durdur" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s bu uygulamada devre dışı bırakıldı. Bu fonksiyonu etkinleştirmek için %2$s öğesine gidin, bu fonksiyonu seçin ve ardından bu uygulamayı seçin." + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "Tamam" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Tamam" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "İptal" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "İsim girin" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "İsim yok" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Sadece bir albüm var." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "%d öğeye kadar seçebilirsiniz." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Ayrıntılar" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Sil" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Sil?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "İptal" + +msgid "IDS_IV_POP_DELETED" +msgstr "Silindi." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Sık kullanılanlar" + +msgid "IDS_IV_SK_SAVE" +msgstr "Kaydet" + +msgid "IDS_IV_POP_SAVED" +msgstr "Kaydedildi." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Ayarlar" + +msgid "IDS_IV_BODY_SIZE" +msgstr "Boyut" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Bilinmeyen" + +msgid "IDS_IV_SK_YES" +msgstr "Evet" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Panoya kopyala" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Odak uzunluğu" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Flaş açık" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Flash_Off" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Resim görüntüleyici" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Beyaz dengesi" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Tüm resimler" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Otomatik" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Yönlendirme" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "İm oluştur" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Resim seç" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Beyaz dengesi" +msgid "IDS_MP_BODY_DURATION" +msgstr "Süre" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Toplu süre" +msgid "IDS_ST_POP_SET" +msgstr "Ayarlandı" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "İm ekle" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Etiketler" -msgid "IDS_IV_POP_ADDED" -msgstr "Eklendi" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Yorum ekle" -msgid "IDS_IV_BODY_ANY" -msgstr "Herhangi" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Ortamınızı yakın cihazları kullanarak diğer cihazlarda görüntüleyin" -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Mevcut kullanımlar" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Video dosyaları insanlar hakkında bilgi içermez çünkü yüz etiketi işlevini desteklemezler." -msgid "IDS_IV_BODY_BASIC" -msgstr "Temel" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Bu resim paylaşılamıyor. Resim DRM korumalı." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Arayanın resmi" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Dosyayı açamıyor." -msgid "IDS_IV_BODY_COUNT" -msgstr "sayım" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Güncelleme aralığı nedeniyle, kaydedilen hava bilgileri, gerçek hava durumundan farklı olabilir." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Oluşturma tarihi" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Panoya kopyalanan kişisel içerikler, yeni içerik oluşturmak için kullanılabilir. Yeni içerikleriniz otomatik olarak gizlenemeyebilir." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Ekran" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Resim çok küçük." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "İm adı girin" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Tarih bilgileri yalnızca diğer etiketler görünür olduğunda gösterilir." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Girdi yok" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "En iyi fotoğrafları seçmek için küçük resimlere dokunun ve basılı tutun." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Uygulama" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Slayt gösterisi ayarları" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Dosya biçimi" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Ana ekran için duvar kağıdı ayarla ve ekranı kilitle" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Dosya konumu" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Bu resim %s kişisinin arayan ID'si olarak ayarlansın mı?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "İletme" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Arayan kimliği olarak ayarla" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Ana ekran duvr kağıdı" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Gönderiliyor..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "İmkansız" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Cihaz seçin" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Kişisel" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD kart çıkartıldı." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Aralık" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "İzin reddedildi." -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Geçersiz resim dosyası" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Yer yok" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Enlem" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Yüz etiketlenmedi. Resimdeki yüzleri etiketle." -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Yerler" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Yüz algılanmadı." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Kltli ekran dvrkağıdı" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Yeterli hafıza yok. Bazı öğeleri silin." -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Boylam" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Ağ bağlantısı başarısız." msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Maksimum karakter sayısına (%d) ulaşıldı" +msgstr "Maksimum karakter sayısına (%d) ulaşıldı." -msgid "IDS_IV_BODY_N_A" -msgstr "Geçerli değil" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Resim dosyası geçersiz." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Yeni im" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Flaş kullanldı" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "İzin reddedildi" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Dosya biçimi desteklenmiyor." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Mümkün" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Girdi yok." -msgid "IDS_IV_BODY_PRINT" -msgstr "Yazdır" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "İm adı girin." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Bluetooth ile yazdır" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Hava etiketlerini görmek için hava durumu duvar kağıdında oto yenilemeyi etkinleştirin" -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Çözünürlük" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "İndirme tamamlandı" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Hak durumu" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "En iyi fotoğraf" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD kart çıkartıldı" +msgid "IDS_IV_POP_ADDED" +msgstr "Eklendi." -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Cihaz seçin" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Açıklama yaz" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Sunucu adı" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Hareket kullan" -msgid "IDS_IV_OPT_SET_AS" -msgstr "Yap" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Favori olmayan" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Ana ekran için duvar kağıdı ayarla ve ekranı kilitle" +msgid "IDS_IV_OPT_TRIM" +msgstr "Kırp" -msgid "IDS_IV_OPT_SHARE" -msgstr "Paylaşıma aç" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Yüzü etiketle" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Etiketleme Yardımcısı" + +msgid "IDS_IV_OPT_TAG" +msgstr "Etiket" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Slayt gösterisini başlat" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "Slayt gösterisi" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Zamanlı sayım" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Slayt gösterisi" -msgid "IDS_IV_OPT_TRIM" -msgstr "Kırp" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Öğeleri göster" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Sınırsız" +msgid "IDS_IV_OPT_SHARE" +msgstr "Paylaşıma aç" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Geçerlilik" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "Saat yönünde döndür" -msgid "IDS_IV_BODY_VENDOR" -msgstr "Sağlayıcı" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Saat yönünün tersine döndür" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "İmi kaldır" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Yenile" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Bluetooth ile yazdır" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Manuel olarak algıla" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Ana ekran ve kilit ekranı duvar kağıdı" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Saklı öğeler" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Yönleri al" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "Dosya transferi" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Bir daha gösterme" +msgid "IDS_IV_OPT_ERASER" +msgstr "Silgi" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Ekranı küçültmek veya büyütmek için iki noktaya dokunun ve basılı tutun ardından cihazı geri ve ileri doğru eğin" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Hava etiketi düzenle" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Etiketi düzenle" + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Başlığı düzenle" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Açıklamayı sil" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Panoya kopyala" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Bağlantı bilgisi" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Bulut" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "Arkadaşınla fotoğraf paylaşımı" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "En iyi yüz" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Video dosyası olarak" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Resim dosyası olarak" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Hareketli fotoğraf" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Hava durumu etiketi ekle" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "İsim ekle" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Başlık ekle" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Slayt gösterisi müziği" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Sesli fotoğrafları paylaş" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Ayarla" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Bu resmi gönder" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Paylaşım için bir kişi seçin" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Oynatma hızı" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Kltli ekran dvrkağıdı" msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Eğim hakkında bilgi" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Ana ekran duvr kağıdı" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Hava etiketi düzenle" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Çoklu çekimi düzenle" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Kllanılablr cihazlar" + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "Tüm albümler" -msgid "IDS_IV_OPT_TAG" -msgstr "Etiket" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "İm ekle" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Ana ekran ve kilit ekranı duvar kağıdı" +msgid "IDS_IV_BUTTON_STOP" +msgstr "Dur" -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Hareket kullan" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Tara" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Ana ve kilit ekranları" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Ortamınızı yakın cihazları kullanarak diğer cihazlarla paylaşabilirsiniz." -msgid "IDS_IV_BODY_CROP" -msgstr "Kırp" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "%s ve %d başkaları ile" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Ana sayfa ekranı" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "%s ile" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Kilit ekranı" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Beyaz dengesi" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Saat yönünün tersine döndür" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Hava Durumu" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "Saat yönünde döndür" +msgid "IDS_IV_BODY_WEATHER" +msgstr "Hava" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Manuel olarak algıla" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Sağlayıcı" -msgid "IDS_IV_BODY_ME" -msgstr "Ben" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Geçerlilik" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Etiketi düzenle" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Sınırsız" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "İmi kaldır" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Fotoğraf yüklenemiyor." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Zamanlı sayım" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "İnsanlar hakkındaki bilgileri görmek için yüzleri etiketleyin" + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Ekranı küçültmek veya büyütmek için iki noktaya dokunun ve basılı tutun ardından cihazı geri ve ileri doğru eğin." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Güneşli gün" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Karlı gün" msgid "IDS_IV_BODY_SHARE_VIA" msgstr "Şununla paylaş" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Gönderme" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Sunucu adı" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "Arkadaşınla fotoğraf paylaşımı" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Resmi kırpmak için bir alan seçin." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Yüz etiketi" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Seçilen alan yazdırılacak." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Resim görüntüleyici" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Seçili alan duvar kağıdına uygulanacak." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Seçili alan kişi resmine uygulanacak." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Hak durumu" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Çözünürlük" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Favorilerden kaldır" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Yağmurlu gün" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Yazdır" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Mümkün" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Kişi" + +msgid "IDS_IV_BODY_N_A" +msgstr "Geçerli değil" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "İm yok" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Yeni im" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" msgstr "Yakındaki cihazlar" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Resmi kırpmak için bir alan seçin" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Cihazım" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Seçili alan duvar kağıdına uygulanacak" +msgid "IDS_IV_BODY_MODEL" +msgstr "Model" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Seçilen alan yazdırılacak" +msgid "IDS_IV_BODY_ME" +msgstr "Ben" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Ortamınızı yakın cihazları kullanarak diğer cihazlarla paylaşabilirsiniz" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Üretici" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Seçili alan kişi resmine uygulanacak" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Boylam" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Kilit ekranı" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Konum" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Konum" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Yerler" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Konum" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Enlem" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "%s yılında" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Aralık" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Kişisel" + +msgid "IDS_IV_BODY_IN" +msgstr "Yakınlaştır" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "İmkansız" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Ana sayfa ekranı" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Ana ve kilit ekranları" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "İletme" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Flaş" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Dosya adı" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Dosya konumu" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Dosya biçimi" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "Poz süresi" -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Uygulama" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Konum etiketlerini görmek için Kamerada GPS etiketlerini etkinleştirin." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Hava etiketlerini görmek için hava durumu widget'ında oto yenilemeyi etkinleştirin" + +msgid "IDS_IV_BODY_DURATION" +msgstr "Süre" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM bilgisi" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Bir daha gösterme" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Tekrar sorma" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Ekran" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Oluşturma tarihi" + +msgid "IDS_IV_BODY_CROP" +msgstr "Kırp" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "İm oluştur" + +msgid "IDS_IV_BODY_COUNT" +msgstr "sayım" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Bulutlu gün" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Açık gece" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Arayanın resmi" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Temel" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Mevcut kullanımlar" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Otomatik" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Uygulamalara eşleşen bir renk teması uygulayın." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Diyafram" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Yönlendirme" +msgid "IDS_IV_BODY_ANY" +msgstr "Herhangi" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Üretici" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Favorilere ekle" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Odak uzunluğu" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Toplu süre" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Yönlendirme" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Maksimum karakter sayısına ulaşıldı." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Model" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Başarısız" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "İsim ekle" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "DropBox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Arayan kimliği olarak ayarla" +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Düzenle" + +msgid "IDS_ST_BODY_DATE" +msgstr "Tarih" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Hesaplar" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "İndir" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Öğe yok. Dropbox'a resim yükledikten sonra, öğeler gösterilecektir." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "İndiriliyor..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Resim ekle" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Resimleri favorileriniz olarak etiketledikten sonra, resimler gösterilecektir." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Yüz tanıma kaldırılsın mı?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "İsim ata" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "%s olarak onayla" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Yerleşim" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d resim eklendi" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Album iptal edilecek." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "İndirme başlatılıyor..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Yeterli hafıza yok. Bazı öğeleri silin." + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Özel depolama" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Buraya sürükleyin." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Resim eklemek için dokun." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Dosya zaten var." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Bu öğe silinecek." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Öğe yok. Facebook'a resim yükledikten sonra, öğeler gösterilecektir." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Karakter geçersiz." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Manuel" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "İşlem yapılıyor..." + +msgid "IDS_ST_BODY_OK" +msgstr "Tamam" + +msgid "IDS_ST_SK_RENAME" +msgstr "Yen. ad." + +msgid "IDS_COM_BODY_NONE" +msgstr "Hiçbiri" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d seçildi" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Cihaz hafızası" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD kart" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Hız" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Arkaplan müziği" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 sn" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 sn" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 sn" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Kaydetme konumu" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Dosya boyutu" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 albüm silinecek" + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nostalji" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Bulanıklaştır" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Hafif parlaklık" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Değişiklikleri kaydet" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Değişikliklerinizi kaydetmek veya kaydetmeden çıkmak mı istiyorsunuz?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Sil" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Kaydet" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Nostalji" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Güneş ışığı" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Eski Foto" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Siyah-Beyaz" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sepya" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Solgun renkler" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Gömme ışık" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Sarı Parıltı" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Netleştir" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Taslak" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Çevrilmiş Renkler" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Yağlı Boya" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Poster" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Çizgi Film" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Pop Sanat" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Sihirli Kalem" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Engelleme listesine eklendi." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Döndür" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Cihazınızın hafızasında yeterli alan yok. Ayarlar > Güç ve hafıza > Hafıza bölümüne gidin, ardından bazı dosyaları silip tekrar deneyin." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Slayt aralığı" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Slayt aralığı" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Kişi resmi" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Hiçbiri" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Düzenle" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Yeniden adlandır" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Ayarla:" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "İndir" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Yeniden adlandır" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Yndn ismlendir" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "İsimlndr" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Hedef klasörde aynı isimde bir dosya zaten var." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Değiştir" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Ayarla" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Ana ekran duvar kağıdı" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Kilit ekranı duvar kağıdı" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Ana ve kilt ekranı duvr kğtlrı" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Ayrıntılar" + +msgid "IDS_IV_BODY_DATE" +msgstr "Tarih" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Resim kaydedilemiyor" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Cihazınızın hafızasında yeterli alan (%d MB) yok." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "SD kartınızda yeterli alan (%d MB) yok" + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Bazı dosyaları silip tekrar deneyin." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Resmi kaydet" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Cihazınızın hafızasında yeterli alan (kalan %d MB) yok. Bu öğe SD kartınıza kaydedilecek." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "SD kartta yeterli alan (kalan %d MB) yok. Bu öğe cihazınızın hafızasına kaydedilecek." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Bu resim silinecek." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Durdur" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Sil" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Hata" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Alan seç" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Tamam" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Bu öğe yüklenemedi." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negatif" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "BİTTİ" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "İPTAL" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negatif" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Galeri açılamıyor." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Yükleniyor..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Yükleniyor..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Yükleme başarısız." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Resmi yüklüyor..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "At" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "İndirilemiyor" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobil verisi kapalı. Bir Wi-Fi ağına bağlanın veya Mobil verisini etkinleştirip tekrar deneyin." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Gönderme" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 saniye" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d saniye" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Efekt" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Efektler" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Akış" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Karartma" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Yüz algılanamadı" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Yakınlaştır" diff --git a/res/po/uk.po b/res/po/uk.po old mode 100755 new mode 100644 index c4d427b..d072441 --- a/res/po/uk.po +++ b/res/po/uk.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Додати на головний екран" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Особистий" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Авто" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Перейменувати" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Це відео буде видалено." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Ім’я файла вже використовується" + +msgid "IDS_ST_BODY_OFF" +msgstr "Вимкнено" + +msgid "IDS_COM_BODY_DONE" +msgstr "Готово" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Спалах" -msgid "IDS_CAM_BODY_ISO" -msgstr "ISO" +msgid "IDS_COM_SK_STOP" +msgstr "Стоп" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Копіювати в буфер обміну" +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s вимкнено у цій програмі. Щоб увімкнути цю функцію, перейдіть до %2$s, виберіть цю функцію, а потім виберіть цю програму" -msgid "IDS_CAM_BODY_FLASH_ON" -msgstr "Увімк. спалах" +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Вимкнути спалах" +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "Готово" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Баланс білого" +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Скасувати" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Авто" +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Введіть назву" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Створ. тег" +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Немає імені" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Баланс білого" +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Наявний лише один альбом." -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Загальний час" +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Можна вибрати до %d об’єктів." -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Додати тег" +msgid "IDS_IV_OPT_DETAILS" +msgstr "Деталі" -msgid "IDS_IV_POP_ADDED" -msgstr "Додано" +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "Видалити" -msgid "IDS_IV_BODY_ANY" -msgstr "Any" +msgid "IDS_IV_POP_DELETE_Q" +msgstr "Видалити?" -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Доступні використання" +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Скасувати" -msgid "IDS_IV_BODY_BASIC" -msgstr "Основний" +msgid "IDS_IV_POP_DELETED" +msgstr "Видалено." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Зображення абонента" +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Улюблені" -msgid "IDS_IV_BODY_COUNT" -msgstr "Кількість" +msgid "IDS_IV_SK_SAVE" +msgstr "Збер." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Дату створено" +msgid "IDS_IV_POP_SAVED" +msgstr "Збережено." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Дисплей" +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Налаштування" -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Ввести ім’я тегу" +msgid "IDS_IV_BODY_SIZE" +msgstr "Розмір" -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Запис порожній" +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Невідомо" -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Виконати" +msgid "IDS_IV_SK_YES" +msgstr "Так" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Формат файла" +msgid "IDS_CAM_BODY_ISO" +msgstr "ISO" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Розташування файла" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Фокусна відстань" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Переадресація" +msgid "IDS_CAM_BODY_FLASH_ON" +msgstr "Увімк. спалах" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "Заставка головного екр." +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Перегляд зображень" -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Неможливо" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Усі фотографії" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Індивідуальні" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Орієнтація" -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Інтервал" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Вибрати картинку" -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Хибний файл зображення" +msgid "IDS_MP_BODY_DURATION" +msgstr "Тривалість" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Широта" +msgid "IDS_ST_POP_SET" +msgstr "Встанов." -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Розташування" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Теги" -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Заставка екр. блокування" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Додати коментар" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Довгота" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Переглядайте медіавміст на інших пристроях за допомогою наявних поблизу пристроїв." -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Досягнуто максимальної кількості символів: %d" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Відеофайли не містять відомостей про людей, оскільки вони не підтримують функцію тега обличчя." -msgid "IDS_IV_BODY_N_A" -msgstr "Н/Д" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Неможливо надати спільний доступ до цього зображення. Його захищено DRM." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Новий тег" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Неможливо відкрити файл." -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "У дозволі відмовлено" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Записана інформація про погоду може відрізнятися від фактичного стану погоди у зв'язку з інтервалом оновлення." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Можливо" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Особистий вміст, скопійований до буфера обміну, можна використовувати для створення нового вмісту. Неможливо автоматично приховати новий вміст." -msgid "IDS_IV_BODY_PRINT" -msgstr "Друк" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Зображення замале." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Друк через Bluetooth" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Дата відображається лише якщо інші теги видимі." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Роздільна здатність" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Натисніть і утримуйте ескізи для вибору кращих знімків." -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Стан прав" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Установки слайд-шоу" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "Карту пам’яті видалено" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Встановлення заставки для екрана оформлення та екрана блокування" + +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Встановити це зображення як ідентифікатор абонента %s?" + +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Встановити як ідентиф. номера" + +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Відправлення..." msgid "IDS_IV_POP_SELECT_DEVICE" msgstr "Вибрати пристрій" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Ім’я сервера" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "Карту пам’яті видалено." -msgid "IDS_IV_OPT_SET_AS" -msgstr "Встановити як" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "У дозволі відмовлено." -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Встановлення заставки для екрана оформлення та екрана блокування" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Розташування не знайдено" -msgid "IDS_IV_OPT_SHARE" -msgstr "Надіслати" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Немає тегів обличчя. Позначити обличчя на фотографії" -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "Слайд-шоу" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Обличчя не виявлено." -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Тривалість використання" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Недостатньо пам’яті. Видаліть деякі об’єкти" -msgid "IDS_IV_OPT_TRIM" -msgstr "Обробити" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Збій з’єднання з мережею." -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Необмежено" +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Досягнуто максимальної кількості символів: %d." -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Термін дії" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Хибний файл зображення." -msgid "IDS_IV_BODY_VENDOR" -msgstr "Постачальник" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Викор. спалах" -msgid "IDS_IV_OPT_FILE_TRANSFER" -msgstr "Передача файла" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Формат файла не підтримується." -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Більше не показувати" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Запис порожній." -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Натисніть і утримуйте у двох точках, а потім нахиляйте пристрій назад або вперед, щоб зменшити або збільшити зображення на екрані" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Ввести ім’я тегу." -msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" -msgstr "Відомості про нахил" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Увімкніть автоматичне оновлення на заставці прогнозу погоди, щоб переглянути теги прогнозу погоди." -msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "Усі альбоми" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Завантаження завершено" -msgid "IDS_IV_OPT_TAG" -msgstr "Тег" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Найкраще фото" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Заставка для екранів оформлення та блокування" +msgid "IDS_IV_POP_ADDED" +msgstr "Додано." + +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Створити заголовок" msgid "IDS_IV_OPT_USE_MOTION" msgstr "Використовувати рух" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Головний екр. та екр. блокування" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Необране" -msgid "IDS_IV_BODY_CROP" +msgid "IDS_IV_OPT_TRIM" msgstr "Обрізати" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Головний екран" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Позначити обличчя" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Екран блокування" +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Контекстний тег" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Обернути ліворуч" +msgid "IDS_IV_OPT_TAG" +msgstr "Тег" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Розпочати слайд-шоу" + +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "Слайд-шоу" + +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Слайд-шоу" + +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Показати об'єкти" + +msgid "IDS_IV_OPT_SHARE" +msgstr "Поділитися" msgid "IDS_IV_OPT_ROTATE_RIGHT" msgstr "Обернути праворуч" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Обернути ліворуч" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Видалити тег" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Оновити" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Друк через Bluetooth" + msgid "IDS_IV_OPT_MANUALLY_DETECT" msgstr "Розпізнавання вручну" -msgid "IDS_IV_BODY_ME" -msgstr "Я" +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Заставка для екранів оформлення та блокування" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Приховані об'єкти" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Отримати маршрут" + +msgid "IDS_IV_OPT_FILE_TRANSFER" +msgstr "Передача файла" + +msgid "IDS_IV_OPT_ERASER" +msgstr "Стирання" + +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Редагувати тег погоди" msgid "IDS_IV_OPT_EDIT_TAG" msgstr "Редаг. тег" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Видалити тег" +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Редагувати заголовок" -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "Відкрити доступ через" +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Видалити заголовок" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Не надсилати" +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Копіювати в буфер обміну" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Відомості про підкл." + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Хмарне сховище" msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" msgstr "Спільний доступ до фотографій абонента" -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Теги обличчя" +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "Краще обличчя" -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Перегляд зображень" +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Як відеофайли" -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "Наявні поблизу пристрої" +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Як файли зображень" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Виберіть ділянку для обрізання зображення" +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Анімована фотографія" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Вибрану ділянку буде застосовано до заставки" +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Додати тег погоди" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Вибрану ділянку буде надруковано" +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Додати ім’я" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Додати заголовок" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Музика для слайд-шоу" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Надісл. зобр. зі звуком" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "Встановити як" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Надіс. цю фот. абон." + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Виберіть контакт для спільного доступу" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Швидкість відтворення" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Заставка екр. блокування" + +msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" +msgstr "Відомості про нахил" + +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "Заставка головного екр." + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Редагувати тег погоди" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Редаг.фотог.сер.зйомки" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Доступні пристрої" + +msgid "IDS_IV_HEADER_ALL_ALBUMS" +msgstr "Усі альбоми" + +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Додати тег" + +msgid "IDS_IV_BUTTON_STOP" +msgstr "Стоп" + +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Сканувати" msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Можна відкрити спільний доступ до медіафайлів для інших пристроїв за допомогою наявних поблизу пристроїв" +msgstr "Можна відкрити спільний доступ до медіафайлів для інших пристроїв за допомогою наявних поблизу пристроїв." + +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "З користувачем %s та іншими (%d)" + +msgid "IDS_IV_BODY_WITH_PS" +msgstr "%s" + +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Баланс білого" + +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Погода" + +msgid "IDS_IV_BODY_WEATHER" +msgstr "Погода" + +msgid "IDS_IV_BODY_VENDOR" +msgstr "Постачальник" + +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Термін дії" + +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Необмежено" + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Неможливо завантажити фотографію." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Тривалість використання" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Натискайте на обличчя, щоб переглянути відомості про людей." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Натисніть і утримуйте у двох точках, а потім нахиляйте пристрій назад або вперед, щоб зменшити або збільшити зображення на екрані." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Сонячний день" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Сніжний день" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Поділитися" + +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Ім’я сервера" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Виберіть ділянку для обрізання зображення." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Вибрану ділянку буде надруковано." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Вибрану ділянку буде застосовано до заставки." msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Вибрану ділянку буде застосовано до фотографії контакту" +msgstr "Вибрану ділянку буде застосовано до фотографії контакту." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Стан прав" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Роздільна здатність" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Видалити з улюблених" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Дощовий день" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Друк" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Можливо" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Люди" + +msgid "IDS_IV_BODY_N_A" +msgstr "Н/Д" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Немає тегів" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Новий тег" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "Пристрої поблизу" + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Мій пристрій" + +msgid "IDS_IV_BODY_MODEL" +msgstr "Модель" + +msgid "IDS_IV_BODY_ME" +msgstr "Я" + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Виробник" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Довгота" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Екран блокування" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Розташування" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Розташув." + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Розташування" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Розташування" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Широта" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "Місце зйомки: %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Інтервал" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Індивідуальні" + +msgid "IDS_IV_BODY_IN" +msgstr "У" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Неможливо" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Головний екран" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Головний екран та екран блокування" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Переадресація" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Блимаюче меню" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Назва файла" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Розташування файла" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Формат файла" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "Час експозиції" -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Виконати" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Увімкніть теги GPS у меню «Камера», щоб переглянути теги розташування." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Увімкніть автоматичне оновлення у віджеті прогнозу погоди, щоб переглянути теги прогнозу погоди." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Тривалість" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "Відомості DRM" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Більше не показувати" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Більше не запитувати" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Відображення" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Дату створено" + +msgid "IDS_IV_BODY_CROP" +msgstr "Обрізати" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Створ. тег" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Кількість" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Хмарний день" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Ясна ніч" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Зображення абонента" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Основний" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Доступні використання" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Авто" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Застосовуйте до програм відповідну схему кольорів." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Світлосила" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Орієнтація" +msgid "IDS_IV_BODY_ANY" +msgstr "Будь-яка" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Виробник" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Додати до улюбленого" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Фокусна відстань" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Загальний час" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Орієнтація" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Досягнуто максимальної кількості символів." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Модель" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Збій" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Додати ім’я" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Встановити як ідентиф. номера" +msgid "IDS_ST_BODY_MB" +msgstr "МБ" + +msgid "IDS_ST_BODY_KB" +msgstr "КБ" + +msgid "IDS_ST_BODY_GB" +msgstr "ГБ" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Редагувати" + +msgid "IDS_ST_BODY_DATE" +msgstr "Дата" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Облікові записи" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Завантаження" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Об’єкти буде відображено після завантаження фотографій до Dropbox." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Завантаження..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Додати фотографії" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Фотографії буде відображено після їх додавання до обраного." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Видалити ідентифікацію обличчя?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Призначити ім'я" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "Підтвердити як %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Макет" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "Додано фотографій: %d" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Альбом буде скасовано." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Початок завантаження..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Недостатньо пам’яті. Видаліть деякі об’єкти" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Місце збереження особистих даних" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Перетягніть сюди." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Натисніть, щоб додати зображення." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Файл уже існує." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Цей файл буде видалено." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Об’єкти буде відображено після завантаження фотографій до Facebook." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Некоректний символ." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Вручну" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Обробка..." + +msgid "IDS_ST_BODY_OK" +msgstr "ОК" + +msgid "IDS_ST_SK_RENAME" +msgstr "Перейменувати" + +msgid "IDS_COM_BODY_NONE" +msgstr "Немає" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "Вибрано: %d" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Місце збереження на пристрої" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "Карта пам’яті" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Швидкість" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Фонова музика" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 сек." + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 сек." + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 сек." + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Місце збереження" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Розмір файла" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 альбом буде видалено." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Ностальгія" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Розмиття" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Легкий відблиск" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "Збереження змін" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "Зберегти зміни або відхилити їх?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Відхил." + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Зберегти" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Вінтаж" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Сонячне світло" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Стара фотографія" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Ретро" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Відтінки сірого" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Сепія" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Приглушені кольори" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Світильник" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Жовтий відблиск" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Чіткість" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Ескіз" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "Інвертовані кольори" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Масляна фарба" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Постеризація" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Анімація" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Поп-арт" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Магічне перо" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Додано до списку блокування." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Обернути" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Недостатньо вільного місця в місці збереження на пристрої. Перейдіть до меню «Налаштування» > «Живлення та місце збереження» > «Місце збереження» та видаліть деякі файли, а потім спробуйте ще раз." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Інтервал слайдів" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Інтервал слайдів" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Фотографія контакту" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Немає" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Редагувати" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Перейменувати" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Встановити як" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Завантажити" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Перейменувати" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Перейменувати" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Перейм." + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Файл із такою назвою вже існує в папці призначення." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Замінити" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Встановлення як" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Заставка екрана оформлення" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Заставка екрана блокування" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Заст. для гол.екр. і екр.блок." + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Деталі" + +msgid "IDS_IV_BODY_DATE" +msgstr "Дата" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Неможливо зберегти зображення" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Недостатньо вільного місця (%d МБ) у місці збереження на пристрої." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "Недостатньо вільного місця (%d МБ) на карті пам'яті." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Видаліть деякі файли та спробуйте ще раз." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Збереження зображення" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Недостатньо вільного місця в місці збереження на пристрої (залишилось %d МБ). Цей об’єкт буде збережено на карті пам’яті." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "Недостатньо вільного місця на карті пам’яті (залишилось %d МБ). Цей об’єкт буде збережено в місці збереження на пристрої." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Це зображення буде видалено." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "Зупинити" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Видалити" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Помилка" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Вибір ділянки" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "Готово" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Не вдалося завантажити цей об’єкт." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Негатив" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "ГОТОВО" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "СКАСУВАТИ" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Негатив" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Неможливо відкрити галерею." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Завантаження..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Завантаження..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Збій завантаження." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Завантаження зображення..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Відхилити" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Неможливо завантажити" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Використання мобільних даних вимкнено. Підключіться до мережі Wi-Fi або ввімкніть використання мобільних даних і спробуйте ще раз." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Не надсилати" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 секунда" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d секунд" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Ефект" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Ефекти" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Потік" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Загасання" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Обличчя не розпізнано" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Збільшення" diff --git a/res/po/update-po.sh b/res/po/update-po.sh new file mode 100755 index 0000000..8315090 --- /dev/null +++ b/res/po/update-po.sh @@ -0,0 +1,57 @@ +#!/bin/sh + +PACKAGE=ug-image-viewer-efl +SRCROOT=../.. +POTFILES=POTFILES.in + +#ALL_LINGUAS= am az be ca cs da de el en_CA en_GB es et fi fr hr hu it ja ko lv mk ml ms nb ne nl pa pl pt pt_BR ru rw sk sl sr sr@Latn sv ta tr uk vi zh_CN zh_TW +ALL_LINGUAS="en zh_CN fr_FR ja_JP nl_NL ru_RU zh_TW de_DE el_GR es_ES it_IT ko_KR pt_PT tr_TR zh_HK" + +XGETTEXT=/usr/bin/xgettext +MSGMERGE=/usr/bin/msgmerge + +echo -n "Make ${PACKAGE}.pot " +if [ ! -e $POTFILES ] ; then + echo "$POTFILES not found" + exit 1 +fi + +$XGETTEXT --default-domain=${PACKAGE} --directory=${SRCROOT} \ + --add-comments --keyword=_ --keyword=N_ --files-from=$POTFILES \ +&& test ! -f ${PACKAGE}.po \ + || (rm -f ${PACKAGE}.pot && mv ${PACKAGE}.po ${PACKAGE}.pot) + +if [ $? -ne 0 ]; then + echo "error" + exit 1 +else + echo "done" +fi + +for LANG in $ALL_LINGUAS; do + echo "$LANG : " + + if [ ! -e $LANG.po ] ; then + sed 's/CHARSET/UTF-8/g' ${PACKAGE}.pot > ${LANG}.po + echo "${LANG}.po created" + else + if $MSGMERGE ${LANG}.po ${PACKAGE}.pot -o ${LANG}.new.po ; then + if cmp ${LANG}.po ${LANG}.new.po > /dev/null 2>&1; then + rm -f ${LANG}.new.po + else + if mv -f ${LANG}.new.po ${LANG}.po; then + echo "" + else + echo "msgmerge for $LANG.po failed: cannot move $LANG.new.po to $LANG.po" 1>&2 + rm -f ${LANG}.new.po + exit 1 + fi + fi + else + echo "msgmerge for $LANG failed!" + rm -f ${LANG}.new.po + fi + fi + echo "" +done + diff --git a/res/po/uz.po b/res/po/uz.po old mode 100755 new mode 100644 index a2da4d9..b5b8665 --- a/res/po/uz.po +++ b/res/po/uz.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "Asosiyga qo‘shish" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "Maxfiy" -msgid "IDS_CAM_BODY_AUTO" -msgstr "Avtomatik" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "Nom o‘zgartirish" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "Ushbu video o'chiriladi." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Fayl nomi avvaldan foydalanilmoqda" + +msgid "IDS_ST_BODY_OFF" +msgstr "O‘ch." + +msgid "IDS_COM_BODY_DONE" +msgstr "Bajarildi" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "Flesh" +msgid "IDS_COM_SK_STOP" +msgstr "To‘xtatish" + +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "Ushbu ilovada %1$s o‘chirilgan. Ushbu funksiyani yoqish uchun %2$sga o‘ting, ushbu funksiyani tanlang va undan so‘ng ushbu ilovani tanlang" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "OK" + +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "Bekor qilish" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Nom kiriting" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Nom yo‘q" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Faqat bitta albom mavjud." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Eng ko‘pi bilan %d element tanlashingiz mumkin." + +msgid "IDS_IV_OPT_DETAILS" +msgstr "Tafsilotlar" + +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "O'chirish" + +msgid "IDS_IV_POP_DELETE_Q" +msgstr "O'chirilsinmi?" + +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "Bekor qilish" + +msgid "IDS_IV_POP_DELETED" +msgstr "O'chirildi." + +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "Tanlangan" + +msgid "IDS_IV_SK_SAVE" +msgstr "Saqlash" + +msgid "IDS_IV_POP_SAVED" +msgstr "Saqlandi." + +msgid "IDS_IV_BODY_SETTINGS" +msgstr "Parametrlar" + +msgid "IDS_IV_BODY_SIZE" +msgstr "O‘lcham" + +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "Noma’lum" + +msgid "IDS_IV_SK_YES" +msgstr "Ha" + msgid "IDS_CAM_BODY_ISO" msgstr "ISO" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "Buferga nusxa olish" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "Fokal uzunlik" msgid "IDS_CAM_BODY_FLASH_ON" msgstr "Flesh yoq." -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "Flesh o‘ch." +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "Rasmni ko‘rib chiqish vositasi" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "Oq balans" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "Barcha rasmlar" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "Avtomatik" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "Oriyentatsiya" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "Teg yarat" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Rasm tanlash" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "Oq rang balansi" +msgid "IDS_MP_BODY_DURATION" +msgstr "Davomiylik" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "Yig‘ilgan vaqt" +msgid "IDS_ST_POP_SET" +msgstr "O‘rnatish" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "Teg qo‘shish" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "Teglar" -msgid "IDS_IV_POP_ADDED" -msgstr "Qo‘shilgan" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "Sharh qo‘shish" -msgid "IDS_IV_BODY_ANY" -msgstr "Har qanday" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Yaqi-atrofdagi qurilmalar yordamida mediangizni boshqa qurilmalarda ko‘rib chiqing." -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "Mavjud foydalanishlar" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "Video fayllar odamlar haqidagi ma’lumotlarga ega emas, chunki ular yuz tegi funksiyasini qo‘llab-quvvatlamaydi." -msgid "IDS_IV_BODY_BASIC" -msgstr "Boshlang'ich" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "Ushbu tasvirni ulashib bo‘lmaydi. U DRM himoyalangan." -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "Qo‘ng‘iroq qiluvchi rasmi" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "Faylni ochib bo‘lmaydi." -msgid "IDS_IV_BODY_COUNT" -msgstr "Hisob" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "Yangilash intervali sababli joriy ob-havo ma’lumotidan farq qilishi mumkin." -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "Yaratilgan sana" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "Buferga nusxa olingan shaxsiy tarkibdan yangi tarkibni yaratishda foydalanish mumkin. Yangi tarkibni avtomatik ravishda yashirib bo‘lmaydi." -msgid "IDS_IV_BODY_DISPLAY" -msgstr "Displey" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "Tasvir juda kichik." -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "Teg nomini kiriting" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "Boshqa teglar ko‘ringanda, sana ma’lumoti aks ettiriladi." -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "Kiritish bo‘sh" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "Eng yaxshi fotosuratlarni tanlash uchun, eskizlarni bosib turing." -msgid "IDS_IV_BODY_EXECUTE" -msgstr "Amalga oshirish" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "Slayd-shou parametrlari" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "Fayl formati" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "Asosiy va bloklangan ekran uchun fon rasmi o‘rnatish" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "Fayl joylashuvi" +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "Ushbu rasm %sning qo‘ng‘iroq qiluvchi IDsi sifatida o‘rnatilsinmi?" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "Boshqaga yo‘naltirish" +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "Qo‘ng‘iroq qiluvchining IDsi sifatida o‘rnatildi" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "As. ekran fon rasmi" +msgid "IDS_IV_POP_SENDING_ING" +msgstr "Yuborilmoqda..." -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "Imkonsiz" +msgid "IDS_IV_POP_SELECT_DEVICE" +msgstr "Qurilma tanlang" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "Individual" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD-karta olib tashlandi." -msgid "IDS_IV_BODY_INTERVAL" -msgstr "Interval" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "Ruxsat rad etildi." -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "Noto‘g‘ri tasvir fayli" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "Joylashuv mavjud emas" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "Kenglik" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "Yuzlar teglanmadi. Rasmda yuzlarni teglash" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "Joylashuvlar" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "Yuzlar aniqlanmadi." -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "Blok. ekran fon rasmi" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Xotira yetarli emas. Ba’zi elementlarni o'chiring" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "Uzunlik" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "Tarmoq ulanishi xatosi." msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "Belgilar soni ruxsat etilgan maksimal miqdorga (%d) yetdi" +msgstr "Belgilar soni ruxsat etilgan maksimal miqdorga (%d) yetdi." -msgid "IDS_IV_BODY_N_A" -msgstr "YO‘Q" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "Noto‘g‘ri tasvir fayli." -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "Yangi teg" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "Flesh bilan" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "Ruxsat rad etildi" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "Fayl formati qo‘llab-quvvatlanmaydi." -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "Taxminiy" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "Kiritish bo‘sh." -msgid "IDS_IV_BODY_PRINT" -msgstr "Chop etish" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "Teg nomini kiriting." -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "Bluetooth orqali chop etish" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "Ob-havo teglarini ko‘rish uchun ob-havo fon rasmida avtomatik yangilashni yoqing." -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "Rezolyutsiya" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "Yuklab olish yakunlandi" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "Huquq holati" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "Eng yaxshi foto" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD-karta olib tashlandi" +msgid "IDS_IV_POP_ADDED" +msgstr "Qo‘shildi." -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "Qurilma tanlang" +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "Sarlavha yozish" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "Server nomi" +msgid "IDS_IV_OPT_USE_MOTION" +msgstr "Harakatdan foydalanish" -msgid "IDS_IV_OPT_SET_AS" -msgstr "O‘rnatish" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "Tanlanmagan" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "Asosiy va bloklangan ekran uchun fon rasmi o‘rnatish" +msgid "IDS_IV_OPT_TRIM" +msgstr "Bezatish" -msgid "IDS_IV_OPT_SHARE" -msgstr "Ulashish" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "Yuzni belgilash" + +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "Kontekstli teg" + +msgid "IDS_IV_OPT_TAG" +msgstr "Teg" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "Slayd-shouni boshlash" msgid "IDS_IV_OPT_SLIDE_SHOW" msgstr "Slayd-shou" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "Vaqti belgilangan sanoq" +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "Slayd-shou" -msgid "IDS_IV_OPT_TRIM" -msgstr "Bezatish" +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "Elementlarni ko‘rsatish" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "Cheklanmagan" +msgid "IDS_IV_OPT_SHARE" +msgstr "Ulashish" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "Amal qilish" +msgid "IDS_IV_OPT_ROTATE_RIGHT" +msgstr "O‘ngga aylantir." -msgid "IDS_IV_BODY_VENDOR" -msgstr "Ta’minotchi" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "Chapga aylantir." + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "Tegni olib tashlash" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "Yangilash" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "Bluetooth orqali chop etish" + +msgid "IDS_IV_OPT_MANUALLY_DETECT" +msgstr "Qo‘lda aniqlash" + +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "Asosiy va bloklash ekrani fon rasmi" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "Yashirin elementlar" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "Yo‘nalishlarni olish" msgid "IDS_IV_OPT_FILE_TRANSFER" msgstr "Faylni uzatish" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "Boshqa ko‘rsatilmasin" +msgid "IDS_IV_OPT_ERASER" +msgstr "O‘chirg‘ich" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "Ekranni kattalashtirish yoki kichiklashtirish uchun, ikki nuqtani bosib ushlab turgan holda qurilmani orqaga va oldinga og‘diring" +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "Ob-havo tegi tahriri" + +msgid "IDS_IV_OPT_EDIT_TAG" +msgstr "Teg tahrir" + +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "Sarlavha tahriri" + +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "Titrni yo‘q qilish" + +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "Buferga nusxa olish" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "Ulanish ma’lumoti" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "Cloud" + +msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" +msgstr "O‘rtoq fotosuratini ulashish" + +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "A‘lo kadr" + +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "Video fayllar sifatida" + +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "Tasvir fayllari sifatida" + +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "Animatsion foto" + +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "Ob-havo tegini qo‘shish" + +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "Nom qo‘shish" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "Sarlavha qo‘shish" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "Slayd-shou musiqasi" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "Ovoz kadr rasmini ulash" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "O‘rnatish" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "Ushbu rasmni yubor" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "Ulashish uchun kontaktni tanlang" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "Ijro tezligi" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "Blok. ekran fon rasmi" msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" msgstr "Og‘dirish haqida" +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "As. ekran fon rasmi" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "Ob-havo tegi tahriri" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "Fleshli kadr tahriri" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "Mavjud qurilmalar" + msgid "IDS_IV_HEADER_ALL_ALBUMS" msgstr "Barcha albomlar" -msgid "IDS_IV_OPT_TAG" -msgstr "Teg" +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "Teg qo‘shish" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "Asosiy va bloklash ekrani fon rasmi" +msgid "IDS_IV_BUTTON_STOP" +msgstr "To‘x." -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "Harakatdan foydalanish" +msgid "IDS_IV_BUTTON_SCAN" +msgstr "Qidirish" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "Asosiy va bloklash ekranlari" +msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "Yaqin-atrofdagi qurilmalar yordamida mediangizni boshqa qurilmalar bilan ulashishingiz mumkin." -msgid "IDS_IV_BODY_CROP" -msgstr "Kesish" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "%s va boshqa %d bilan" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "Asosiy ekran" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "%s bilan" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "Bloklash ekrani" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "Oq balans" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "Chapga aylantir." +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "Ob-havo" -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "O‘ngga aylantir." +msgid "IDS_IV_BODY_WEATHER" +msgstr "Ob-havo" -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "Qo‘lda aniqlash" +msgid "IDS_IV_BODY_VENDOR" +msgstr "Ta’minotchi" -msgid "IDS_IV_BODY_ME" -msgstr "Men" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "Amal qilish" -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "Teg tahrir" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "Cheklanmagan" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "Tegni olib tashlash" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Fotosuratni yuklab bo‘lmaydi." + +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "Vaqti belgilangan sanoq" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "The recorded weather information should be edited manually. Your device does not support receiving recorded weather info from the weather widget." + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "Odamlar haqidagi ma’lumotlarni ko‘rib chiqish uchun yuzlarni cherting." + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "Ekranni kattalashtirish yoki kichiklashtirish uchun, ikki nuqtani bosib ushlab turgan holda qurilmani orqaga va oldinga og‘diring." + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "Quyoshli kun" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "Qorli kun" msgid "IDS_IV_BODY_SHARE_VIA" msgstr "Quyidagi orqali ulashish" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "Yuborilmasin" +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "Server nomi" -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "O‘rtoq fotosuratini ulashish" +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "Rasmni kesib olish uchun sohani tanlang." -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "Yuzni belgilash" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "Tanlangan soha chop etildi." -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "Rasmni ko‘rib chiqish vositasi" +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "Tanlangan soha fon rasmiga qo‘llaniladi." + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "Tanlangan soha kontakt rasmiga qo‘llaniladi." + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "Huquq holati" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "Rezolyutsiya" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "Tanlanganlardan olib tashlash" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "Yomg‘irli kun" + +msgid "IDS_IV_BODY_PRINT" +msgstr "Chop etish" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "Taxminiy" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "Odamlar" + +msgid "IDS_IV_BODY_N_A" +msgstr "YO‘Q" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "Teg yo‘q" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "Yangi teg" msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "Yaqin-atrofdagi qurilmalar" +msgstr "Yaqin-atrof. quril." -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "Rasmni kesib olish uchun sohani tanlang" +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "Qurilma" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "Tanlangan soha fon rasmiga qo‘llaniladi" +msgid "IDS_IV_BODY_MODEL" +msgstr "Model" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "Tanlangan soha chop etildi" +msgid "IDS_IV_BODY_ME" +msgstr "Men" -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "Yaqin-atrofdagi qurilmalar yordamida mediangizni boshqa qurilmalar bilan ulashishingiz mumkin" +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "Ishlab chiqaruvchi" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "Tanlangan soha kontakt rasmiga qo‘llaniladi" +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "Uzunlik" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "Bloklash ekrani" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "Joylashuv" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "Joylashuv" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "Joylashuvlar" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "Joylashuv" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "Kenglik" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "%sda" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "Muddat" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "Individual" + +msgid "IDS_IV_BODY_IN" +msgstr "Quyidagida" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "Imkonsiz" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "Asosiy ekran" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "Asosiy va bloklash ekranlari" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "Boshqaga yo‘naltirish" + +msgid "IDS_IV_BODY_FLASH" +msgstr "Flash" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "Fayl nomi" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "Fayl joylashuvi" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "Fayl formati" msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" msgstr "Namoyish vaqti" -msgid "IDS_CAM_BODY_APERTURE" +msgid "IDS_IV_BODY_EXECUTE" +msgstr "Amalga oshirish" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "Joylashuv teglarini ko‘rish uchun Kamerada GPS teglarini yoqing." + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "Ob-havo teglarini ko‘rish uchun ob-havo vidjetida avtomatik yangilashni yoqing." + +msgid "IDS_IV_BODY_DURATION" +msgstr "Davomiylik" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM ma’lumoti" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "Boshqa ko‘rsatilmasin" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Boshqa so'ramang" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "Displey" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "Yaratilgan sana" + +msgid "IDS_IV_BODY_CROP" +msgstr "Kesish" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "Teg yarat" + +msgid "IDS_IV_BODY_COUNT" +msgstr "Hisob" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "Bulutli kun" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "Oydin kecha" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "Qo‘ng‘iroq qiluvchi rasmi" + +msgid "IDS_IV_BODY_BASIC" +msgstr "Boshlang'ich" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "Mavjud foydalanishlar" + +msgid "IDS_IV_BODY_AUTO" +msgstr "Avtomatik" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "Ilovalarga mos rang mavzularini qo‘llang." + +msgid "IDS_IV_BODY_APERTURE" msgstr "Apertura" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "Oriyentatsiya" +msgid "IDS_IV_BODY_ANY" +msgstr "Har qanday" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "Ishlab chiqaruvchi" +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "Tanlanganlarga qo‘shish" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "Fokal uzunlik" +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "Yig‘ilgan vaqt" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "Oriyentatsiya" +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Belgilar soni ruxsat etilgan maksimal miqdorga yetdi." -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "Model" +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Xato" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "Nom qo‘shish" +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "Qo‘ng‘iroq qiluvchining IDsi sifatida o‘rnatildi" +msgid "IDS_ST_BODY_MB" +msgstr "Mb" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "Gb" + +msgid "IDS_ST_BODY_EDIT" +msgstr "Tahrirlash" + +msgid "IDS_ST_BODY_DATE" +msgstr "Sana" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Hisob qaydnomalari" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Yuklab olish" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Dropboxga rasmlarni yuklaganingizdan so‘ng, elementlar ko‘rsatiladi." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Yuklanmoqda..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "Rasmlar qo‘shish" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "Rasmlarni tanlanganlar sifatida belgilaganingizdan so‘ng, rasmlar ko‘rsatiladi." + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "Yuzni aniqlash olib tashlansinmi?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "Nomni tayinlash" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "%s sifatida tasdiqlash" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "Joylashuv" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d rasm qo‘shildi" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Albom bekor qilinadi." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Yuklab olish boshlanmoqda..." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Xotira yetarli emas. Ba’zi elementlarni o'chiring" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Maxfiy xotira" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Bu yerga tortib o‘tkazing." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Tasvirlar qo‘shish uchun teging." + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "Fayl avvaldan mavjud." + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "Ushbu element yo‘q qilinadi." + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "Facebookka rasmlarni yuklaganingizdan so‘ng, elementlar ko‘rsatiladi." + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "Noto‘g‘ri belgi." + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "Qo‘lda" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "Bajarilmoqda..." + +msgid "IDS_ST_BODY_OK" +msgstr "OK" + +msgid "IDS_ST_SK_RENAME" +msgstr "Nom o‘zg." + +msgid "IDS_COM_BODY_NONE" +msgstr "Hech qaysi" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d tanlandi" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "Qurilma xotirasi" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD-karta" + +msgid "IDS_ST_BODY_SPEED" +msgstr "Tezlik" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "Fondagi musiqa" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 son." + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 son." + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 son." + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "Xotira joylashuvi" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "Fayl o‘lchami" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 albom yo‘q qilinadi." + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "Nastalgiya" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "Chaplanish" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "Yoqimli jilva" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "O‘zgarishlarni saqlash" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "O‘zgartirishlaringiz saqlansinmi yoki tashlab yuborilsinmi?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "Rad et" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "Saqlash" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "Vintaj" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "Quyosh nuri" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "Eski fotosurat" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "Retro" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "Kulrang shkala" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "Sepiya" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "Xira ranglar" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "Chiroq" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "Sarg‘ish" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "Aniqlash" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "Eskiz" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "O‘girilgan ranglar" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "Moy bo‘yoq" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "Sifatini pasaytirish" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "Multfilm" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "Pop-art" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "Sehrli pero" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "Bloklanganlar ro‘yxatiga qo‘shildi." + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "Aylantirish" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Qurilmangiz xotirasida yetarli bo‘sh joy mavjud emas. Parametrlar > Quvvat va xotira > Xotiraga o‘ting, so‘ngra ba’zi fayllarni yo‘q qiling va qayta urinib ko‘ring." + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "Slayd intervali" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "Slayd intervali" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "Kontakt rasmi" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "Yo‘q" + +msgid "IDS_IV_OPT_EDIT" +msgstr "Tahrirlash" + +msgid "IDS_IV_OPT_RENAME" +msgstr "Nom o‘zgartirish" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "Quyidagi sifatida o‘rnatish" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "Yuklab olish" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "Nom o‘zgartirish" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "Nom o‘zgartir" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "Nom o‘zg" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "Yakuniy jildda ushbu nomdagi fayl avvaldan mavjud." + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "Almasht." + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "Quyidagi sifatida o‘rnatish" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "Asosiy ekran fon rasmi" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "Bloklash ekrani fon rasmi" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "Asos. va blk. ekrani fon rasmi" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "Tafsilotlar" + +msgid "IDS_IV_BODY_DATE" +msgstr "Sana" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "Tasvirni saqlab bo‘lmaydi" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "Qurilmangiz xotirasida yetarli bo‘sh joy (%d Mb) mavjud emas." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "SD-kartangizda yetarli xotira (%d Mb) mavjud emas." + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Ba’zi fayllarni yo‘q qiling va qayta urinib ko‘ring." + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "Rasmni saqlash" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "Qurilmangiz xotirasida yetarli bo‘sh joy (%d Mb qoldi) mavjud emas. Ushbu element SD-kartangizga saqlanadi." + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "SD-kartada yetarli bo‘sh joy (%d Mb qoldi) mavjud emas. Ushbu element qurilmangiz xotirasida saqlanadi." + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "Ushbu tasvir o'chirib tashlanadi." + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "To‘xtatish" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Yo‘q qilish" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "Xato" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "Soha tanlash" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "OK" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "Ushbu elementni yuklab bo‘lmadi." + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "Negativ" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "BAJARILDI" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "BEKOR QILISH" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "Negativ" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "Galereyani ochib bo‘lmaydi." + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "Yuklanmoqda..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "Yuklanmoqda..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "Yuklash bajarilmadi." + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "Tasvir yuklanmoqda..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "Tashlash" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "Yuklab olib bo‘lmaydi" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobil ma’lumot o‘chirilgan. Wi-Fi tarmoqqa ulaning yoki Mobil ma’lumotni yoqing va qayta urinib ko‘ring." + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "Yuborilmasin" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 soniya" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d soniya" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "Effekt" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "Effektlar" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "Oqim" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "Xiralashish" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "Yuz tanilmadi" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "Kattalashtirish" diff --git a/res/po/zh_CN.po b/res/po/zh_CN.po old mode 100755 new mode 100644 index 697e415..e63a476 --- a/res/po/zh_CN.po +++ b/res/po/zh_CN.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "添加到主页" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "私人" -msgid "IDS_CAM_BODY_AUTO" -msgstr "自动" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "重命名" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "将删除此视频。" + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "文件名已被使用" + +msgid "IDS_ST_BODY_OFF" +msgstr "关" + +msgid "IDS_COM_BODY_DONE" +msgstr "完成" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "闪光灯" -msgid "IDS_CAM_BODY_ISO" -msgstr "感光度" +msgid "IDS_COM_SK_STOP" +msgstr "停止" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "复制到剪贴板" +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "此应用程序中,%1$s 已禁用。若要启用该功能,请进入 %2$s,选择该功能,然后选择该应用程序。" -msgid "IDS_CAM_BODY_FLASH_ON" -msgstr "闪光灯打开" +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "确定" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "闪光灯关闭" +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "完成" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "白平衡" +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "取消" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "自动" +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "输入名称" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "创建标签" +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "无名称" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "白平衡" +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "仅有一个相册" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "累计时间" +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "最多可选择%d个项目。" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "添加标签" +msgid "IDS_IV_OPT_DETAILS" +msgstr "详情" -msgid "IDS_IV_POP_ADDED" -msgstr "已添加" +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "删除" -msgid "IDS_IV_BODY_ANY" -msgstr "任何" +msgid "IDS_IV_POP_DELETE_Q" +msgstr "删除?" -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "可用于" +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "取消" -msgid "IDS_IV_BODY_BASIC" -msgstr "基本" +msgid "IDS_IV_POP_DELETED" +msgstr "已删除" -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "来电图片" +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "收藏" -msgid "IDS_IV_BODY_COUNT" -msgstr "计数" +msgid "IDS_IV_SK_SAVE" +msgstr "保存" -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "创建日期" +msgid "IDS_IV_POP_SAVED" +msgstr "已保存" -msgid "IDS_IV_BODY_DISPLAY" -msgstr "显示" +msgid "IDS_IV_BODY_SETTINGS" +msgstr "设定" -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "输入标签名称" +msgid "IDS_IV_BODY_SIZE" +msgstr "大小" -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "空记录" +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "未知" -msgid "IDS_IV_BODY_EXECUTE" -msgstr "执行" +msgid "IDS_IV_SK_YES" +msgstr "是" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "文件格式" +msgid "IDS_CAM_BODY_ISO" +msgstr "感光度" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "路径" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "焦距" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "转发" +msgid "IDS_CAM_BODY_FLASH_ON" +msgstr "闪光灯打开" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "主屏幕墙纸" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "图片浏览器" -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "不可以" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "所有图片" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "个人" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "方向" -msgid "IDS_IV_BODY_INTERVAL" -msgstr "间隔" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "选择图片" -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "图像文件无效" +msgid "IDS_MP_BODY_DURATION" +msgstr "持续期间" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "纬度" +msgid "IDS_ST_POP_SET" +msgstr "设置" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "位置" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "标签" -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "锁定屏幕墙纸" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "添加评论" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "经度" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "使用附近设备在其他设备上查看您的媒体。" -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "已达到最大字符数(%d)" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "视频文件不包含关于人物的信息,因为其不支持脸部标记功能。" -msgid "IDS_IV_BODY_N_A" -msgstr "N/A" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "无法共享该图像。它受 DRM 保护。" -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "新标签" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "无法打开文件。" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "许可被拒绝" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "由于更新时间间隔,所记录的天气信息可能与实际天气不同。" -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "可以" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "复制到剪贴板的个人内容可用于创建新内容。您的新内容可能不会自动隐藏。" -msgid "IDS_IV_BODY_PRINT" -msgstr "打印" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "图像太小" -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "通过蓝牙打印" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "日期信息仅在其他标记可见时显示" -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "分辨率" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "轻敲并按住缩略图以选择最佳照片。" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "授权状态" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "幻灯片播放设定" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD卡已移除" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "为主屏幕和锁定屏幕设置墙纸" + +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "是否将该照片设置为 %s 来电 ID?" + +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "设置为联系人图像" + +msgid "IDS_IV_POP_SENDING_ING" +msgstr "发送中…" msgid "IDS_IV_POP_SELECT_DEVICE" msgstr "选择设备" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "服务器名称" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD卡已移除。" -msgid "IDS_IV_OPT_SET_AS" -msgstr "设定为" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "许可被拒绝。" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "为主屏幕和锁定屏幕设置墙纸" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "无位置" -msgid "IDS_IV_OPT_SHARE" -msgstr "共享" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "无已标记脸部。标记照片中的脸部。" -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "幻灯片" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "未侦测到脸部。" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "计时" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "存储空间不足。请删除部分项目。" -msgid "IDS_IV_OPT_TRIM" -msgstr "修剪" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "网络连接失败" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "无限" +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "已达到最大字符数(%d)。" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "有效" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "图像文件无效" -msgid "IDS_IV_BODY_VENDOR" -msgstr "提供者" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "开" -msgid "IDS_IV_OPT_FILE_TRANSFER" -msgstr "文件传输" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "不支持文件格式。" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "不要再显示" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "空记录。" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "手指按住两点,然后前后倾斜手机以缩小或放大屏幕" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "输入标签名称。" -msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" -msgstr "了解倾斜" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "在天气壁纸中启用自动刷新以查看天气标签。" -msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "所有相册" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "下载完成" -msgid "IDS_IV_OPT_TAG" -msgstr "标签" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "最佳照片" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "主屏和锁屏壁纸" +msgid "IDS_IV_POP_ADDED" +msgstr "已添加" + +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "写下标题" msgid "IDS_IV_OPT_USE_MOTION" msgstr "使用动作" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "主屏幕与锁定屏幕" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "取消收藏" -msgid "IDS_IV_BODY_CROP" -msgstr "裁剪" +msgid "IDS_IV_OPT_TRIM" +msgstr "修剪" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "主屏" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "标记面部" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "锁定屏幕" +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "标记小帮手" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "向左旋转" +msgid "IDS_IV_OPT_TAG" +msgstr "标签" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "开始播放幻灯片" + +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "幻灯片" + +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "幻灯片" + +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "显示项目" + +msgid "IDS_IV_OPT_SHARE" +msgstr "共享" msgid "IDS_IV_OPT_ROTATE_RIGHT" msgstr "向右旋转" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "向左旋转" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "移除标签" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "刷新" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "通过蓝牙打印" + msgid "IDS_IV_OPT_MANUALLY_DETECT" msgstr "手动检测" -msgid "IDS_IV_BODY_ME" -msgstr "我" +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "主屏和锁屏壁纸" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "隐藏的项目" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "开启导航向导" + +msgid "IDS_IV_OPT_FILE_TRANSFER" +msgstr "文件传输" + +msgid "IDS_IV_OPT_ERASER" +msgstr "橡皮" + +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "编辑天气标签" msgid "IDS_IV_OPT_EDIT_TAG" msgstr "编辑标签" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "移除标签" +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "编辑标题" -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "共享通过" +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "删除标题" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "不要发送" +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "复制到剪贴板" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "连接信息" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "云服务" msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" msgstr "好友照片共享" -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "脸部识别" +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "面部优选" -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "图片浏览器" +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "作为视频文件" -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "附近的设备" +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "作为图像文件" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "选择一个区域以裁切图片" +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "动态照片" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "选中区域将应用至壁纸" +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "添加天气标签" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "将打印选中区域" +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "添加姓名" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "添加标题" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "幻灯片音乐" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "共享留声拍摄照片" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "设定为" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "发送该图片至" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "选择要共享的联系人" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "播放速度" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "锁定屏幕墙纸" + +msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" +msgstr "了解倾斜" + +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "主屏幕墙纸" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "编辑天气标签" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "编辑连拍" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "可用设备" + +msgid "IDS_IV_HEADER_ALL_ALBUMS" +msgstr "所有相册" + +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "添加标签" + +msgid "IDS_IV_BUTTON_STOP" +msgstr "停止" + +msgid "IDS_IV_BUTTON_SCAN" +msgstr "扫描" msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "您可使用附近设备与其他设备共享您的媒体" +msgstr "您可使用附近设备与其他设备共享您的媒体。" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "选中区域将应用至联系人图片" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "%s 和 %d 个其他人" -msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "曝光时间" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "与%s" -msgid "IDS_CAM_BODY_APERTURE" -msgstr "光圈" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "白平衡" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "方向" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "天气" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "制造商" +msgid "IDS_IV_BODY_WEATHER" +msgstr "天气" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "焦距" +msgid "IDS_IV_BODY_VENDOR" +msgstr "提供者" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "方向" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "有效" -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "型号" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "无限" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "添加名称" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "无法载入" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "设置为来电显示图像" +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "计时" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "所记录的天气信息应以手动编辑。您的设备不支持从天气小工具接收所记录的天气信息。" + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "轻敲面部以查看关于此人的信息。" + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "手指按住两点,然后前后倾斜手机以缩小或放大屏幕。" + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "晴天" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "雪天" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "共享通过" + +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "服务器名称" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "选择一个区域以裁切图片。" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "将打印选中区域。" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "选中区域将应用至壁纸。" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "选中区域将应用至联系人图片。" + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "授权状态" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "分辨率" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "从收藏中移除" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "雨天" + +msgid "IDS_IV_BODY_PRINT" +msgstr "打印" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "可以" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "人物" + +msgid "IDS_IV_BODY_N_A" +msgstr "N/A" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "无标签" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "新标签" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "附近的设备" + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "我的设备" + +msgid "IDS_IV_BODY_MODEL" +msgstr "型号" + +msgid "IDS_IV_BODY_ME" +msgstr "我" + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "制造商" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "经度" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "锁定屏幕" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "位置" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "位置" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "位置" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "位置" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "纬度" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "在 %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "间隔" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "个人" + +msgid "IDS_IV_BODY_IN" +msgstr "放大" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "不可以" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "主屏" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "主屏幕与锁定屏幕" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "转发" + +msgid "IDS_IV_BODY_FLASH" +msgstr "闪光" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "文件名称" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "路径" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "文件格式" + +msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" +msgstr "曝光时间" + +msgid "IDS_IV_BODY_EXECUTE" +msgstr "执行" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "在相机中启用 GPS 标签以查看位置标签。" + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "在天气小组件中启用自动刷新以查看天气标签。" + +msgid "IDS_IV_BODY_DURATION" +msgstr "持续时间" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "授权状态" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "不要再显示" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "不再询问" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "显示" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "创建日期" + +msgid "IDS_IV_BODY_CROP" +msgstr "裁剪" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "创建标签" + +msgid "IDS_IV_BODY_COUNT" +msgstr "计数" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "阴天" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "晴朗的夜晚" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "来电图片" + +msgid "IDS_IV_BODY_BASIC" +msgstr "基本" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "可用于" + +msgid "IDS_IV_BODY_AUTO" +msgstr "自动" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "应用一个匹配的颜色主题至应用程序。" + +msgid "IDS_IV_BODY_APERTURE" +msgstr "光圈" + +msgid "IDS_IV_BODY_ANY" +msgstr "任何" + +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "添加到收藏" + +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "累计时间" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "已达到最大字符限制" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "失败" + +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" + +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "编辑" + +msgid "IDS_ST_BODY_DATE" +msgstr "日期" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "账户" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "下载" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "在您上传照片至 Dropbox 后,将显示项目。" + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "下载中..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "添加图片" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "在您将图片标记为您的收藏时,将显示图片。" + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "是否移除面部识别?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "分配名称" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "确认为 %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "布局" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "%d 张图片已添加" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "相册将被取消" + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "正在开始下载…" + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "存储空间不足。请删除部分项目。" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "私人存储空间" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "拖拽至此处" + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "点击添加图像" + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "文件已存在" + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "该项目将被删除。" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "在您上传照片至 Facebook 后,将显示项目。" + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "字符无效" + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "手动" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "错误" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "处理中…" + +msgid "IDS_ST_BODY_OK" +msgstr "确定" + +msgid "IDS_ST_SK_RENAME" +msgstr "重命名" + +msgid "IDS_COM_BODY_NONE" +msgstr "无" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d 已选择" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "设备存储" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD 卡" + +msgid "IDS_ST_BODY_SPEED" +msgstr "速度" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "背景音乐" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 秒" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 秒" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 秒" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "存储位置" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "文件大小" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "将删除 1 个相册。" + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "怀旧" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "模糊" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "柔光" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "保存更改" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "是否放弃您所做的更改?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "放弃" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "保存" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "仿旧" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "阳光" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "老照片" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "复古" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "灰阶" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "褐色" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "褪色" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "筒灯" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "黄辉光" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "锐化" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "草图" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "反转的颜色" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "油画" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "色调分离" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "卡通" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "波普艺术" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "魔术笔" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "添加到阻止列表" + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "旋转" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "您的设备存储空间不足。请进入设定 > 电源和存储 > 存储,然后删除部分文件并重试。" + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "幻灯片间隔" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "幻灯片间隔" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "联系人图片" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "无" + +msgid "IDS_IV_OPT_EDIT" +msgstr "编辑" + +msgid "IDS_IV_OPT_RENAME" +msgstr "重命名" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "设置为" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "下载" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "重命名" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "重命名" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "重命名" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "目标文件夹中已有同名文件。" + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "替换" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "设置为" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "主屏幕墙纸" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "锁定屏幕墙纸" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "主屏和锁屏墙纸" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "详情" + +msgid "IDS_IV_BODY_DATE" +msgstr "日期" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "无法保存图像" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "您的设备存储空间不足 (%d MB)。" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "您的 SD 卡上空间不足 (%d MB)。" + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "删除部分文件并重试。" + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "保存图像" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "您的设备存储空间不足 (剩余 %d MB)。该项目将保存至您的 SD 卡。" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "SD 卡上空间不足 (剩余 %d MB)。该项目将保存至您的设备存储。" + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "图像将被删除。" + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "停止" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "删除" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "错误" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "选择区域" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "完成" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "无法载入该项目。" + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "负片" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "完成" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "取消" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "负片" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "无法打开相册" + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "正在载入..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "载入中…" + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "加载失败" + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "读取图片..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "放弃" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "无法下载" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "移动数据已关闭。连接至 Wi-Fi 网络或打开移动数据并重试。" + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "不要发送" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 秒" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d秒" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "效果" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "效果" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "流动" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "淡化" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "未侦测到脸部" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "放大" diff --git a/res/po/zh_HK.po b/res/po/zh_HK.po old mode 100755 new mode 100644 index 6ed8541..a9abc6a --- a/res/po/zh_HK.po +++ b/res/po/zh_HK.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "加到首頁" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "私人資料夾" -msgid "IDS_CAM_BODY_AUTO" -msgstr "自動" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "重新命名" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "此影片將被刪除。" + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "檔案名稱已被使用" + +msgid "IDS_ST_BODY_OFF" +msgstr "關" + +msgid "IDS_COM_BODY_DONE" +msgstr "完成" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "閃光燈" -msgid "IDS_CAM_BODY_ISO" -msgstr "ISO" +msgid "IDS_COM_SK_STOP" +msgstr "停止" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "複製到剪貼板" +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s 已在此應用程式中停用。若要啟用此功能,請前往 %2$s,選擇此功能,然後選擇此應用程式。" -msgid "IDS_CAM_BODY_FLASH_ON" -msgstr "閃光燈開" +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "確定" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "閃光燈關" +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "完成" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "白平衡" +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "取消" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "自動" +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "輸入名稱" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "建立標籤" +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "無名稱" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "白平衡" +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "僅有一本相簿。" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "累積時間" +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "最多可選擇 %d 個項目。" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "加入標籤" +msgid "IDS_IV_OPT_DETAILS" +msgstr "詳細資料" -msgid "IDS_IV_POP_ADDED" -msgstr "已加入" +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "刪除" -msgid "IDS_IV_BODY_ANY" -msgstr "任何" +msgid "IDS_IV_POP_DELETE_Q" +msgstr "刪除嗎?" -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "可供使用" +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "取消" -msgid "IDS_IV_BODY_BASIC" -msgstr "灰底" +msgid "IDS_IV_POP_DELETED" +msgstr "已刪除。" -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "來電者圖像" +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "我的最愛" -msgid "IDS_IV_BODY_COUNT" -msgstr "計數" +msgid "IDS_IV_SK_SAVE" +msgstr "儲存" -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "建立日期" +msgid "IDS_IV_POP_SAVED" +msgstr "已儲存。" -msgid "IDS_IV_BODY_DISPLAY" -msgstr "顯示" +msgid "IDS_IV_BODY_SETTINGS" +msgstr "設定" -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "輸入標籤名稱" +msgid "IDS_IV_BODY_SIZE" +msgstr "大小" -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "空白記錄" +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "未知" -msgid "IDS_IV_BODY_EXECUTE" -msgstr "執行" +msgid "IDS_IV_SK_YES" +msgstr "是" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "檔案格式" +msgid "IDS_CAM_BODY_ISO" +msgstr "ISO" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "檔案位置" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "焦距長度" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "轉寄中" +msgid "IDS_CAM_BODY_FLASH_ON" +msgstr "閃光燈開" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "主螢幕牆紙" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "圖像檢視器" -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "不可以" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "全部圖片" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "個人" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "方向" -msgid "IDS_IV_BODY_INTERVAL" -msgstr "間隔" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "選擇圖片" -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "圖像檔案無效" +msgid "IDS_MP_BODY_DURATION" +msgstr "持續時間" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "緯度" +msgid "IDS_ST_POP_SET" +msgstr "設定" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "位置" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "標籤" -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "鎖定螢幕牆紙" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "加入評語" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "經度" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "使用附近裝置於其他裝置上檢視媒體。" -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "已達字元數目上限 (%d)" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "影片檔案不包含人物相關資訊,因檔案不支援臉部標籤功能。" -msgid "IDS_IV_BODY_N_A" -msgstr "不適用" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "無法共享此圖像。它受 DRM 保護。" -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "新標籤" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "無法開啟檔案。" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "權限被拒絕" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "由於更新時間間隔,記錄的天氣資訊可能與實際天氣有所不同。" -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "可以" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "複製至剪貼板的個人內容可用於建立新內容。您的新內容可能不會自動隱藏。" -msgid "IDS_IV_BODY_PRINT" -msgstr "列印" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "圖像太小。" -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "透過藍牙列印" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "日期資訊僅於其他標籤可見時顯示。" -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "解像度" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "輕觸並按住縮圖以選擇最佳相片。" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "版權狀態" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "投影片設定" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD 卡已移除" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "為主螢幕和鎖定螢幕設定螢幕牆紙。" + +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "將此相片設為 %s 的來電者 ID 嗎?" + +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "設定為來電顯示" + +msgid "IDS_IV_POP_SENDING_ING" +msgstr "正在發送..." msgid "IDS_IV_POP_SELECT_DEVICE" msgstr "選擇裝置" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "伺服器名稱" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD 卡已移除。" -msgid "IDS_IV_OPT_SET_AS" -msgstr "設定為" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "權限被拒絕。" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "為主螢幕和鎖定螢幕設定螢幕牆紙" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "無位置" -msgid "IDS_IV_OPT_SHARE" -msgstr "分享" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "尚未標記任何臉部。在圖片中標記臉部。" -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "投影片播放" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "未偵測到臉部。" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "計時" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "記憶體不足。請刪除一些項目。" -msgid "IDS_IV_OPT_TRIM" -msgstr "修剪" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "網絡連接失敗" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "無限制" +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "已達字元數目上限 (%d)。" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "有效期" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "圖像檔案無效" -msgid "IDS_IV_BODY_VENDOR" -msgstr "供應商" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "閃光燈已使用" -msgid "IDS_IV_OPT_FILE_TRANSFER" -msgstr "檔案傳輸" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "檔案格式不支援。" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "不再顯示" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "空白記錄。" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "輕觸並按住兩點,然後來回傾斜手機以縮小或放大螢幕" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "輸入標籤名稱。" -msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" -msgstr "瞭解關於傾斜" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "在天氣螢幕牆紙啟用自動重新整理以查看天氣標籤。" -msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "全部專輯" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "下載完成" -msgid "IDS_IV_OPT_TAG" -msgstr "標籤" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "最佳相片" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "主螢幕與鎖定螢幕牆紙" +msgid "IDS_IV_POP_ADDED" +msgstr "已加入" + +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "寫入圖說" msgid "IDS_IV_OPT_USE_MOTION" msgstr "使用動作" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "主螢幕和鎖定螢幕" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "取消最愛" -msgid "IDS_IV_BODY_CROP" -msgstr "裁剪" +msgid "IDS_IV_OPT_TRIM" +msgstr "修剪" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "主螢幕" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "標記臉部" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "鎖定螢幕" +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "標籤小幫手" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "左轉" +msgid "IDS_IV_OPT_TAG" +msgstr "標籤" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "開始播放投影片" + +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "投影片播放" + +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "投影片" + +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "顯示項目" + +msgid "IDS_IV_OPT_SHARE" +msgstr "分享" msgid "IDS_IV_OPT_ROTATE_RIGHT" msgstr "右轉" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "左轉" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "移除標籤" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "重新整理" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "透過藍牙列印" + msgid "IDS_IV_OPT_MANUALLY_DETECT" msgstr "手動偵測" -msgid "IDS_IV_BODY_ME" -msgstr "我" +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "主螢幕與鎖定螢幕牆紙" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "隱藏的項目" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "取得路線" + +msgid "IDS_IV_OPT_FILE_TRANSFER" +msgstr "檔案傳輸" + +msgid "IDS_IV_OPT_ERASER" +msgstr "橡皮擦" + +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "編輯天氣標籤" msgid "IDS_IV_OPT_EDIT_TAG" msgstr "編輯標籤" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "移除標籤" +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "編輯圖說" -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "分享透過" +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "刪除標題" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "不要發送" +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "複製到剪貼板" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "連接資訊" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "雲端" msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" msgstr "好友相片分享" -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "臉部標籤" +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "最佳臉部表情" -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "圖像檢視器" +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "作為影片檔案" -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "附近裝置" +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "作為圖像檔案" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "選擇一個區域以裁剪圖片" +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "動畫相片" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "選擇的區域將應用至螢幕牆紙" +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "加入天氣標籤" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "將列印選擇的區域" +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "加入名稱" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "加入圖說" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "投影片音樂" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "分享有聲拍攝相片" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "設定為" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "發送此圖片至" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "選擇要分享的聯絡人" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "播放速度" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "鎖定螢幕牆紙" + +msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" +msgstr "瞭解關於傾斜" + +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "主螢幕牆紙" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "編輯天氣標籤" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "編輯連續快拍" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "可用裝置" + +msgid "IDS_IV_HEADER_ALL_ALBUMS" +msgstr "全部相簿" + +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "加入標籤" + +msgid "IDS_IV_BUTTON_STOP" +msgstr "停止" + +msgid "IDS_IV_BUTTON_SCAN" +msgstr "掃描" msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "您可使用附近裝置與其他裝置分享您的媒體" +msgstr "您可使用附近裝置與其他裝置分享您的媒體。" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "選擇的區域將應用至聯絡人圖片" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "與 %s 和 %d 個其他人" -msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "曝光時間" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "與 %s" -msgid "IDS_CAM_BODY_APERTURE" -msgstr "光圈" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "白平衡" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "方向" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "天氣" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "製造商" +msgid "IDS_IV_BODY_WEATHER" +msgstr "天氣" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "焦距長度" +msgid "IDS_IV_BODY_VENDOR" +msgstr "供應商" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "方向" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "有效期" -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "型號" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "無限制" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "加入名字" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "無法載入相片。" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "設定為來電顯示" +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "計時" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "記錄的天氣資訊應以手動編輯。您的裝置不支援從天氣 widget 接收記錄的天氣資訊。" + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "標觸臉部以檢視人物相關資訊。" + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "輕觸並按住兩點,然後來回傾斜手機以縮小或放大螢幕。" + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "晴天" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "下雪天" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "分享透過" + +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "伺服器名稱" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "選擇一個區域以裁剪圖片。" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "將列印選擇的區域。" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "選擇的區域將應用至螢幕牆紙。" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "選擇的區域將應用至聯絡人圖片。" + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "版權狀態" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "解像度" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "從我的最愛中移除" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "雨天" + +msgid "IDS_IV_BODY_PRINT" +msgstr "列印" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "可以" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "人物" + +msgid "IDS_IV_BODY_N_A" +msgstr "不適用" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "無標籤" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "新標籤" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "附近裝置" + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "我的裝置" + +msgid "IDS_IV_BODY_MODEL" +msgstr "型號" + +msgid "IDS_IV_BODY_ME" +msgstr "我" + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "製造商" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "經度" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "鎖定螢幕" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "位置" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "位置" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "位置" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "位置" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "緯度" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "在 %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "間隔" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "個人" + +msgid "IDS_IV_BODY_IN" +msgstr "放大" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "不可以" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "主螢幕" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "主螢幕和鎖定螢幕" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "轉寄" + +msgid "IDS_IV_BODY_FLASH" +msgstr "閃光燈" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "檔案名稱" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "檔案位置" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "檔案格式" + +msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" +msgstr "曝光時間" + +msgid "IDS_IV_BODY_EXECUTE" +msgstr "執行" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "在相機中啟用 GPS 標籤以查看位置標籤。" + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "在天氣 Widget 啟用自動重新整理以查看天氣標籤。" + +msgid "IDS_IV_BODY_DURATION" +msgstr "持續時間" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM 資料" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "不再顯示" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "不再詢問" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "顯示" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "建立日期" + +msgid "IDS_IV_BODY_CROP" +msgstr "裁剪" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "建立標籤" + +msgid "IDS_IV_BODY_COUNT" +msgstr "計數" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "陰天" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "晴朗夜晚" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "來電者圖像" + +msgid "IDS_IV_BODY_BASIC" +msgstr "基本" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "可供使用" + +msgid "IDS_IV_BODY_AUTO" +msgstr "自動" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "應用一個相符顏色主題至應用程式。" + +msgid "IDS_IV_BODY_APERTURE" +msgstr "光圈" + +msgid "IDS_IV_BODY_ANY" +msgstr "任何" + +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "加到我的最愛" + +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "累積時間" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "字元數目已達上限。" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "失敗" + +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" + +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "編輯" + +msgid "IDS_ST_BODY_DATE" +msgstr "日期" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "帳戶" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "下載" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "將圖片上載至 Dropbox 後將顯示項目。" + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "正在下載..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "加入圖片" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "在您將圖片標籤為最愛後,將顯示圖片。" + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "移除臉部識別嗎?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "指定名稱" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "確認為 %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "版面配置" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "已加入 %d 張圖片" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "相簿將被取消。" + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "正在開始下載…" + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "記憶體不足。請刪除一些項目。" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "私人儲存空間" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "拖曳至這裡。" + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "輕觸以加入圖像。" + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "檔案已存在。" + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "此項目將被刪除。" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "將圖片上載至 Facebook 後將顯示項目。" + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "字元無效。" + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "手動" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "處理中..." + +msgid "IDS_ST_BODY_OK" +msgstr "確定" + +msgid "IDS_ST_SK_RENAME" +msgstr "重新命名" + +msgid "IDS_COM_BODY_NONE" +msgstr "無" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "已選擇 %d" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "裝置記憶體" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD 卡" + +msgid "IDS_ST_BODY_SPEED" +msgstr "速度" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "背景音樂" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 秒" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 秒" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 秒" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "儲存空間位置" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "檔案大小" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "將刪除 1 個相簿。" + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "懷舊" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "模糊" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "柔光" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "儲存變更" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "要儲存或捨棄您的變更?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "捨棄" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "儲存" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "復古" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "陽光" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "老相片" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "復古風格" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "灰階" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "深褐色" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "褪色" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "筒燈" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "黃光暈" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "銳利化" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "素描" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "反轉顏色" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "油畫" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "海報效果" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "卡通" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "普普藝術" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "神奇畫筆" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "已加到封鎖清單" + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "旋轉" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "您的裝置儲存空間不足。請前往設定 > 電源與儲存空間 > 儲存空間,然後刪除部分檔案並重試。" + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "投影片時間間隔" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "投影片時間間隔" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "聯絡人圖片" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "無" + +msgid "IDS_IV_OPT_EDIT" +msgstr "編輯" + +msgid "IDS_IV_OPT_RENAME" +msgstr "重新命名" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "設定為" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "下載" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "重新命名" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "重新命名" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "重新命名" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "目的地資料夾中已存在擁有此名稱的檔案。" + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "取代" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "設定為" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "主螢幕牆紙" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "鎖定螢幕牆紙" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "主螢幕與鎖定螢幕牆紙" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "詳細資料" + +msgid "IDS_IV_BODY_DATE" +msgstr "日期" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "無法儲存圖像" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "您的裝置儲存空間中的空間不足 (%d MB)。" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "SD 卡中的空間不足 (%d MB)。" + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "刪除部分檔案並重試。" + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "儲存圖像" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "您的裝置儲存空間中的空間不足 (剩餘 %d MB)。此項目將儲存至您的 SD 卡。" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "SD 卡上空間不足 (剩餘 %d MB)。此項目將儲存至您的裝置儲存空間。" + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "此圖像將被刪除。" + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "停止" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "刪除" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "錯誤" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "選擇區域" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "完成" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "無法載入此項目。" + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "底片" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "完成" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "取消" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "底片" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "無法開啟媒體瀏覽器。" + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "正在載入..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "正在載入..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "載入失敗" + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "正在載入圖像..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "捨棄" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "無法下載" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "流動數據已關閉。請連接至 Wi-Fi 網絡或開啟流動數據並重試。" + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "不要發送" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 秒" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d 秒" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "效果" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "效果" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "流動" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "淡化" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "未偵測到臉部" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "放大" diff --git a/res/po/zh_SG.po b/res/po/zh_SG.po deleted file mode 100755 index 72c091f..0000000 --- a/res/po/zh_SG.po +++ /dev/null @@ -1,288 +0,0 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "添加到主页" - -msgid "IDS_CAM_BODY_AUTO" -msgstr "自动" - -msgid "IDS_CAM_BODY_FLASH" -msgstr "闪光灯" - -msgid "IDS_CAM_BODY_ISO" -msgstr "ISO" - -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "复制至剪贴板" - -msgid "IDS_CAM_BODY_FLASH_ON" -msgstr "闪光灯开" - -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "闪光灯关" - -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "白平衡" - -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "自动" - -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "创建标签" - -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "白平衡" - -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "累计时间" - -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "添加标签" - -msgid "IDS_IV_POP_ADDED" -msgstr "已添加" - -msgid "IDS_IV_BODY_ANY" -msgstr "任何" - -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "适用用法" - -msgid "IDS_IV_BODY_BASIC" -msgstr "基本" - -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "来电图象" - -msgid "IDS_IV_BODY_COUNT" -msgstr "计数" - -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "创建日期" - -msgid "IDS_IV_BODY_DISPLAY" -msgstr "显示" - -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "输入标签名称" - -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "空记录" - -msgid "IDS_IV_BODY_EXECUTE" -msgstr "执行" - -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "文件格式" - -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "文件位置" - -msgid "IDS_IV_BODY_FORWARDING" -msgstr "转发中" - -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "主屏幕墙纸" - -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "不可能" - -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "个人" - -msgid "IDS_IV_BODY_INTERVAL" -msgstr "间隔" - -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "图像文件无效" - -msgid "IDS_IV_BODY_LATITUDE" -msgstr "纬度" - -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "位置" - -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "锁定屏幕墙纸" - -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "经度" - -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "已达到最大字符数(%d)" - -msgid "IDS_IV_BODY_N_A" -msgstr "N/A" - -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "新标签" - -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "许可被拒绝" - -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "可能" - -msgid "IDS_IV_BODY_PRINT" -msgstr "打印" - -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "通过蓝牙打印" - -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "分辨率" - -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "权限状态" - -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD卡已移除" - -msgid "IDS_IV_POP_SELECT_DEVICE" -msgstr "选择设备" - -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "服务器名称" - -msgid "IDS_IV_OPT_SET_AS" -msgstr "设定为" - -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "为主屏幕和锁定屏幕设置墙纸" - -msgid "IDS_IV_OPT_SHARE" -msgstr "共享" - -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "幻灯片播放" - -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "计时" - -msgid "IDS_IV_OPT_TRIM" -msgstr "修整" - -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "无限" - -msgid "IDS_IV_BODY_VALIDITY" -msgstr "有效" - -msgid "IDS_IV_BODY_VENDOR" -msgstr "提供者" - -msgid "IDS_IV_OPT_FILE_TRANSFER" -msgstr "文件传送" - -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "不要再显示" - -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "手指按住两点,然后手指来回地在两点之间移动以缩小或放大屏幕" - -msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" -msgstr "了解倾斜" - -msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "所有相册" - -msgid "IDS_IV_OPT_TAG" -msgstr "标签" - -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "主屏和锁屏壁纸" - -msgid "IDS_IV_OPT_USE_MOTION" -msgstr "使用动作" - -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "主屏和锁屏" - -msgid "IDS_IV_BODY_CROP" -msgstr "收获" - -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "主屏" - -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "锁定屏幕" - -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "向左旋转" - -msgid "IDS_IV_OPT_ROTATE_RIGHT" -msgstr "向右旋转" - -msgid "IDS_IV_OPT_MANUALLY_DETECT" -msgstr "手动检测" - -msgid "IDS_IV_BODY_ME" -msgstr "我" - -msgid "IDS_IV_OPT_EDIT_TAG" -msgstr "编辑标签" - -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "移除标签" - -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "共享通过" - -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "不要发送" - -msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" -msgstr "好友照片共享" - -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "脸部标记" - -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "图片浏览器" - -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "附近设备" - -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "选择一个区域以裁切图片" - -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "选中区域将应用至壁纸" - -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "将打印选中区域" - -msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "您可使用附近设备与其他设备共享您的媒体" - -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "选中区域将应用至联系人图片" - -msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "曝光时间" - -msgid "IDS_CAM_BODY_APERTURE" -msgstr "光圈" - -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "方位" - -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "制造商" - -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "焦距" - -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "方位" - -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "样式" - -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "添加名称" - -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "设定为来电显示" - -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "未侦测到脸部" - diff --git a/res/po/zh_TW.po b/res/po/zh_TW.po old mode 100755 new mode 100644 index f142e5e..612ba62 --- a/res/po/zh_TW.po +++ b/res/po/zh_TW.po @@ -1,288 +1,996 @@ -msgid "IDS_MEDIABR_SK2_ADD_TO_HOME" -msgstr "新增至首頁" +msgid "IDS_GALLERY_OPT_PRIVATE_M_CONTENT" +msgstr "隱私" -msgid "IDS_CAM_BODY_AUTO" -msgstr "自動" +msgid "IDS_VIDEO_OPT_RENAME" +msgstr "重新命名" + +msgid "IDS_VIDEO_POP_THIS_VIDEO_WILL_BE_DELETED" +msgstr "此影片將被刪除。" + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "檔案名稱已被使用" + +msgid "IDS_ST_BODY_OFF" +msgstr "關" + +msgid "IDS_COM_BODY_DONE" +msgstr "完成" + +msgid "IDS_FB_BODY_FACEBOOK" +msgstr "Facebook" msgid "IDS_CAM_BODY_FLASH" msgstr "閃光燈" -msgid "IDS_CAM_BODY_ISO" -msgstr "ISO" +msgid "IDS_COM_SK_STOP" +msgstr "停止" -msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" -msgstr "複製到剪貼簿" +msgid "IDS_ST_POP_P1SS_IS_DISABLED_IN_THIS_APPLICATION_TO_ENABLE_THIS_FUNCTION_GO_TO_P2SS_SELECT_THIS_FUNCTION_AND_THEN_SELECT_THIS_APPLICATION" +msgstr "%1$s 已在此應用程式中停用。若要啟用此功能,請前往 %2$s,選擇此功能,然後選擇此應用程式。" -msgid "IDS_CAM_BODY_FLASH_ON" -msgstr "閃光燈開" +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "確認" -msgid "IDS_CAM_BODY_FLASH_OFF" -msgstr "閃光燈關" +msgid "IDS_MEDIABR_BUTTON_DONE" +msgstr "完成" -msgid "IDS_CAM_BODY_WHITE_BALANCE" -msgstr "白平衡" +msgid "IDS_GALLERY_BUTTON_CANCEL_ABB2" +msgstr "取消" -msgid "IDS_CAM_BUTTON_AUTO" -msgstr "自動" +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "輸入名稱" -msgid "IDS_MEDIABR_OPT_CREATE_TAG" -msgstr "建立標籤" +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "無姓名" -msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB" -msgstr "白平衡" +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "僅有一本相簿。" -msgid "IDS_IV_BODY_ACCUMULATED_TIME" -msgstr "累計時間" +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "最多可以選擇 %d 個項目。" -msgid "IDS_IV_HEADER_ADD_TAG" -msgstr "加入標籤" +msgid "IDS_IV_OPT_DETAILS" +msgstr "詳細資料" -msgid "IDS_IV_POP_ADDED" -msgstr "已新增" +msgid "IDS_IV_OPT_DELETE_ABB" +msgstr "刪除" -msgid "IDS_IV_BODY_ANY" -msgstr "任何" +msgid "IDS_IV_POP_DELETE_Q" +msgstr "要刪除嗎?" -msgid "IDS_IV_BODY_AVAILABLE_USES" -msgstr "可供使用" +msgid "IDS_IV_BUTTON_CANCEL" +msgstr "取消" -msgid "IDS_IV_BODY_BASIC" -msgstr "基本" +msgid "IDS_IV_POP_DELETED" +msgstr "已刪除。" -msgid "IDS_IV_BODY_CALLER_IMAGE" -msgstr "來電者圖像" +msgid "IDS_IV_BODY_FAVOURITE" +msgstr "我的最愛" -msgid "IDS_IV_BODY_COUNT" -msgstr "計數" +msgid "IDS_IV_SK_SAVE" +msgstr "儲存" -msgid "IDS_IV_BODY_DATE_CREATED" -msgstr "建立日期" +msgid "IDS_IV_POP_SAVED" +msgstr "已儲存。" -msgid "IDS_IV_BODY_DISPLAY" -msgstr "顯示" +msgid "IDS_IV_BODY_SETTINGS" +msgstr "設定" -msgid "IDS_IV_POP_ENTER_TAG_NAME" -msgstr "輸入標籤名稱" +msgid "IDS_IV_BODY_SIZE" +msgstr "大小" -msgid "IDS_IV_POP_ENTRY_IS_EMPTY" -msgstr "項目為空" +msgid "IDS_IV_BODY_UNKNOWN" +msgstr "未知" -msgid "IDS_IV_BODY_EXECUTE" -msgstr "執行" +msgid "IDS_IV_SK_YES" +msgstr "是" -msgid "IDS_IV_BODY_FILE_FORMAT" -msgstr "檔案格式" +msgid "IDS_CAM_BODY_ISO" +msgstr "ISO" -msgid "IDS_IV_BODY_FILE_LOCATION" -msgstr "檔案位置" +msgid "IDS_CAM_BODY_FOCAL_LENGTH" +msgstr "焦距" -msgid "IDS_IV_BODY_FORWARDING" -msgstr "正在轉寄" +msgid "IDS_CAM_BODY_FLASH_ON" +msgstr "閃光燈開" -msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" -msgstr "主螢幕桌布" +msgid "IDS_COM_POP_IMAGE_VIEWER" +msgstr "影像檢視器" -msgid "IDS_IV_BODY_IMPOSSIBLE" -msgstr "不可能" +msgid "IDS_MEDIABR_OPT_ALL_PICTURES" +msgstr "所有圖片" -msgid "IDS_IV_BODY_INDIVIDUAL" -msgstr "個別" +msgid "IDS_MEDIABR_HEADER_ORIENTATION" +msgstr "方向" -msgid "IDS_IV_BODY_INTERVAL" -msgstr "間隔" +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "選擇圖片" -msgid "IDS_IV_POP_INVALID_IMAGE_FILE" -msgstr "影像檔案無效" +msgid "IDS_MP_BODY_DURATION" +msgstr "長度" -msgid "IDS_IV_BODY_LATITUDE" -msgstr "緯度" +msgid "IDS_ST_POP_SET" +msgstr "設定" -msgid "IDS_IV_BODY_LOCATIONS" -msgstr "位置" +msgid "IDS_GALLERY_BODY_TAGS" +msgstr "標籤" -msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" -msgstr "鎖定螢幕桌布" +msgid "IDS_IV_SK3_ADD_COMMENT" +msgstr "加入留言" -msgid "IDS_IV_BODY_LONGITUDE" -msgstr "經度" +msgid "IDS_IV_POP_VIEW_YOUR_MEDIA_ON_OTHER_DEVICES_USING_NEARBY_DEVICES" +msgstr "使用附近的裝置於其他裝置上檢視媒體。" -msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" -msgstr "達到%個最大字元" +msgid "IDS_IV_POP_VIDEO_FILES_DO_NOT_CONTAIN_INFORMATION_ABOUT_PEOPLE_AS_THEY_DO_NOT_SUPPORT_THE_FACE_TAG_FUNCTION" +msgstr "影片檔案不包含人物相關資訊,因檔案不支援臉部標籤功能。" -msgid "IDS_IV_BODY_N_A" -msgstr "不適用" +msgid "IDS_IV_POP_UNABLE_TO_SHARE_THIS_IMAGE_IT_IS_DRM_PROTECTED" +msgstr "無法分享此圖像。此圖像受 DRM 保護。" -msgid "IDS_IV_BODY_NEW_TAG" -msgstr "新標籤" +msgid "IDS_IV_POP_UNABLE_TO_OPEN_FILE" +msgstr "無法開啟檔案。" -msgid "IDS_IV_POP_PERMISSION_DENIED" -msgstr "權限被拒絕" +msgid "IDS_IV_POP_THE_RECORDED_WEATHER_INFORMATION_MAY_BE_DIFFERENT_FROM_THE_ACTUAL_WEATHER_BECAUSE_OF_THE_UPDATE_INTERVAL" +msgstr "由於更新時間間隔,記錄的天氣資訊可能與實際天氣有所不同。" -msgid "IDS_IV_BODY_POSSIBLE" -msgstr "可能" +msgid "IDS_IV_POP_THE_PERSONAL_CONTENT_COPIED_TO_THE_CLIPBOARD_CAN_BE_USED_MSG" +msgstr "複製至剪貼簿的個人內容可用於建立新內容。您的新內容可能不會自動隱藏。" -msgid "IDS_IV_BODY_PRINT" -msgstr "列印" +msgid "IDS_IV_POP_THE_IMAGE_IS_TOO_SMALL" +msgstr "影像太小。" -msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" -msgstr "透過藍牙列印" +msgid "IDS_IV_POP_THE_DATE_INFORMATION_IS_ONLY_DISPLAYED_WHEN_OTHER_TAGS_ARE_VISIBLE" +msgstr "日期資訊僅於其他標籤可見時顯示。" -msgid "IDS_IV_BODY_RESOLUTION" -msgstr "解析度" +msgid "IDS_IV_POP_TAP_AND_HOLD_THUMBNAILS_TO_SELECT_THE_BEST_PHOTOS" +msgstr "輕觸並按住縮圖以選擇最佳照片。" -msgid "IDS_IV_BODY_RIGHT_STATUS" -msgstr "版權狀態" +msgid "IDS_IV_POP_SLIDESHOW_SETTINGS" +msgstr "投影片設定" -msgid "IDS_IV_POP_SD_CARD_REMOVED" -msgstr "SD卡已移除" +msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" +msgstr "設定主螢幕與鎖定螢幕" + +msgid "IDS_IV_POP_SET_THIS_PICTURE_AS_PSS_CALLER_ID_Q" +msgstr "將此相片設為 %s 的來電者 ID 嗎?" + +msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" +msgstr "設定為聯絡人圖像" + +msgid "IDS_IV_POP_SENDING_ING" +msgstr "正在傳送..." msgid "IDS_IV_POP_SELECT_DEVICE" msgstr "選擇裝置" -msgid "IDS_IV_BODY_SERVER_NAME" -msgstr "伺服器名稱" +msgid "IDS_IV_POP_SD_CARD_REMOVED" +msgstr "SD卡已移除。" -msgid "IDS_IV_OPT_SET_AS" -msgstr "設定為" +msgid "IDS_IV_POP_PERMISSION_DENIED" +msgstr "權限被拒絕。" -msgid "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN" -msgstr "設定主螢幕與鎖定螢幕" +msgid "IDS_IV_POP_NO_LOCATION" +msgstr "無位置" -msgid "IDS_IV_OPT_SHARE" -msgstr "分享" +msgid "IDS_IV_POP_NO_FACES_HAVE_BEEN_TAGGED_TAG_FACES_IN_THE_PICTURE" +msgstr "尚未標記任何臉部。在圖片中標記臉部。" -msgid "IDS_IV_OPT_SLIDE_SHOW" -msgstr "投影片放映" +msgid "IDS_IV_POP_NO_FACES_DETECTED" +msgstr "未偵測到臉部。" -msgid "IDS_IV_BODY_TIMED_COUNT" -msgstr "計時數" +msgid "IDS_IV_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "記憶體不足。請刪除部分項目。" -msgid "IDS_IV_OPT_TRIM" -msgstr "剪輯" +msgid "IDS_IV_POP_NETWORK_CONNECTION_FAILED" +msgstr "網路連線失敗" -msgid "IDS_IV_BODY_UNLIMITED" -msgstr "無限制" +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "達到%d個最大字元。" -msgid "IDS_IV_BODY_VALIDITY" -msgstr "有效期" +msgid "IDS_IV_POP_INVALID_IMAGE_FILE" +msgstr "影像檔案無效" -msgid "IDS_IV_BODY_VENDOR" -msgstr "供應商" +msgid "IDS_IV_POP_FLASH_USED_ABB" +msgstr "已使用閃光燈" -msgid "IDS_IV_OPT_FILE_TRANSFER" -msgstr "檔案傳輸" +msgid "IDS_IV_POP_FILE_FORMAT_NOT_SUPPORTED" +msgstr "檔案類型未支援。" -msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" -msgstr "不再顯示" +msgid "IDS_IV_POP_ENTRY_IS_EMPTY" +msgstr "項目為空。" -msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" -msgstr "輕觸並按住兩點,然後來回傾斜裝置以縮小或放大螢幕" +msgid "IDS_IV_POP_ENTER_TAG_NAME" +msgstr "輸入標籤名稱。" -msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" -msgstr "瞭解關於傾斜" +msgid "IDS_IV_POP_ENABLE_AUTO_REFRESH_IN_WEATHER_WALLPAPER_TO_SEE_WEATHER_TAGS" +msgstr "在天氣桌布啟用自動重新整理以查看天氣標籤。" -msgid "IDS_IV_HEADER_ALL_ALBUMS" -msgstr "所有相簿" +msgid "IDS_IV_POP_DOWNLOAD_COMPLETE" +msgstr "下載完成" -msgid "IDS_IV_OPT_TAG" -msgstr "標籤" +msgid "IDS_IV_POP_BEST_PHOTO" +msgstr "最佳照片" -msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" -msgstr "主螢幕與鎖定畫面桌布" +msgid "IDS_IV_POP_ADDED" +msgstr "已新增。" + +msgid "IDS_IV_OPT_WRITE_CAPTION" +msgstr "寫入圖說" msgid "IDS_IV_OPT_USE_MOTION" msgstr "使用動作" -msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" -msgstr "主螢幕與鎖定螢幕" +msgid "IDS_IV_OPT_UNFAVOURITE" +msgstr "取消最愛" -msgid "IDS_IV_BODY_CROP" -msgstr "裁剪" +msgid "IDS_IV_OPT_TRIM" +msgstr "剪輯" -msgid "IDS_IV_BODY_HOME_SCREEN" -msgstr "主螢幕" +msgid "IDS_IV_OPT_TAG_FACE_ABB" +msgstr "標記臉部" -msgid "IDS_IV_BODY_LOCK_SCREEN" -msgstr "鎖定螢幕" +msgid "IDS_IV_OPT_TAG_BUDDY" +msgstr "智慧標籤" -msgid "IDS_IV_OPT_ROTATE_LEFT" -msgstr "向左旋轉" +msgid "IDS_IV_OPT_TAG" +msgstr "標籤" + +msgid "IDS_IV_OPT_START_SLIDESHOW" +msgstr "開始播放投影片" + +msgid "IDS_IV_OPT_SLIDE_SHOW" +msgstr "投影片放映" + +msgid "IDS_IV_OPT_SLIDESHOW_ABB" +msgstr "投影片" + +msgid "IDS_IV_OPT_SHOW_ITEMS" +msgstr "顯示項目" + +msgid "IDS_IV_OPT_SHARE" +msgstr "分享" msgid "IDS_IV_OPT_ROTATE_RIGHT" msgstr "向右旋轉" +msgid "IDS_IV_OPT_ROTATE_LEFT" +msgstr "向左旋轉" + +msgid "IDS_IV_OPT_REMOVE_TAG" +msgstr "移除標籤" + +msgid "IDS_IV_OPT_REFRESH" +msgstr "重新整理" + +msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH" +msgstr "透過藍牙列印" + msgid "IDS_IV_OPT_MANUALLY_DETECT" msgstr "手動偵測" -msgid "IDS_IV_BODY_ME" -msgstr "我" +msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER" +msgstr "主螢幕與鎖定畫面桌布" + +msgid "IDS_IV_OPT_HIDDEN_ITEMS" +msgstr "隱藏的項目" + +msgid "IDS_IV_OPT_GET_DIRECTIONS_ABB" +msgstr "取得路線" + +msgid "IDS_IV_OPT_FILE_TRANSFER" +msgstr "檔案傳輸" + +msgid "IDS_IV_OPT_ERASER" +msgstr "橡皮擦" + +msgid "IDS_IV_OPT_EDIT_WEATHER_TAG_ABB" +msgstr "編輯天氣標籤" msgid "IDS_IV_OPT_EDIT_TAG" msgstr "編輯標籤" -msgid "IDS_IV_OPT_REMOVE_TAG" -msgstr "移除標籤" +msgid "IDS_IV_OPT_EDIT_CAPTION" +msgstr "編輯圖說" -msgid "IDS_IV_BODY_SHARE_VIA" -msgstr "分享經由" +msgid "IDS_IV_OPT_DELETE_CAPTION" +msgstr "刪除圖說" -msgid "IDS_IV_BODY_DO_NOT_SEND" -msgstr "不傳送" +msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD" +msgstr "複製到剪貼薄" + +msgid "IDS_IV_OPT_CONNECTION_INFO_ABB" +msgstr "連接資訊" + +msgid "IDS_IV_OPT_CLOUD" +msgstr "雲端" msgid "IDS_IV_OPT_BUDDY_PHOTO_SHARE" msgstr "好友圖片分享" -msgid "IDS_PBR_OPT_FACE_TAGGING" -msgstr "面部標籤" +msgid "IDS_IV_OPT_BEST_FACE_ABB" +msgstr "最佳臉部表情" -msgid "IDS_COM_POP_IMAGE_VIEWER" -msgstr "影像檢視器" +msgid "IDS_IV_OPT_AS_VIDEO_FILES" +msgstr "作為影片檔案" -msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" -msgstr "附近裝置" +msgid "IDS_IV_OPT_AS_IMAGE_FILES" +msgstr "作為圖像檔案" -msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" -msgstr "選擇一個區域以裁切圖片" +msgid "IDS_IV_OPT_ANIMATED_PHOTO_ABB" +msgstr "動態相片" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" -msgstr "選擇的區域將套用至桌布" +msgid "IDS_IV_OPT_ADD_WEATHER_TAG_ABB" +msgstr "新增天氣標籤" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" -msgstr "將列印選擇的區域" +msgid "IDS_IV_OPT_ADD_NAME_ABB" +msgstr "加入姓名" + +msgid "IDS_IV_OPT_ADD_CAPTION" +msgstr "新增圖說" + +msgid "IDS_IV_HEADER_SLIDESHOW_MUSIC" +msgstr "幻燈片音樂" + +msgid "IDS_IV_HEADER_SHARE_SOUND_N_SHOT_PICS_ABB" +msgstr "分享有聲拍攝相片" + +msgid "IDS_IV_HEADER_SET_AS_M_BACKGROUND" +msgstr "設定為" + +msgid "IDS_IV_HEADER_SEND_PICTURE_TO_ABB" +msgstr "傳送此圖片到" + +msgid "IDS_IV_HEADER_SELECT_CONTACT_TO_SHARE" +msgstr "選擇要分享的聯絡人" + +msgid "IDS_IV_HEADER_PLAY_SPEED" +msgstr "播放速度" + +msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB" +msgstr "鎖定螢幕桌布" + +msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT" +msgstr "瞭解關於傾斜" + +msgid "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB" +msgstr "主螢幕桌布" + +msgid "IDS_IV_HEADER_EDIT_WEATHER_TAG_ABB" +msgstr "編輯天氣標籤" + +msgid "IDS_IV_HEADER_EDIT_BURST_SHOT_ABB" +msgstr "編輯連續快拍" + +msgid "IDS_IV_HEADER_AVAILABLE_DEVICES_ABB" +msgstr "可用裝置" + +msgid "IDS_IV_HEADER_ALL_ALBUMS" +msgstr "所有相簿" + +msgid "IDS_IV_HEADER_ADD_TAG" +msgstr "加入標籤" + +msgid "IDS_IV_BUTTON_STOP" +msgstr "停止" + +msgid "IDS_IV_BUTTON_SCAN" +msgstr "掃描" msgid "IDS_IV_BODY_YOU_CAN_SHARE_YOUR_MEDIA_WITH_OTHER_DEVICES_USING_NEARBY_DEVICES" -msgstr "可使用附近的裝置與其他裝置分享您的媒體" +msgstr "可使用附近的裝置與其他裝置分享您的媒體。" -msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" -msgstr "選擇的區域將套用至聯絡人圖片" +msgid "IDS_IV_BODY_WITH_PS_AND_PD_OTHERS" +msgstr "與 %s 和其他 %d 個人" -msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" -msgstr "曝光時間" +msgid "IDS_IV_BODY_WITH_PS" +msgstr "與 %s" -msgid "IDS_CAM_BODY_APERTURE" -msgstr "光圈" +msgid "IDS_IV_BODY_WHITE_BALANCE" +msgstr "白平衡" -msgid "IDS_MEDIABR_HEADER_ORIENTATION" -msgstr "方向" +msgid "IDS_IV_BODY_WEATHER_ABB" +msgstr "氣象" -msgid "IDS_MEDIABR_HEADER_MANUFACTURER" -msgstr "製造商" +msgid "IDS_IV_BODY_WEATHER" +msgstr "氣象" -msgid "IDS_CAM_BODY_FOCAL_LENGTH" -msgstr "焦距" +msgid "IDS_IV_BODY_VENDOR" +msgstr "供應商" -msgid "IDS_CAM_HEADER_OSDOPTORIENTATION_SCENE" -msgstr "方向" +msgid "IDS_IV_BODY_VALIDITY" +msgstr "有效期" -msgid "IDS_MEDIABR_HEADER_MODEL" -msgstr "型號" +msgid "IDS_IV_BODY_UNLIMITED" +msgstr "無限制" -msgid "IDS_FT_OPT_ADD_NAME" -msgstr "加入姓名" +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "無法載入相片。" -msgid "IDS_IV_POP_SET_AS_CALLER_ID_M_PAST_TENSE" -msgstr "設定為來電顯示" +msgid "IDS_IV_BODY_TIMED_COUNT" +msgstr "計時數" + +msgid "IDS_IV_BODY_THE_RECORDED_WEATHER_INFORMATION_SHOULD_BE_EDITED_MANUALLY_MSG_CHN" +msgstr "記錄的天氣資訊應以手動編輯。您的裝置不支援自天氣 widget 接收記錄的天氣資訊。" + +msgid "IDS_IV_BODY_TAP_FACES_TO_VIEW_INFORMATION_ABOUT_THE_PEOPLE" +msgstr "標記臉部以檢視人物相關資訊。" + +msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN" +msgstr "輕觸並按住兩點,然後來回傾斜裝置以縮小或放大螢幕。" + +msgid "IDS_IV_BODY_SUNNY_DAY" +msgstr "晴天" + +msgid "IDS_IV_BODY_SNOWY_DAY" +msgstr "下雪天" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "分享經由" + +msgid "IDS_IV_BODY_SERVER_NAME" +msgstr "伺服器名稱" + +msgid "IDS_IV_BODY_SELECT_AN_AREA_TO_CROP_THE_PICTURE" +msgstr "選擇一個區域以裁切圖片。" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_PRINTED" +msgstr "將列印選擇的區域。" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_WALLPAPER" +msgstr "選擇的區域將套用至桌布。" + +msgid "IDS_IV_BODY_SELECTED_AREA_WILL_BE_APPLIED_TO_THE_CONTACT_PICTURE" +msgstr "選擇的區域將套用至聯絡人圖片。" + +msgid "IDS_IV_BODY_RIGHT_STATUS" +msgstr "版權狀態" + +msgid "IDS_IV_BODY_RESOLUTION" +msgstr "解析度" + +msgid "IDS_IV_BODY_REMOVE_FROM_FAVOURITES" +msgstr "從我的最愛中移除" + +msgid "IDS_IV_BODY_RAINY_DAY" +msgstr "雨天" + +msgid "IDS_IV_BODY_PRINT" +msgstr "列印" + +msgid "IDS_IV_BODY_POSSIBLE" +msgstr "可能" + +msgid "IDS_IV_BODY_PEOPLE" +msgstr "聯絡人" + +msgid "IDS_IV_BODY_N_A" +msgstr "不適用" + +msgid "IDS_IV_BODY_NO_TAG" +msgstr "無標籤" + +msgid "IDS_IV_BODY_NEW_TAG" +msgstr "新標籤" + +msgid "IDS_IV_BODY_NEARBY_DEVICES_T_ALLSHARE" +msgstr "附近裝置" + +msgid "IDS_IV_BODY_MY_DEVICE" +msgstr "我的裝置" + +msgid "IDS_IV_BODY_MODEL" +msgstr "型號" + +msgid "IDS_IV_BODY_ME" +msgstr "我" + +msgid "IDS_IV_BODY_MANUFACTURER" +msgstr "製造商" + +msgid "IDS_IV_BODY_LONGITUDE" +msgstr "經度" + +msgid "IDS_IV_BODY_LOCK_SCREEN" +msgstr "鎖定螢幕" + +msgid "IDS_IV_BODY_LOCATION_M_PATH" +msgstr "位置" + +msgid "IDS_IV_BODY_LOCATION_ABB2" +msgstr "位置" + +msgid "IDS_IV_BODY_LOCATIONS" +msgstr "位置" + +msgid "IDS_IV_BODY_LOCATION" +msgstr "位置" + +msgid "IDS_IV_BODY_LATITUDE" +msgstr "緯度" + +msgid "IDS_IV_BODY_IN_PS_M_LOCATION" +msgstr "在 %s" + +msgid "IDS_IV_BODY_INTERVAL" +msgstr "間隔" + +msgid "IDS_IV_BODY_INDIVIDUAL" +msgstr "個別" + +msgid "IDS_IV_BODY_IN" +msgstr "鎖小" + +msgid "IDS_IV_BODY_IMPOSSIBLE" +msgstr "不可能" + +msgid "IDS_IV_BODY_HOME_SCREEN" +msgstr "主螢幕" + +msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS" +msgstr "主螢幕與鎖定螢幕" + +msgid "IDS_IV_BODY_FORWARDING" +msgstr "正在轉寄" + +msgid "IDS_IV_BODY_FLASH" +msgstr "閃光燈" + +msgid "IDS_IV_BODY_FILE_NAME" +msgstr "檔案名稱" + +msgid "IDS_IV_BODY_FILE_LOCATION" +msgstr "檔案位置" + +msgid "IDS_IV_BODY_FILE_FORMAT" +msgstr "檔案格式" + +msgid "IDS_IV_BODY_EXPOSURE_TIME_ABB" +msgstr "曝光時間" + +msgid "IDS_IV_BODY_EXECUTE" +msgstr "執行" + +msgid "IDS_IV_BODY_ENABLE_GPS_TAGS_IN_CAMERA_TO_SEE_LOCATION_TAGS" +msgstr "在相機中啟用 GPS 標籤以查看位置標籤。" + +msgid "IDS_IV_BODY_ENABLE_AUTO_REFRESH_IN_THE_WEATHER_WIDGET_TO_SEE_WEATHER_TAGS" +msgstr "在天氣 Widget 啟用自動重新整理以查看天氣標籤。" + +msgid "IDS_IV_BODY_DURATION" +msgstr "持續時間" + +msgid "IDS_IV_BODY_DRM_INFO" +msgstr "DRM 資訊" + +msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN" +msgstr "不再顯示" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "不要再詢問" + +msgid "IDS_IV_BODY_DISPLAY" +msgstr "顯示" + +msgid "IDS_IV_BODY_DATE_CREATED" +msgstr "建立日期" + +msgid "IDS_IV_BODY_CROP" +msgstr "裁剪" + +msgid "IDS_IV_BODY_CREATE_TAG" +msgstr "建立標籤" + +msgid "IDS_IV_BODY_COUNT" +msgstr "計數" + +msgid "IDS_IV_BODY_CLOUDY_DAY" +msgstr "陰天" + +msgid "IDS_IV_BODY_CLEAR_NIGHT" +msgstr "晴朗夜晚" + +msgid "IDS_IV_BODY_CALLER_IMAGE" +msgstr "來電者圖像" + +msgid "IDS_IV_BODY_BASIC" +msgstr "基本" + +msgid "IDS_IV_BODY_AVAILABLE_USES" +msgstr "可供使用" + +msgid "IDS_IV_BODY_AUTO" +msgstr "自動" + +msgid "IDS_IV_BODY_APPLY_A_MATCHING_COLOUR_THEME_TO_APPLICATIONS" +msgstr "套用同色系的色彩主題至應用程式。" + +msgid "IDS_IV_BODY_APERTURE" +msgstr "光圈" + +msgid "IDS_IV_BODY_ANY" +msgstr "任何" + +msgid "IDS_IV_BODY_ADD_TO_FAVOURITES" +msgstr "加到我的最愛" + +msgid "IDS_IV_BODY_ACCUMULATED_TIME" +msgstr "累計時間" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "已達字元數上限。" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "失敗" + +msgid "IDS_CLOUD_BODY_DROPBOX_ABB" +msgstr "Dropbox" + +msgid "IDS_ST_BODY_MB" +msgstr "MB" + +msgid "IDS_ST_BODY_KB" +msgstr "KB" + +msgid "IDS_ST_BODY_GB" +msgstr "GB" + +msgid "IDS_ST_BODY_EDIT" +msgstr "編輯" + +msgid "IDS_ST_BODY_DATE" +msgstr "日期" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "帳號" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "下載" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "將圖片上傳至 Dropbox 後將顯示項目。" + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "正在下載..." + +msgid "IDS_IV_BODY_ADD_PICTURES" +msgstr "新增圖片" + +msgid "IDS_IV_BODY_AFTER_YOU_TAG_PICTURES_AS_YOUR_FAVOURITES_PICTURES_WILL_BE_SHOWN" +msgstr "在您將圖片標籤為最愛後,將顯示圖片。" + +msgid "IDS_IV_BODY_REMOVE_FACE_IDENTIFICATION_Q" +msgstr "移除臉部辨識嗎?" + +msgid "IDS_IV_OPT_ASSIGN_NAME" +msgstr "指定姓名" + +msgid "IDS_IV_OPT_CONFIRM_AS_PS" +msgstr "確認為 %s" + +msgid "IDS_IV_OPT_LAYOUT_M_PICTUERS" +msgstr "配置" + +msgid "IDS_IV_OPT_PD_PICTURES_ADDED" +msgstr "已加入 %d 張圖片" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "相簿將被取消。" + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "正在開始下載…" + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "記憶體不足。請刪除部分項目。" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "私密儲存空間" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "拖曳這裡" + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "輕觸以新增圖像。" + +msgid "IDS_VIDEO_POP_FILE_ALREADY_EXISTS" +msgstr "文件已存在。" + +msgid "IDS_VIDEO_POP_THIS_ITEM_WILL_BE_DELETED" +msgstr "此項目將被刪除。" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_FACEBOOK_ITEMS_WILL_BE_SHOWN" +msgstr "將圖片上傳至 Facebook 後將顯示項目。" + +msgid "IDS_MUSIC_POP_INVALID_CHARACTER" +msgstr "字元無效。" + +msgid "IDS_MEDIABR_OPT_MANUAL" +msgstr "手動模式" + +msgid "IDS_ST_BODY_ERROR_VZW" +msgstr "Error" + +msgid "IDS_ST_BUTTON2_PROCESSING_ING" +msgstr "處理中…" + +msgid "IDS_ST_BODY_OK" +msgstr "確認" + +msgid "IDS_ST_SK_RENAME" +msgstr "重新命名" + +msgid "IDS_COM_BODY_NONE" +msgstr "無" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "已選擇 %d" + +msgid "IDS_VIDEO_SBODY_DEVICE_STORAGE" +msgstr "裝置儲存空間" + +msgid "IDS_VIDEO_SBODY_SD_CARD" +msgstr "SD 卡" + +msgid "IDS_ST_BODY_SPEED" +msgstr "速度" + +msgid "IDS_VDOE_BODY_BACKGROUND_MUSIC" +msgstr "背景音樂" + +msgid "IDS_IV_OPT_1_SEC_ABB" +msgstr "1 秒" + +msgid "IDS_IV_OPT_3_SECS_ABB" +msgstr "3 秒" + +msgid "IDS_IV_OPT_5_SECS_ABB" +msgstr "5 秒" + +msgid "IDS_IV_BODY_STORAGE_LOCATION_ABB2" +msgstr "儲存裝置位置" + +msgid "IDS_IV_BODY_FILE_SIZE" +msgstr "檔案大小" + +msgid "IDS_IV_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "將刪除 1 個相簿。" + +msgid "IDS_IV_OPT_NOSTALGIA_M_EFFECT" +msgstr "懷舊" + +msgid "IDS_IV_OPT_BLUR_M_EFFECT" +msgstr "模糊" + +msgid "IDS_IV_OPT_SOFT_GLOW_M_EFFECT" +msgstr "柔光" + +msgid "IDS_IV_HEADER_SAVE_CHANGES_ABB2" +msgstr "儲存變更" + +msgid "IDS_IV_POP_SAVE_YOUR_CHANGES_OR_DISCARD_THEM_Q" +msgstr "儲存您的變更或要捨棄?" + +msgid "IDS_IV_BUTTON_DISCARD_ABB2" +msgstr "放棄" + +msgid "IDS_IV_BUTTON_SAVE" +msgstr "儲存" + +msgid "IDS_IV_OPT_VINTAGE_M_EFFECT" +msgstr "仿舊" + +msgid "IDS_IV_OPT_SUNSHINE_M_EFFECT" +msgstr "陽光" + +msgid "IDS_IV_OPT_OLD_PHOTO_M_EFFECT" +msgstr "老相片" + +msgid "IDS_IV_OPT_RETRO_M_EFFECT" +msgstr "復古風格" + +msgid "IDS_IV_OPT_GREYSCALE_M_EFFECT" +msgstr "灰階" + +msgid "IDS_IV_OPT_SEPIA_M_EFFECT" +msgstr "復古" + +msgid "IDS_IV_OPT_FADED_COLOURS_M_EFFECT" +msgstr "褪色" + +msgid "IDS_IV_OPT_DOWNLIGHT_M_EFFECT" +msgstr "筒燈" + +msgid "IDS_IV_OPT_YELLOW_GLOW_M_EFFECT" +msgstr "黃光暈" + +msgid "IDS_IV_OPT_SHARPEN_M_EFFECT" +msgstr "銳利" + +msgid "IDS_IV_OPT_SKETCH_M_EFFECT" +msgstr "素描" + +msgid "IDS_IV_OPT_INVERTED_COLOURS_M_EFFECT" +msgstr "負片" + +msgid "IDS_IV_OPT_OIL_PAINT_M_EFFECT" +msgstr "油畫" + +msgid "IDS_IV_OPT_POSTERISE_M_EFFECT" +msgstr "海報效果" + +msgid "IDS_IV_OPT_CARTOON_M_EFFECT" +msgstr "卡漫" + +msgid "IDS_IV_OPT_POP_ART_M_EFFECT" +msgstr "普普藝術" + +msgid "IDS_IV_OPT_MAGIC_PEN_M_EFFECT" +msgstr "神奇畫筆" + +msgid "IDS_IM_POP_ADD_TO_BLOCK_LIST_COMPLETE" +msgstr "已新增到封鎖清單" + +msgid "IDS_IMGE_BODY_ROTATE" +msgstr "旋轉" + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_IN_YOUR_DEVICE_STORAGE_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "裝置儲存空間中的空間不足。前往設定 > 電力與儲存空間 > 儲存空間來刪除部分檔案,然後重試。" + +msgid "IDS_IV_HEADER_SLIDE_INTERVAL_ABB" +msgstr "幻燈片時間間隔" + +msgid "IDS_IV_MBODY_SLIDE_INTERVAL_ABB" +msgstr "幻燈片時間間隔" + +msgid "IDS_IV_OPT_CONTACT_PICTURE_ABB" +msgstr "聯絡人圖片" + +msgid "IDS_VIDEO_OPT_NONE" +msgstr "無" + +msgid "IDS_IV_OPT_EDIT" +msgstr "編輯" + +msgid "IDS_IV_OPT_RENAME" +msgstr "重新命名" + +msgid "IDS_IV_OPT_SET_AS" +msgstr "設為" + +msgid "IDS_IV_OPT_DOWNLOAD" +msgstr "下載" + +msgid "IDS_IV_HEADER_RENAME" +msgstr "重新命名" + +msgid "IDS_IV_BUTTON_RENAME_ABB" +msgstr "重新命名" + +msgid "IDS_IV_BUTTON_RENAME_ABB2" +msgstr "重新命名" + +msgid "IDS_IV_POP_THERE_IS_ALREADY_A_FILE_WITH_THIS_NAME_IN_THE_DESTINATION_FOLDER" +msgstr "目的地資料夾中已有相同名稱的檔案。" + +msgid "IDS_IV_BUTTON_REPLACE_ABB" +msgstr "取代" + +msgid "IDS_IV_HEADER_SET_AS" +msgstr "設定為" + +msgid "IDS_IV_OPT_HOME_SCREEN_WALLPAPER_ABB2" +msgstr "主螢幕桌布" + +msgid "IDS_IV_OPT_LOCK_SCREEN_WALLPAPER_ABB2" +msgstr "鎖定螢幕桌面" + +msgid "IDS_IV_OPT_HOME_N_LOCK_SCREEN_WALLPAPERS_ABB" +msgstr "主螢幕與鎖定畫面桌布" + +msgid "IDS_IV_HEADER_DETAILS" +msgstr "詳細資料" + +msgid "IDS_IV_BODY_DATE" +msgstr "日期" + +msgid "IDS_IV_HEADER_UNABLE_TO_SAVE_IMAGE_ABB" +msgstr "無法儲存圖像" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_IN_YOUR_DEVICE_STORAGE" +msgstr "裝置儲存中的空間不足 (%d MB)。" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_ON_YOUR_SD_CARD" +msgstr "SD 卡中的空間不足 (%d MB)。" + +msgid "IDS_IV_POP_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "請刪除部分檔案並重試。" + +msgid "IDS_IV_HEADER_SAVE_IMAGE" +msgstr "儲存圖像" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_IN_YOUR_DEVICE_STORAGE_THIS_ITEM_WILL_BE_SAVED_ON_YOUR_SD_CARD" +msgstr "裝置儲存中的空間不足 (剩餘 %d MB)。此項目將儲存至您的 SD 卡。" + +msgid "IDS_IV_POP_THERE_IS_NOT_ENOUGH_SPACE_HPD_MB_REMAINING_ON_THE_SD_CARD_THIS_ITEM_WILL_BE_SAVED_IN_YOUR_DEVICE_STORAGE" +msgstr "SD 卡中的空間不足 (剩餘 %d MB)。此項目將儲存至您的裝置儲存空間。" + +msgid "IDS_IV_POP_THIS_IMAGE_WILL_BE_DELETED" +msgstr "這圖像將被刪除。" + +msgid "IDS_IV_BUTTON_STOP_ABB4" +msgstr "停止" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "刪除" + +msgid "IDS_COM_BODY_ERROR_T_MAINMENU_STATE_ABB" +msgstr "錯誤" + +msgid "IDS_GALLERY_HEADER_SELECT_AREA_ABB" +msgstr "選擇區域" + +msgid "IDS_GALLERY_BUTTON_DONE" +msgstr "完成" + +msgid "IDS_GALLERY_BODY_FAILED_TO_LOAD_THIS_ITEM" +msgstr "無法載入此項目。" + +msgid "IDS_CAM_OPT_NEGATIVE" +msgstr "負片" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "完成" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "取消" + +msgid "IDS_IMGE_OPT_EFFECTS_NEGATIVE" +msgstr "負片" + +msgid "IDS_HEALTH_TPOP_UNABLE_TO_OPEN_GALLERY" +msgstr "無法開啟媒體瀏覽器。" + +msgid "IDS_360V_TPOP_LOADING_ING" +msgstr "正在載入..." + +msgid "IDS_IV_HEADER_LOADING_ING" +msgstr "正在載入..." + +msgid "IDS_IV_POP_LOADING_FAILED" +msgstr "載入失敗" + +msgid "IDS_IV_POP_LOADING_IMAGE_ING" +msgstr "正在載入影像..." + +msgid "IDS_IV_SK_DISCARD" +msgstr "捨棄" + +msgid "IDS_BR_HEADER_UNABLE_TO_DOWNLOAD_ABB" +msgstr "無法下載" + +msgid "IDS_MF_POP_MOBILE_DATA_IS_TURNED_OFF_CONNECT_TO_A_WI_FI_NETWORK_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "行動數據已關閉。連接至 Wi-Fi 網路或開啟行動數據並重試。" + +msgid "IDS_IV_BODY_DO_NOT_SEND" +msgstr "不傳送" + +msgid "IDS_COM_BODY_1_SECOND" +msgstr "1 秒" + +msgid "IDS_BODY_PD_SECONDS" +msgstr "%d 秒" + +msgid "IDS_IV_BODY_EFFECT" +msgstr "效果" + +msgid "IDS_IMGE_HEARDER_EFFECTS" +msgstr "效果" + +msgid "IDS_DFRAME_BODY_FLOW_M_EFFECT" +msgstr "快轉" + +msgid "IDS_IV_OPT_FADE_M_EFFECT" +msgstr "淡化" -msgid "IDS_MF_BODY_NO_FACE_DETECTED" -msgstr "未偵測到臉部" +msgid "IDS_COM_OPT_VIEW_ZOOM_IN" +msgstr "放大" diff --git a/res/xml/ug-image-viewer-efl_ChangeableColorInfo.xml b/res/xml/ug-image-viewer-efl_ChangeableColorInfo.xml new file mode 100755 index 0000000..55ec432 --- /dev/null +++ b/res/xml/ug-image-viewer-efl_ChangeableColorInfo.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/res/xml/ug-image-viewer-efl_ChangeableFontInfo.xml b/res/xml/ug-image-viewer-efl_ChangeableFontInfo.xml new file mode 100755 index 0000000..6762e14 --- /dev/null +++ b/res/xml/ug-image-viewer-efl_ChangeableFontInfo.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/slideshow/CMakeLists.txt b/slideshow/CMakeLists.txt index 2704038..b471d05 100755 --- a/slideshow/CMakeLists.txt +++ b/slideshow/CMakeLists.txt @@ -7,12 +7,7 @@ SET(VERSION 0.1.0) SET(SRCS # Effect files src/control/ivug-slideshow.cpp - - src/effect/ivug-xcapture.c - src/effect/ivug-blind.c - src/effect/ivug-iris.c src/effect/ivug-fade.c - src/effect/ivug-dissolve.c src/effect/ivug-effect.c src/effect/ivug-slide.c src/effect/ivug-anim.c @@ -36,17 +31,18 @@ pkg_check_modules(${PROJECT_NAME}_pkgs REQUIRED elementary ecore ecore-evas + efl-extension edje eina evas dlog ecore-x xext - xcomposite - vconf ui-gadget-1 - capi-system-power capi-appfw-application + capi-media-player + capi-media-sound-manager + capi-system-device ) FOREACH(flag ${${PROJECT_NAME}_pkgs_CFLAGS}) @@ -55,7 +51,7 @@ ENDFOREACH(flag) ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"") ADD_DEFINITIONS("-DLOG_LVL=DBG_MSG_LVL_HIGH") -ADD_DEFINITIONS("-DLOG_CAT=\"IV-WIDGET\"") +ADD_DEFINITIONS("-DLOG_CAT=\"IV-SLIDESHOW\"") #ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS}) ADD_LIBRARY(${PROJECT_NAME} STATIC ${SRCS}) diff --git a/slideshow/include/ivug-slideshow.h b/slideshow/include/ivug-slideshow.h index eb15f24..845da76 100755 --- a/slideshow/include/ivug-slideshow.h +++ b/slideshow/include/ivug-slideshow.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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. +* +*/ #pragma once @@ -25,6 +26,7 @@ if bSlideFirst == EINA_FALSE, wait interval time and then slide */ #include +#include "ivug-define.h" #include "ivug-medialist.h" #include "ivug-config.h" @@ -36,6 +38,10 @@ typedef enum { SLIDE_SHOW_PAUSE, } slideshow_state_t; +/* +Signals + "slideshow,finished" with slideshow_state_t +*/ typedef struct _SlideShow SlideShow; @@ -52,6 +58,9 @@ ivug_ss_start(SlideShow *pSlideShow , Media_Item *current, Media_List *list, Ein bool ivug_ss_resume(SlideShow *pSlideShow); +Evas_Object * +ivug_list_popoup_show(const char *title, void *data); + bool ivug_ss_pause(SlideShow *pSlideShow); @@ -70,16 +79,10 @@ ivug_ss_item_get(SlideShow *pSlideShow); Evas_Object * ivug_ss_object_get(SlideShow *pSlideShow); -Media_Item * -ivug_ss_get_next_item(Media_List *mList, - Media_Item *header, - Media_Item *current, - slide_show_mode mode); - void ivug_ss_set_stop(SlideShow *pSlideShow); // Remove this!!! - +int _ivug_ss_get_sort(int *val); #ifdef __cplusplus } #endif diff --git a/slideshow/res/images/T01_Noise.png b/slideshow/res/images/T01_Noise.png old mode 100644 new mode 100755 diff --git a/slideshow/res/layout/icons/Image_viewer_popup_bg.#.png b/slideshow/res/layout/icons/Image_viewer_popup_bg.#.png new file mode 100644 index 0000000..28e6ec4 Binary files /dev/null and b/slideshow/res/layout/icons/Image_viewer_popup_bg.#.png differ diff --git a/slideshow/res/layout/icons/Image_viewer_popup_bg_stroke.#.png b/slideshow/res/layout/icons/Image_viewer_popup_bg_stroke.#.png new file mode 100644 index 0000000..9c2ac41 Binary files /dev/null and b/slideshow/res/layout/icons/Image_viewer_popup_bg_stroke.#.png differ diff --git a/slideshow/res/layout/icons/T01-1_album_video_play.png b/slideshow/res/layout/icons/T01-1_album_video_play.png new file mode 100755 index 0000000..3a63b67 Binary files /dev/null and b/slideshow/res/layout/icons/T01-1_album_video_play.png differ diff --git a/slideshow/res/layout/icons/image_viewer_ic_video.png b/slideshow/res/layout/icons/image_viewer_ic_video.png new file mode 100644 index 0000000..e568ddb Binary files /dev/null and b/slideshow/res/layout/icons/image_viewer_ic_video.png differ diff --git a/slideshow/res/layout/icons/image_viewer_ic_video_ef.png b/slideshow/res/layout/icons/image_viewer_ic_video_ef.png new file mode 100644 index 0000000..cec720b Binary files /dev/null and b/slideshow/res/layout/icons/image_viewer_ic_video_ef.png differ diff --git a/slideshow/res/layout/icons/viwer_video_play.png b/slideshow/res/layout/icons/viwer_video_play.png new file mode 100644 index 0000000..bb808cd Binary files /dev/null and b/slideshow/res/layout/icons/viwer_video_play.png differ diff --git a/slideshow/res/layout/icons/viwer_video_play_press.png b/slideshow/res/layout/icons/viwer_video_play_press.png new file mode 100644 index 0000000..fb70f88 Binary files /dev/null and b/slideshow/res/layout/icons/viwer_video_play_press.png differ diff --git a/slideshow/res/layout/ivug-ss-ly.edc b/slideshow/res/layout/ivug-ss-ly.edc index 7aae007..f34f57a 100755 --- a/slideshow/res/layout/ivug-ss-ly.edc +++ b/slideshow/res/layout/ivug-ss-ly.edc @@ -1,24 +1,510 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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. +* +*/ collections { + base_scale: 2.4; + + group { + name: "slideshow_overlay"; + images { + image: "viwer_video_play.png" COMP; + image: "viwer_video_play_press.png" COMP; + image: "Image_viewer_popup_bg.#.png" COMP; + image: "Image_viewer_popup_bg_stroke.#.png" COMP; + } + + plugins { + plugin { + name: "touch_sound"; + source: "feedback"; + param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP"; + } + } + + script { + public show = 0; + } + + parts { + part { + name: "bg"; + type: SPACER; + scale: 1; + mouse_events: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0;} + } + } + part { + name: "elm.padding.left"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + rel1 {relative: 0.0 0.0; to: "bg";} + rel2 {relative: 0.0 1.0; to: "bg";} + align: 0 0.5; + min: 15 0; + fixed: 1 0; + } + } + part { + name: "elm.padding.right"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + rel1 {relative: 1.0 0.0; to: "bg";} + rel2 {relative: 1.0 1.0; to: "bg";} + align: 1 0.5; + min: 15 0; + fixed: 1 0; + } + } + part { + name: "elm.padding.top"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + rel1 {relative: 0.0 0.0; to: "bg";} + rel2 {relative: 1.0 0.0; to: "bg";} + align: 0 0; + min: 0 18; + fixed: 0 1; + } + } + part { + name: "elm.padding.bottom"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + rel1 {relative: 0.0 1.0; to: "bg";} + rel2 {relative: 1.0 1.0; to: "bg";} + align: 0 1; + min: 0 16; + fixed: 0 1; + } + } + /*play icon*/ + part { + name: "play.icon"; + type: IMAGE; + mouse_events: 1; + repeat_events: 0; + scale: 1; + description { + state: "default" 0.0; + align: 0.5 0.5; + visible: 1; + fixed: 1 1; + max: 140 140; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 1.0; } + image.normal: "viwer_video_play.png"; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + image.normal: "viwer_video_play.png"; + } + description { + state: "pressed" 0.0; + inherit: "default" 0.0; + visible: 1; + image.normal: "viwer_video_play_press.png"; + } + } + part { + name: "bottom_icon_area"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + min: 0 194; + fixed: 1 1; + rel1 {relative: 0.0 0.793; to: "bg";} + rel2 {relative: 1.0 1.0; to: "elm.padding.bottom";} + color: 0 0 0 0; + } + } + /*stop icon*/ + part { + name: "stop.icon.bg"; + type: IMAGE; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; + align: 0.5 1; + visible: 1; + min: 0 78; + max: 360 78; + fixed: 1 1; + rel1 { relative: 0.25 0; to: "bottom_icon_area"; } + rel2 { relative: 0.75 0.313; to: "bottom_icon_area"; } + image.normal: "Image_viewer_popup_bg.#.png"; + color: 255 255 255 128; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + color: 255 255 255 128; + } + description { + state: "pressed" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 191; + } + } + part { + name: "stop.icon.bg.storke"; + type: IMAGE; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; + align: 0.0 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; to: "stop.icon.bg";} + rel2 { relative: 1.0 1.0; to: "stop.icon.bg";} + image.normal: "Image_viewer_popup_bg_stroke.#.png"; + color: 255 255 255 128; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { + name: "stop.icon.text"; + type: TEXT; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; + align: 0.5 0.5; + rel1 { relative: 0.0 0.0; to: "stop.icon.bg"; } + rel2 { relative: 1.0 1.0; to: "stop.icon.bg"; } + color: 255 255 255 255; + visible: 1; + text { + font: "Tizen:style=Regular"; + size: 30; + align: 0.5 0.5; + max: 1 1; + } + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + color: 255 255 255 255; + } + description { + state: "pressed" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 77; + } + } + part { + name: "stop.icon.click"; + type: RECT; + mouse_events: 1; + description { + state: "default" 0.0; + align: 0.0 0.0; + rel1 { relative: 0.0 0.0; to: "stop.icon.bg"; } + rel2 { relative: 1.0 1.0; to: "stop.icon.bg"; } + color: 0 0 0 0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + /*effect icon*/ + part { + name: "effect.icon.bg"; + type: IMAGE; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; + align: 0.5 1; + visible: 1; + min: 0 78; + max: 306 78; + fixed: 1 1; + rel1 { relative: 0.050 0.486; to: "bottom_icon_area"; } + rel2 { relative: 0.475 0.799; to: "bottom_icon_area"; } + image.normal: "Image_viewer_popup_bg.#.png"; + color: 255 255 255 128; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + color: 255 255 255 128; + } + description { + state: "pressed" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 191; + } + } + part { + name: "effect.icon.bg.storke"; + type: IMAGE; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; + align: 0.0 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; to: "effect.icon.bg";} + rel2 { relative: 1.0 1.0; to: "effect.icon.bg";} + image.normal: "Image_viewer_popup_bg_stroke.#.png"; + color: 255 255 255 128; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { + name: "effect.icon.text"; + type: TEXT; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; + align: 0.5 0.5; + rel1 { relative: 0.0 0.0; to: "effect.icon.bg"; } + rel2 { relative: 1.0 1.0; to: "effect.icon.bg"; } + color: 255 255 255 255; + visible: 1; + text { + font: "Tizen:style=Regular"; + size: 30; + align: 0.5 0.5; + max: 1 1; + } + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + color: 255 255 255 255; + } + description { + state: "pressed" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 77; + } + } + part { + name: "effect.icon.click"; + type: RECT; + mouse_events: 1; + description { + state: "default" 0.0; + align: 0.0 0.0; + rel1 { relative: 0.0 0.0; to: "effect.icon.bg"; } + rel2 { relative: 1.0 1.0; to: "effect.icon.bg"; } + color: 0 0 0 0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + /*slide interval setting icon*/ + part { + name: "slide_interval_setting.icon.bg"; + type: IMAGE; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; + align: 0.5 1; + visible: 1; + min: 0 78; + max: 306 78; + fixed: 1 1; + rel1 { relative: 0.525 0.486; to: "bottom_icon_area"; } + rel2 { relative: 0.950 0.799; to: "bottom_icon_area"; } + image.normal: "Image_viewer_popup_bg.#.png"; + color: 255 255 255 128; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + color: 255 255 255 128; + } + description { + state: "pressed" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 191; + } + } + part { + name: "slide_interval_setting.icon.bg.storke"; + type: IMAGE; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; + align: 0.0 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; to: "slide_interval_setting.icon.bg";} + rel2 { relative: 1.0 1.0; to: "slide_interval_setting.icon.bg";} + image.normal: "Image_viewer_popup_bg_stroke.#.png"; + color: 255 255 255 128; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { + name: "slide_interval_setting.icon.text"; + type: TEXT; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; + align: 0.5 0.5; + rel1 { relative: 0.1 0.0; to: "slide_interval_setting.icon.bg"; } + rel2 { relative: 0.9 1.0; to: "slide_interval_setting.icon.bg"; } + color: 255 255 255 255; + visible: 1; + text { + font: "Tizen:style=Regular"; + size: 30; + align: 0.5 0.5; + max: 1 1; + } + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + color: 255 255 255 255; + } + description { + state: "pressed" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 77; + } + } + part { + name: "slide_interval_setting.icon.click"; + type: RECT; + mouse_events: 1; + description { + state: "default" 0.0; + align: 0.0 0.0; + rel1 { relative: 0.0 0.0; to: "slide_interval_setting.icon.bg"; } + rel2 { relative: 1.0 1.0; to: "slide_interval_setting.icon.bg"; } + color: 0 0 0 0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + } + programs { + program { + name: "play_icon_clicked"; + signal: "mouse,clicked,1"; + source: "play.icon"; + action: RUN_PLUGIN "touch_sound"; + } + program { + name: "stop_icon_clicked"; + signal: "mouse,clicked,1"; + source: "stop.icon.click"; + action: RUN_PLUGIN "touch_sound"; + } + program { + name: "effect_icon_clicked"; + signal: "mouse,clicked,1"; + source: "effect.icon.click"; + action: RUN_PLUGIN "touch_sound"; + } + program { + name: "slide_interval_setting_icon_clicked"; + signal: "mouse,clicked,1"; + source: "slide_interval_setting.icon.click"; + action: RUN_PLUGIN "touch_sound"; + } + program { + name: "hide_slideshow_pause"; + signal: "elm,state,hide"; + source: "*"; + script { + set_int(show, 0); + + set_state(PART:"play.icon", "hide", 0.0); + set_state(PART:"stop.icon.bg", "hide", 0.0); + set_state(PART:"stop.icon.bg.storke", "hide", 0.0); + set_state(PART:"stop.icon.text", "hide", 0.0); + set_state(PART:"stop.icon.click", "hide", 0.0); + set_state(PART:"slide_interval_setting.icon.bg", "hide", 0.0); + set_state(PART:"slide_interval_setting.icon.bg.storke", "hide", 0.0); + set_state(PART:"slide_interval_setting.icon.text", "hide", 0.0); + set_state(PART:"slide_interval_setting.icon.click", "hide", 0.0); + set_state(PART:"effect.icon.bg", "hide", 0.0); + set_state(PART:"effect.icon.bg.storke", "hide", 0.0); + set_state(PART:"effect.icon.text", "hide", 0.0); + set_state(PART:"effect.icon.click", "hide", 0.0); + } + } + } + } + group { name: "view.slideshow"; parts { - part { name: "bg"; + part { + name: "bg"; type: RECT; scale: 1; mouse_events: 1; @@ -32,114 +518,150 @@ collections { } } } - } -} - -collections { group { name: "slayout"; images { - image: "T01_btn_play.png" COMP; + image: "T01-1_album_video_play.png" COMP; + image: "image_viewer_ic_video.png" COMP; + image: "image_viewer_ic_video_ef.png" COMP; } parts { - /* add bg to unsend events to slider layer */ - part { name: "bg"; - type: RECT; + /* add bg to unsend events to slider layer */ + part { + name: "content"; + type: SWALLOW; scale: 1; mouse_events: 1; - //repeat_events: 1; + repeat_events: 1; description { state: "default" 0.0; visible: 1; - color: 0 0 0 255; rel1 { relative: 0.0 0.0;} rel2 { relative: 1.0 1.0;} } } - part { name: "content"; - type: SWALLOW; + part { + name: "bg"; + type: RECT; scale: 1; mouse_events: 1; - repeat_events: 1; description { state: "default" 0.0; visible: 1; + color: 0 0 0 0; rel1 { relative: 0.0 0.0;} rel2 { relative: 1.0 1.0;} } } - part { name: "thumbnail"; - type: SWALLOW; + part { + name: "elm.padding.top"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + rel1 {relative: 0.0 0.0; to: "bg";} + rel2 {relative: 1.0 0.0; to: "bg";} + align: 0 0; + min: 0 13; + fixed: 0 1; + } + } + part { + name: "elm.padding.right"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + rel1 {relative: 1.0 0.0; to: "bg";} + rel2 {relative: 1.0 1.0; to: "bg";} + align: 1 0; + min: 10 0; + fixed: 1 0; + } + } + part { + name: "video.icon"; + type: IMAGE; mouse_events: 1; scale: 1; description { - state: "default" 0.0; - align: 0.5 0.5; - visible: 0; - rel1 { relative: 0.0 0.0; } - rel2 { relative: 1.0 1.0; } - } - + state: "default" 0.0; + align: 1.0 0.0; + visible: 1; + fixed: 1 1; + min: 80 80; + max: 80 80; + rel1 { relative: 0.0 1.0; to_x: "elm.padding.right"; to_y: "elm.padding.top";} + rel2 { relative: 0.0 1.0; to_x: "elm.padding.right"; to_y: "elm.padding.top";} + image.normal: "image_viewer_ic_video.png"; + color: 255 255 255 255; + } description { - state: "show" 0.0; + state: "hide" 0.0; inherit: "default" 0.0; - visible: 1; - } - } - part { name: "play.icon"; + visible: 0; + } + } + part { + name: "video.icon.ef"; type: IMAGE; mouse_events: 1; scale: 1; description { state: "default" 0.0; - align: 0.5 0.5; - visible: 0; + align: 1.0 0.0; + visible: 1; fixed: 1 1; - max: 72 72; - rel1 { relative: 0.0 0.0; } - rel2 { relative: 1.0 1.0; } - image.normal: "T01_btn_play.png"; + min: 80 80; + max: 80 80; + rel1 { relative: 0.0 1.0; to_x: "elm.padding.right"; to_y: "elm.padding.top";} + rel2 { relative: 0.0 1.0; to_x: "elm.padding.right"; to_y: "elm.padding.top";} + image.normal: "image_viewer_ic_video_ef.png"; } - description { - state: "show" 0.0; + state: "hide" 0.0; inherit: "default" 0.0; + visible: 0; + } + } + part { + name: "elm.swallow.overlay"; + type: SWALLOW; + scale: 1; + mouse_events: 1; + repeat_events: 0; + description { + state: "default" 0.0; visible: 1; } } } programs { program { - name: "show_thumbnail"; - signal: "elm,state,show_thumbnail"; - source: "slideshow"; - action: STATE_SET "show" 0.0; - target: "thumbnail"; + name: "mouse_up"; + signal: "mouse,up,1"; + source: "elm.rect.event"; + action: SIGNAL_EMIT "mouse,up,1" "elm"; } - program { - name: "hide_thumbnail"; - signal: "elm,state,hide_thumbnail"; - source: "slideshow"; - action: STATE_SET "default" 0.0; - target: "thumbnail"; - } - program { - name: "show_icon"; - signal: "elm,state,show_play_icon"; - source: "slideshow"; - action: STATE_SET "show" 0.0; - target: "play.icon"; + name: "hide_video_icon"; + signal: "elm,state,hide"; + source: "*"; + script { + set_state(PART:"video.icon", "hide", 0.0); + set_state(PART:"video.icon.ef", "hide", 0.0); + } } - program { - name: "hide_icon"; - signal: "elm,state,hide_play_icon"; - source: "slideshow"; - action: STATE_SET "default" 0.0; - target: "play.icon"; + name: "show_video_icon"; + signal: "elm,state,show"; + source: "*"; + script { + set_state(PART:"video.icon", "default", 0.0); + set_state(PART:"video.icon.ef", "default", 0.0); + } } } } diff --git a/slideshow/src/control/ivug-slideshow.cpp b/slideshow/src/control/ivug-slideshow.cpp index 7b48718..62ff985 100755 --- a/slideshow/src/control/ivug-slideshow.cpp +++ b/slideshow/src/control/ivug-slideshow.cpp @@ -1,21 +1,26 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 "../../../res/include/ivug-string.h" #include "ivug-anim.h" #include "ivug-slideshow.h" #include "ivug-slideshow-priv.h" @@ -27,17 +32,21 @@ #include "ivug-datatypes.h" #include "ivug-uuid.h" #include "ivug-util.h" +#include "../../main/src/control/ivug-context.h" #include "ivug-image.h" +#include "ivug-player.h" + #include +#include #include #include "statistics.h" #include "EFLUtil.h" -#undef USE_IVUG_IMAGE +#define DEFAULT_THUMBNAIL "/opt/usr/share/media/.thumb/thumb_default.png" #undef LOG_LVL #define LOG_LVL DBG_MSG_LVL_MED @@ -45,6 +54,18 @@ #undef LOG_CAT #define LOG_CAT "IV-SLIDESHOW" +/* + Basic functionality is implemented. + but codes have many bugs. plz check this. + + TODO: + Resize is not handled. + Mouse routine is not handled. + Decoding faied is not processed. + + Not test except slide effect. + +*/ #define EDJ_PATH PREFIX"/res/edje/"PACKAGE #define IVUG_SS_LY_EDJ_PATH EDJ_PATH"/ivug-ss-ly.edj" @@ -54,6 +75,11 @@ #define _EDJ(o) elm_layout_edje_get(o) +struct st_temp { + int index; + SlideShow *pSlideshow; +}; + void ivug_ss_get_screen_size(int *width, int *height) { int rotation = elm_win_rotation_get((Evas_Object *)ug_get_window()); @@ -73,12 +99,18 @@ void ivug_ss_get_screen_size(int *width, int *height) } } +int _ivug_ss_get_sort(int *val) +{ + return 0; +} + Media_Item *ivug_ss_get_next_item(Media_List *mList, Media_Item *header, Media_Item *current, slide_show_mode mode) { Media_Item *item = NULL; + int sort_value = 0; MSG_HIGH("Get Next Item : Header=0x%08x Current=0x%08x", header, current); @@ -87,20 +119,43 @@ Media_Item *ivug_ss_get_next_item(Media_List *mList, switch(mode) { case SLIDE_SHOW_MODE_REPEAT: - item = ivug_medialist_get_next(mList, current); - if ( item == NULL ) + _ivug_ss_get_sort(&sort_value); + if(sort_value == 1) + { + item = ivug_medialist_get_prev(mList, current); + } + else + { + item = ivug_medialist_get_next(mList, current); + } + if (item == NULL) { - item = ivug_medialist_get_first(mList); + if(sort_value == 1) + { + item = ivug_medialist_get_last(mList); + } + else + { + item = ivug_medialist_get_first(mList); + } } break; case SLIDE_SHOW_MODE_NORMAL: - item = ivug_medialist_get_next(mList, current); + _ivug_ss_get_sort(&sort_value); + if(sort_value == 1) + { + item = ivug_medialist_get_prev(mList, current); + } + else + { + item = ivug_medialist_get_next(mList, current); + } break; case SLIDE_SHOW_MODE_SHUFFLE_REPEAT: item = ivug_medialist_get_shuffle_item(mList, current); - if ( item == NULL ) + if (item == NULL) { MSG_ERROR("Never touch here"); } @@ -108,7 +163,7 @@ Media_Item *ivug_ss_get_next_item(Media_List *mList, case SLIDE_SHOW_MODE_SHUFFLE: item = ivug_medialist_get_shuffle_item(mList, current); - if ( item == header ) + if (item == header ) { MSG_ERROR("Reach end"); return NULL; @@ -167,19 +222,6 @@ _hidden(void *data, Evas *evas, Evas_Object *obj, void *event_info) MSG_HIGH("SlideShow is Hidden"); } - -static void -_shown1(void *data, Evas *evas, Evas_Object *obj, void *event_info) -{ - MSG_HIGH("%s is Shown", evas_object_name_get(obj)); -} - -static void -_hidden1(void *data, Evas *evas, Evas_Object *obj, void *event_info) -{ - MSG_HIGH("%s is Hidden", evas_object_name_get(obj)); -} - static bool _ivug_ss_set_content(Slide_Layout *pSlide, Media_Item *item) { Media_Data *mdata; @@ -187,8 +229,7 @@ static bool _ivug_ss_set_content(Slide_Layout *pSlide, Media_Item *item) pSlide->mitem = item; - if(pSlide->mitem == NULL) - { + if (pSlide->mitem == NULL) { MSG_ERROR("Mitem is NULL"); return false; } @@ -196,67 +237,55 @@ static bool _ivug_ss_set_content(Slide_Layout *pSlide, Media_Item *item) mdata = ivug_medialist_get_data(item); IV_ASSERT(mdata != NULL); - MSG_HIGH("Start Loading : %s", mdata->filepath); - - if(mdata->slide_type == SLIDE_TYPE_VIDEO) - { - /* Display play icon */ - edje_object_signal_emit(elm_layout_edje_get(pSlide->layout), - "elm,state,show_play_icon", - "slideshow"); + MSG_SEC("Start Loading : %s", mdata->filepath); - -#ifdef USE_IVUG_IMAGE - ret = ivug_image_file_set(pSlide->photocam, mdata->thumbnail_path, NULL); -#else + if (mdata->slide_type == SLIDE_TYPE_VIDEO) { ret = elm_photocam_file_set(pSlide->photocam, mdata->thumbnail_path); -#endif + if(EVAS_LOAD_ERROR_NONE != ret) { MSG_HIGH("elm_photocam_file_set failed"); return false; } - } - else - { - /* Hide play icon */ - edje_object_signal_emit(elm_layout_edje_get(pSlide->layout), - "elm,state,hide_play_icon", - "slideshow"); -#ifdef USE_IVUG_IMAGE - ret = ivug_image_file_set(pSlide->photocam, mdata->filepath, NULL); -#else + } else { ret = elm_photocam_file_set(pSlide->photocam, mdata->filepath); -#endif - if(EVAS_LOAD_ERROR_NONE != ret) { - MSG_HIGH("elm_photocam_file_set failed"); + + if (EVAS_LOAD_ERROR_NONE != ret) { + MSG_HIGH("elm_photocam_file_set failed. Loading default Thumbnail"); + elm_photocam_file_set(pSlide->photocam, DEFAULT_THUMBNAIL); return false; } - if (elm_image_file_set(pSlide->thumbnail, mdata->thumbnail_path, NULL) == EINA_FALSE) - { + if (elm_image_file_set(pSlide->thumbnail, mdata->thumbnail_path, NULL) + == EINA_FALSE) { MSG_ERROR("Cannot load thumbnail : %s", mdata->thumbnail_path); - } - else - { - edje_object_signal_emit(_EDJ(pSlide->layout), "elm,state,show_thumbnail", "slideshow"); + } else { + edje_object_signal_emit(_EDJ(pSlide->layout), + "elm,state,show_thumbnail", "slideshow"); } } - MSG_HIGH("Load : %s", mdata->filepath); - elm_photocam_zoom_mode_set(pSlide->photocam, ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT); + MSG_SEC("Load : %s", mdata->filepath); + elm_photocam_zoom_mode_set(pSlide->photocam, + ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT); elm_photocam_paused_set(pSlide->photocam, true); evas_object_size_hint_weight_set(pSlide->photocam, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - /* use for test - int w_p = 0; - int h_p = 0; - float ff = elm_photocam_zoom_get(pSlide->photocam); - char * cc = (char *)elm_photocam_file_get(pSlide->photocam); - elm_photocam_image_size_get(pSlide->photocam, &w_p, &h_p); - MSG_IVUG_HIGH("photocam_zoom:%f, %s ,%d,%d", ff,cc, w_p, h_p); - */ + return true; } +static void _ivug_ss_video_icon(Evas_Object *layout, Media_Item *mitem) +{ + Media_Data *mdata = ivug_medialist_get_data(mitem); + + if (mdata->slide_type == SLIDE_TYPE_IMAGE) { + elm_object_signal_emit(layout, "elm,state,hide", ""); + } else { + elm_object_signal_emit(layout, "elm,state,show", ""); + } + + return; +} + static void _ivug_ss_update_pos(SlideShow *pSlideShow, Evas_Coord x, Evas_Coord y) { @@ -400,6 +429,9 @@ static Eina_Bool _ivug_ss_on_slide_interval(void *data) Slide_Layout *sLyCurrent = &pSlideShow->sLayout[pSlideShow->sCurrent]; Slide_Layout *sLyNext = &pSlideShow->sLayout[(pSlideShow->sCurrent + 1) % 2]; + Media_Item *mitem = sLyCurrent->mitem; + _ivug_ss_video_icon(pSlideShow->sLayout[pSlideShow->sCurrent].layout, mitem); + /* Next item is NULL */ if(sLyNext->mitem == NULL) { @@ -412,6 +444,9 @@ static Eina_Bool _ivug_ss_on_slide_interval(void *data) return ECORE_CALLBACK_CANCEL; } + mitem = sLyNext->mitem; + _ivug_ss_video_icon(pSlideShow->sLayout[(pSlideShow->sCurrent + 1) % 2].layout, mitem); + /* Slideshow Effect */ Effect_Engine *eng = ivug_effect_add(pSlideShow->effect_type); MSG_ASSERT(eng != NULL); @@ -432,6 +467,8 @@ static Eina_Bool _ivug_ss_on_slide_interval(void *data) // EFL::dump_obj(pSlideShow->obj, 0); + pSlideShow->cur_item = sLyNext->mitem; + ivug_effect_start(pSlideShow->effect_engine, _ivug_ss_effect_finished, pSlideShow); return ECORE_CALLBACK_RENEW; @@ -446,17 +483,10 @@ static Effect_Type _ivug_ss_get_trans_effect(ivug_effect_type type) { case IVUG_EFFECT_TYPE_SLIDE: return EFFECT_SLIDE; - case IVUG_EFFECT_TYPE_IRIS: - return EFFECT_IRIS; - case IVUG_EFFECT_TYPE_DISSOLVE: - return EFFECT_DISSOLVE; case IVUG_EFFECT_TYPE_DISSOLVE_FADE: return EFFECT_DISSOLVE_FADE; - case IVUG_EFFECT_TYPE_SPLIT: - return EFFECT_SPLIT; default: - return EFFECT_SLIDE; - //break; + break; } return EFFECT_NONE; } @@ -475,11 +505,6 @@ void _ivug_ss_on_mouse_down(void *data, Evas *e, ecore_timer_del(pSlideShow->click_timer); pSlideShow->click_timer = NULL; } - - if(pSlideShow->ss_timer) { - ecore_timer_del(pSlideShow->ss_timer); - pSlideShow->ss_timer = NULL; - } } void _ivug_ss_on_mouse_move(void *data, Evas *e, @@ -491,6 +516,7 @@ void _ivug_ss_on_mouse_move(void *data, Evas *e, static Eina_Bool _ivug_ss_clicked_timer_cb(void *data) { + MSG_HIGH("-------------_ivug_ss_clicked_timer_cb--------------"); SlideShow *pSlideShow = (SlideShow *)data; if (NULL == pSlideShow) { return ECORE_CALLBACK_CANCEL; @@ -498,19 +524,15 @@ static Eina_Bool _ivug_ss_clicked_timer_cb(void *data) pSlideShow->click_timer = NULL; - if(pSlideShow->state == SLIDE_SHOW_RUNNING) { - ivug_ss_stop(pSlideShow); - //EFL::dump_obj(pSlideShow->obj, 0); + if((pSlideShow->state == SLIDE_SHOW_RUNNING) && (pSlideShow->bPlayButton == false)) { + ivug_ss_pause(pSlideShow); return ECORE_CALLBACK_CANCEL; } - - MSG_HIGH("-------------_ivug_ss_clicked_timer_cb--------------"); - - pSlideShow->state = SLIDE_SHOW_INTERRUPTED; - evas_object_smart_callback_call(ivug_ss_object_get(pSlideShow), "slideshow,finished", (void *)SLIDE_SHOW_INTERRUPTED); + pSlideShow->bPlayButton = false; return ECORE_CALLBACK_CANCEL; } + void _ivug_ss_on_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info) { @@ -524,8 +546,9 @@ void _ivug_ss_on_mouse_up(void *data, Evas *e, if(pSlideShow->click_timer) { ecore_timer_del(pSlideShow->click_timer); + pSlideShow->click_timer = NULL; } - pSlideShow->click_timer = ecore_timer_add(0.3f, _ivug_ss_clicked_timer_cb, data); + pSlideShow->click_timer = ecore_timer_add(0.03f, _ivug_ss_clicked_timer_cb, data); } } @@ -536,6 +559,8 @@ _ivug_ss_auto_finish_timer_cb(void *data) SlideShow *pSlideShow = (SlideShow*)data; /* exit slide show after whole animation is over */ + pSlideShow->ss_timer = NULL; + ivug_ss_stop(pSlideShow); return ECORE_CALLBACK_CANCEL; } @@ -549,7 +574,7 @@ _ivug_ss_photocam_loaded_cb(void *data, Evas_Object *obj, void *event_info) Slide_Layout* sLy = static_cast(data); SlideShow *pSlideShow = (SlideShow *)sLy->pSlideshow; - if ( sLy->mitem == NULL) + if (sLy->mitem == NULL) { MSG_ERROR("Debug Me! Data item is NULL."); return; @@ -563,17 +588,16 @@ _ivug_ss_photocam_loaded_cb(void *data, Evas_Object *obj, void *event_info) } Evas_Load_Error error = static_cast(reinterpret_cast(event_info)); - if ( error != EVAS_LOAD_ERROR_NONE ) + if (error != EVAS_LOAD_ERROR_NONE ) { - MSG_HIGH("Photocam Pre-loaded. File=%s", ivug_get_filename(mdata->filepath)); - MSG_SITEM_ERROR("Image loading failed. Error=%d File=%s", + MSG_SEC("Image loading failed. Error=%d File=%s", error, mdata->filepath); _ivug_ss_load_next_image((SlideShow *)sLy->pSlideshow); return; } edje_object_signal_emit(_EDJ(pSlideShow->sLayout[pSlideShow->sCurrent].layout), "elm,state,hide_thumbnail", "slideshow"); - MSG_SITEM_HIGH("Photocam Pre-loaded. File=%s", + MSG_SEC("Photocam Pre-loaded. File=%s", ivug_get_filename(mdata->filepath)); return; @@ -589,25 +613,15 @@ static bool _ivug_ss_create_image_layout(Evas_Object *parent, Slide_Layout *sLay return false; } -#ifdef USE_IVUG_IMAGE - sLayout->photocam = ivug_image_create(sLayout->layout); -#else sLayout->photocam = elm_photocam_add(sLayout->layout); -#endif + evas_object_size_hint_expand_set(sLayout->photocam, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(sLayout->photocam, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_part_content_set(sLayout->layout, "content", sLayout->photocam); - sLayout->thumbnail = elm_icon_add(sLayout->layout); - evas_object_name_set(sLayout->thumbnail, "Thumbnail"); - elm_object_part_content_set(sLayout->layout, "thumbnail", sLayout->thumbnail); - -#ifdef USE_IVUG_IMAGE -#else elm_photocam_zoom_mode_set(sLayout->photocam, ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT); elm_photocam_paused_set(sLayout->photocam, EINA_TRUE); -#endif evas_object_smart_callback_add(sLayout->photocam, "loaded", @@ -623,17 +637,18 @@ static bool _ivug_ss_create_image_layout(Evas_Object *parent, Slide_Layout *sLay SlideShow *ivug_ss_create(Evas_Object *parent) { SlideShow *pSlideShow = NULL; - MSG_IVUG_HIGH("ivug_ss_create"); + MSG_HIGH("ivug_ss_create"); + pSlideShow = (SlideShow*)calloc(1,sizeof(SlideShow)); - if (pSlideShow == NULL) { - return NULL; - } + IV_ASSERT(pSlideShow != NULL); pSlideShow->state = SLIDE_SHOW_STOPPED; pSlideShow->bMouse_event = false; ivug_effect_type ivug_effect = IVUG_EFFECT_TYPE_SLIDE; + ivug_config_get_slideshow_setting(&(pSlideShow->ss_mode), &(pSlideShow->ss_interval_time), &ivug_effect); + if(ivug_effect == IVUG_EFFECT_TYPE_UNKNOWN) { free(pSlideShow); pSlideShow = NULL; @@ -642,12 +657,13 @@ SlideShow *ivug_ss_create(Evas_Object *parent) pSlideShow->effect_type = _ivug_ss_get_trans_effect(ivug_effect); +// If Non-DALI slideshow. pSlideShow->obj = _ivug_ss_create_layout(parent, IVUG_SS_LY_EDJ_PATH, "view.slideshow"); MSG_ASSERT(pSlideShow->obj != NULL); evas_object_name_set(pSlideShow->obj, "slideshow"); /* Create Layout for the current item */ - if ( _ivug_ss_create_image_layout(pSlideShow->obj, &pSlideShow->sLayout[0]) == false) + if (_ivug_ss_create_image_layout(pSlideShow->obj, &pSlideShow->sLayout[0]) == false) { MSG_ERROR("Cannot create current layout"); free(pSlideShow); @@ -657,7 +673,7 @@ SlideShow *ivug_ss_create(Evas_Object *parent) evas_object_name_set(pSlideShow->sLayout[0].layout, "Layout 0"); /* Create Layout for the next item */ - if ( _ivug_ss_create_image_layout(pSlideShow->obj, &pSlideShow->sLayout[1]) == false) + if (_ivug_ss_create_image_layout(pSlideShow->obj, &pSlideShow->sLayout[1]) == false) { MSG_ERROR("Cannot create current layout"); elm_object_part_content_unset(pSlideShow->sLayout[0].layout, "content"); @@ -670,18 +686,13 @@ SlideShow *ivug_ss_create(Evas_Object *parent) pSlideShow->sLayout[1].pSlideshow = pSlideShow; evas_object_name_set(pSlideShow->sLayout[1].layout, "Layout 1"); - evas_object_event_callback_add(pSlideShow->sLayout[0].layout, EVAS_CALLBACK_SHOW, _shown1, NULL); - evas_object_event_callback_add(pSlideShow->sLayout[0].layout, EVAS_CALLBACK_HIDE, _hidden1, NULL); - - evas_object_event_callback_add(pSlideShow->sLayout[1].layout, EVAS_CALLBACK_SHOW, _shown1, NULL); - evas_object_event_callback_add(pSlideShow->sLayout[1].layout, EVAS_CALLBACK_HIDE, _hidden1, NULL); - /* Event rect */ pSlideShow->event = evas_object_rectangle_add(evas_object_evas_get(parent)); evas_object_name_set(pSlideShow->event, "ss_event"); evas_object_color_set(pSlideShow->event, 0,0,0,0); evas_object_show(pSlideShow->event); + evas_object_repeat_events_set(pSlideShow->event, EINA_TRUE); //EFL::dump_obj(pSlideShow->obj, 0); @@ -698,35 +709,41 @@ SlideShow *ivug_ss_create(Evas_Object *parent) return pSlideShow; } - bool ivug_ss_start(SlideShow *pSlideShow , Media_Item *current, Media_List *list, Eina_Bool bSlideFirst) { MSG_ASSERT(pSlideShow != NULL); ivug_ss_get_screen_size(&pSlideShow->screen_w, &pSlideShow->screen_h); - if(pSlideShow->ss_interval_time < 0) - { + if (pSlideShow->ss_interval_time < 0) { MSG_ERROR("slide show interval time is invalid !!!"); return false; } - if (pSlideShow->state == SLIDE_SHOW_RUNNING ) - { + if (pSlideShow->state == SLIDE_SHOW_RUNNING) { MSG_ERROR("Debug me!!! Slide show is running. remove previous one."); ivug_ss_stop(pSlideShow); } - if (pSlideShow->effect_engine != NULL ) - { + if (pSlideShow->effect_engine != NULL) { MSG_FATAL("Debug Me!!!"); return false; } + int ret = DEVICE_ERROR_NONE; + ret = device_power_request_lock(POWER_LOCK_DISPLAY, 0); + + if (ret != DEVICE_ERROR_NONE) { + MSG_ERROR("Display Request could not be processed."); + } + pSlideShow->sCurrent = 0; pSlideShow->bSS_StopFlag = EINA_FALSE; - pSlideShow->ss_Header = current; + + pSlideShow->media_list = list; + pSlideShow->ss_Header = current; + pSlideShow->cur_item = current; MSG_ASSERT(pSlideShow->obj != NULL); pSlideShow->bMouse_event = true; @@ -740,6 +757,9 @@ bool ivug_ss_start(SlideShow *pSlideShow , Media_Item *current, Media_List *list _ivug_ss_set_content(sLyCurrent, current); + Media_Item *mitem = sLyCurrent->mitem; + _ivug_ss_video_icon(pSlideShow->sLayout[pSlideShow->sCurrent].layout, mitem); + Media_Item *next = NULL; next = ivug_ss_get_next_item(pSlideShow->media_list, @@ -747,8 +767,7 @@ bool ivug_ss_start(SlideShow *pSlideShow , Media_Item *current, Media_List *list sLyCurrent->mitem, pSlideShow->ss_mode); - if(next == NULL) - { + if (next == NULL) { /* if last image is tapped, then after some time, back to main view directly */ pSlideShow->ss_timer = NULL; pSlideShow->ss_Header = NULL; @@ -760,23 +779,14 @@ bool ivug_ss_start(SlideShow *pSlideShow , Media_Item *current, Media_List *list _ivug_ss_set_content(sLyNext, next); - pSlideShow->state = SLIDE_SHOW_RUNNING; + mitem = sLyNext->mitem; + _ivug_ss_video_icon(pSlideShow->sLayout[(pSlideShow->sCurrent + 1) % 2].layout, mitem); -#if 0 - if(_ivug_ss_on_slide_interval(pSlideShow) == false) - { - pSlideShow->ss_timer = NULL; - pSlideShow->ss_Header = NULL; + pSlideShow->state = SLIDE_SHOW_RUNNING; - /* exit slide show after whole animation is over */ - ivug_ss_stop(pSlideShow); - return false; - } -#endif // EFL::dump_obj(pSlideShow->obj, 0); - if(pSlideShow->ss_timer) - { + if (pSlideShow->ss_timer) { ecore_timer_del(pSlideShow->ss_timer); } pSlideShow->ss_timer = ecore_timer_add(pSlideShow->ss_interval_time, _ivug_ss_on_slide_interval, pSlideShow); @@ -793,36 +803,46 @@ bool ivug_ss_stop(SlideShow *pSlideShow) MSG_HIGH("Slide show stopping"); - if (pSlideShow->state != SLIDE_SHOW_RUNNING) - { - MSG_HIGH("pSlideShow->state != SLIDE_SHOW_RUNNING"); - return true; - } - pSlideShow->bSS_StopFlag = EINA_TRUE; + int ret = DEVICE_ERROR_NONE; + ret = device_power_release_lock(POWER_LOCK_DISPLAY); + + if (ret != DEVICE_ERROR_NONE) { + MSG_ERROR("Display Release could not be processed."); + } + //delete timmer - if(pSlideShow->ss_timer) { + if (pSlideShow->ss_timer) { ecore_timer_del(pSlideShow->ss_timer); pSlideShow->ss_timer = NULL; } - if(pSlideShow->click_timer) { + if (pSlideShow->click_timer) { ecore_timer_del(pSlideShow->click_timer); pSlideShow->click_timer = NULL; } - if(pSlideShow->event) { + if (pSlideShow->event) { evas_object_del(pSlideShow->event); pSlideShow->event = NULL; } + if (pSlideShow->pauseLayout) { + evas_object_del(pSlideShow->pauseLayout); + pSlideShow->pauseLayout = NULL; + } + if (pSlideShow->pauseLayout2) { + evas_object_del(pSlideShow->pauseLayout2); + pSlideShow->pauseLayout2 = NULL; + } - if(pSlideShow->effect_engine == NULL) - { + /*when it is 3D slideshow.it should call finish operation to end slideshow*/ + if (pSlideShow->effect_engine == NULL) { MSG_HIGH("Slide effect_engine = NULL"); pSlideShow->state = SLIDE_SHOW_STOPPED; pSlideShow->ss_Header = NULL; - pSlideShow->bSS_StopFlag = EINA_FALSE; + // TODO : Mis-implementation evas_object_smart_callback_call(ivug_ss_object_get(pSlideShow), "slideshow,finished", (void *)SLIDE_SHOW_STOPPED); + pSlideShow->bSS_StopFlag = EINA_FALSE; } //MSG_HIGH("Stop slide show. but not run state"); @@ -831,23 +851,363 @@ bool ivug_ss_stop(SlideShow *pSlideShow) bool ivug_ss_resume(SlideShow *pSlideShow) { - MSG_HIGH("Slide show Resume"); + MSG_HIGH("Slide show Resume. pSlideShow=0x%08x", pSlideShow); MSG_ASSERT(pSlideShow != NULL); + if (pSlideShow->pauseLayout != NULL) { + evas_object_del(pSlideShow->pauseLayout); + pSlideShow->pauseLayout = NULL; + } + + if (pSlideShow->pauseLayout2 != NULL) { + evas_object_del(pSlideShow->pauseLayout2); + pSlideShow->pauseLayout2 = NULL; + } + if(pSlideShow->ss_timer) { ecore_timer_thaw(pSlideShow->ss_timer); } pSlideShow->state = SLIDE_SHOW_RUNNING; - //MSG_HIGH("ivug_resume_slideshow"); return true; } +static void _play_icon_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + IV_ASSERT(data != NULL); + + SlideShow *pSlideShow = (SlideShow *)data; + pSlideShow->bPlayButton = true; + + if(pSlideShow->state == SLIDE_SHOW_PAUSE) { + elm_object_signal_emit(pSlideShow->pauseLayout, "elm,state,hide", ""); + ivug_ss_resume(pSlideShow); + + elm_object_signal_emit(pSlideShow->pauseLayout2, "elm,state,hide", ""); + ivug_ss_resume(pSlideShow); + } +} + +static void _stop_icon_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + IV_ASSERT(data != NULL); + + SlideShow *pSlideShow = (SlideShow *)data; + + ivug_ss_stop(pSlideShow); +} + +static char * +_gl_text_get_effect_type(void *data, Evas_Object *obj, const char *part) +{ + int index = (int) data; + char buf[255] = {0, }; + + switch(index) { + case 0: + snprintf(buf, sizeof(buf), "%s", GET_STR(IDS_SLIDESHOW_FLOW_EFFECT)); + break; + case 1: + snprintf(buf, sizeof(buf), "%s", GET_STR(IDS_SLIDESHOW_FADE_EFFECT)); + break; + default: + snprintf(buf, sizeof(buf), "%s", GET_STR(IDS_SLIDESHOW_FADE_EFFECT)); + } + + return strdup(buf); +} + +static char * +_gl_text_get_slide_interval(void *data, Evas_Object *obj, const char *part) +{ + int index = (int) data; + char buf[50] = {0, }; + char *str = NULL; + + switch(index) { + case 0: + str = GET_STR(IDS_SLIDE_SECOND); + snprintf(buf, sizeof(buf), "%s", str); + break; + case 1: + str = GET_STR(IDS_SLIDE_SECONDS); + snprintf(buf, sizeof(buf), str, 3); + break; + case 2: + str = GET_STR(IDS_SLIDE_SECONDS); + snprintf(buf, sizeof(buf), str, 5); + break; + default: + str = GET_STR(IDS_SLIDE_SECOND); + snprintf(buf, sizeof(buf), "%s", str); + } + + MSG_ERROR("buffer %s", buf); + return strdup(buf); +} + +static void +gl_slide_interval_radio_sel_cb(void *data, Evas_Object *obj, void *event_info) +{ + Elm_Object_Item *it = (Elm_Object_Item*) event_info; + st_temp *ob = (st_temp *)data; + int index = ob->index; + Evas_Object *radio; + elm_genlist_item_selected_set(it, EINA_FALSE); + radio = elm_object_item_part_content_get(it, "elm.swallow.end"); + elm_radio_value_set(radio, index + 1); + MSG_ERROR("Index is %d", index + 1); + + ivug_config_set_interval_time(index + 1); + ob->pSlideshow->ss_interval_time = (double) ivug_config_get_slideshow_interval_time(); + ecore_timer_interval_set(ob->pSlideshow->ss_timer, ob->pSlideshow->ss_interval_time); + + if (ob->pSlideshow->popup) { + evas_object_del(ob->pSlideshow->popup); + ob->pSlideshow->popup = NULL; + } +} + +static void +gl_effect_radio_sel_cb(void *data, Evas_Object *obj, void *event_info) +{ + Elm_Object_Item *it = (Elm_Object_Item*) event_info; + st_temp *ob = (st_temp *)data; + int index = ob->index; + Evas_Object *radio; + elm_genlist_item_selected_set(it, EINA_FALSE); + radio = elm_object_item_part_content_get(it, "elm.swallow.end"); + elm_radio_value_set(radio, index + 1); + MSG_ERROR("Index is %d", index + 1); + + ivug_config_set_transition_effect(index + 1); + + char *effect = ivug_config_get_slideshow_effect_type(); + ivug_effect_type effect_type = ivug_config_get_effect_type_by_string(effect); + ob->pSlideshow->effect_type = _ivug_ss_get_trans_effect(effect_type); + + + if (ob->pSlideshow->popup) { + evas_object_del(ob->pSlideshow->popup); + ob->pSlideshow->popup = NULL; + } +} + +static Evas_Object* +gl_radio_slide_interval_content_get_cb(void *data, Evas_Object *obj, const char *part) +{ + int index = (int) data; + if (!strcmp(part, "elm.swallow.end")) { + Evas_Object *radio; + Evas_Object *radio_main = (Evas_Object*)evas_object_data_get(obj, "radio"); + radio = elm_radio_add(obj); + elm_radio_group_add(radio, radio_main); + elm_radio_state_value_set(radio, index); + + int radio_index = 0; + int interval_time = ivug_config_get_slideshow_interval_time(); + if (interval_time == 3) { + radio_index = 1; + } else if (interval_time == 5) { + radio_index = 2; + } + + elm_radio_value_set(radio, radio_index); + evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND,EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_propagate_events_set(radio, EINA_TRUE); + return radio; + } + return NULL; +} + +static Evas_Object* +gl_radio_effects_content_get_cb(void *data, Evas_Object *obj, const char *part) +{ + int index = (int) data; + if (!strcmp(part, "elm.swallow.end")) { + Evas_Object *radio; + Evas_Object *radio_main = (Evas_Object*)evas_object_data_get(obj, "radio"); + radio = elm_radio_add(obj); + elm_radio_group_add(radio, radio_main); + elm_radio_state_value_set(radio, index); + + int radio_index = 0; + char *effect = ivug_config_get_slideshow_effect_type(); + if (!strcmp(effect,"DissolveFade")) { + radio_index = 1; + } + + elm_radio_value_set(radio, radio_index); + evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND,EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_propagate_events_set(radio, EINA_TRUE); + return radio; + } + return NULL; +} + +static void +popup_block_clicked_cb(void *data, Evas_Object *obj, void *event_info) +{ + evas_object_del(obj); +} + +Evas_Object *ivug_list_popoup_show(const char *title_id, void *data) +{ + SlideShow *pSlideshow = (SlideShow *)data; + + static Elm_Genlist_Item_Class itc; + Evas_Object *popup; + Evas_Object *genlist; + Evas_Object *radio; + int i; + + popup = elm_popup_add((Evas_Object *)ug_get_window()); + elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0); + ivug_elm_object_part_text_set(gGetLanguageHandle(), popup, "title,text", title_id); + eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, eext_popup_back_cb, pSlideshow); + evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_smart_callback_add(popup, "block,clicked", popup_block_clicked_cb, (Evas_Object *)ug_get_window()); + + /* genlist */ + genlist = elm_genlist_add(popup); + elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS); + 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_style_set(genlist, "popup"); + elm_genlist_homogeneous_set(genlist, EINA_TRUE); + elm_scroller_policy_set(genlist, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO); + elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_TRUE); + + /* radio */ + radio = elm_radio_add(genlist); + elm_radio_state_value_set(radio, 0); + elm_radio_value_set(radio, 0); + evas_object_data_set(genlist, "radio", radio); + + if (strcmp(title_id, GET_STR(IDS_SLIDESHOW_EFFECT))) { + itc.item_style = "default_style"; + itc.func.text_get = _gl_text_get_slide_interval; + itc.func.content_get = gl_radio_slide_interval_content_get_cb; + itc.func.state_get = NULL; + itc.func.del = NULL; + + for (i = 0; i < 3; i++) { + st_temp *ob = (st_temp *) calloc(1, sizeof(st_temp)); + if (ob != NULL) { + ob->index = i; + ob->pSlideshow = pSlideshow; + + elm_genlist_item_append(genlist, &itc, (void *) i, NULL, ELM_GENLIST_ITEM_NONE, gl_slide_interval_radio_sel_cb, (void *) ob); + } + } + } else { + itc.item_style = "default_style"; + itc.func.text_get = _gl_text_get_effect_type; + itc.func.content_get = gl_radio_effects_content_get_cb; + itc.func.state_get = NULL; + itc.func.del = NULL; + + for (i = 0; i < 2; i++) { + st_temp *ob = (st_temp *) calloc(1, sizeof(st_temp)); + if (ob) { + ob->index = i; + ob->pSlideshow = pSlideshow; + + elm_genlist_item_append(genlist, &itc, (void *) i, NULL, ELM_GENLIST_ITEM_NONE, gl_effect_radio_sel_cb, (void *) ob); + } + } + } + + evas_object_show(genlist); + elm_object_content_set(popup, genlist); + evas_object_show(popup); + + return popup; +} + +static void _effect_icon_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + IV_ASSERT(data != NULL); + + SlideShow *pSlideShow = (SlideShow *)data; + pSlideShow->popup = ivug_list_popoup_show(GET_STR(IDS_SLIDESHOW_EFFECT), pSlideShow); + + return; +} + +static void _setting_icon_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + IV_ASSERT(data != NULL); + + SlideShow *pSlideShow = (SlideShow *)data; + pSlideShow->popup = ivug_list_popoup_show(GET_STR(IDS_SLIDESHOW_SLIDE_INTERVAL), pSlideShow); + + return; +} + +static void ivug_show_pause_state_layout(SlideShow *pSlideShow) +{ + IV_ASSERT(pSlideShow != NULL); + +//Current Layout + pSlideShow->pauseLayout = elm_layout_add(pSlideShow->sLayout[0].layout); + evas_object_size_hint_expand_set(pSlideShow->pauseLayout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + Eina_Bool ret = elm_layout_file_set(pSlideShow->pauseLayout, IVUG_SS_LY_EDJ_PATH, "slideshow_overlay"); + + if (ret == EINA_FALSE) { + MSG_ERROR("Layout file set failed! slideshow_overlay in %s", IVUG_SS_LY_EDJ_PATH); + } + + /*text*/ + elm_object_domain_translatable_part_text_set(pSlideShow->pauseLayout, "slide_interval_setting.icon.text", textdomain(NULL), GET_STR(IDS_SLIDESHOW_SLIDE_INTERVAL)); + elm_object_domain_translatable_part_text_set(pSlideShow->pauseLayout, "effect.icon.text", textdomain(NULL), GET_STR(IDS_SLIDESHOW_EFFECT)); + elm_object_domain_translatable_part_text_set(pSlideShow->pauseLayout, "stop.icon.text", textdomain(NULL), GET_STR(IDS_SLIDESHOW_STOP)); + + /*register callback*/ + elm_object_signal_callback_add(pSlideShow->pauseLayout, "mouse,clicked,1", "play.icon", _play_icon_cb, (void *)pSlideShow); + elm_object_signal_callback_add(pSlideShow->pauseLayout, "mouse,clicked,1", "stop.icon.click", _stop_icon_cb, (void *)pSlideShow); + elm_object_signal_callback_add(pSlideShow->pauseLayout, "mouse,clicked,1", "slide_interval_setting.icon.click", _setting_icon_cb, (void *)pSlideShow); + elm_object_signal_callback_add(pSlideShow->pauseLayout, "mouse,clicked,1", "effect.icon.click", _effect_icon_cb, (void *)pSlideShow); + + elm_object_part_content_set(pSlideShow->sLayout[0].layout, "elm.swallow.overlay",pSlideShow->pauseLayout ); + + evas_object_show(pSlideShow->pauseLayout); + +//Next Layout + pSlideShow->pauseLayout2 = elm_layout_add(pSlideShow->sLayout[1].layout); + evas_object_size_hint_expand_set(pSlideShow->pauseLayout2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + ret = elm_layout_file_set(pSlideShow->pauseLayout2, IVUG_SS_LY_EDJ_PATH, "slideshow_overlay"); + + if (ret == EINA_FALSE) { + MSG_ERROR("Layout file set failed! slideshow_overlay in %s", IVUG_SS_LY_EDJ_PATH); + } + + /*text*/ + elm_object_domain_translatable_part_text_set(pSlideShow->pauseLayout2, "slide_interval_setting.icon.text", textdomain(NULL), GET_STR(IDS_SLIDESHOW_SLIDE_INTERVAL)); + elm_object_domain_translatable_part_text_set(pSlideShow->pauseLayout2, "effect.icon.text", textdomain(NULL), GET_STR(IDS_SLIDESHOW_EFFECT)); + elm_object_domain_translatable_part_text_set(pSlideShow->pauseLayout2, "stop.icon.text", textdomain(NULL), GET_STR(IDS_SLIDESHOW_STOP)); + + /*register callback*/ + elm_object_signal_callback_add(pSlideShow->pauseLayout2, "mouse,clicked,1", "play.icon", _play_icon_cb, (void *)pSlideShow); + elm_object_signal_callback_add(pSlideShow->pauseLayout2, "mouse,clicked,1", "stop.icon.click", _stop_icon_cb, (void *)pSlideShow); + elm_object_signal_callback_add(pSlideShow->pauseLayout2, "mouse,clicked,1", "slide_interval_setting.icon.click", _setting_icon_cb, (void *)pSlideShow); + elm_object_signal_callback_add(pSlideShow->pauseLayout2, "mouse,clicked,1", "effect.icon.click", _effect_icon_cb, (void *)pSlideShow); + + elm_object_part_content_set(pSlideShow->sLayout[1].layout, "elm.swallow.overlay",pSlideShow->pauseLayout2 ); + + evas_object_show(pSlideShow->pauseLayout2); + + +} + bool ivug_ss_pause(SlideShow *pSlideShow) { - MSG_HIGH("Slide show Pause"); + MSG_HIGH("Slide show Pause. pSlideShow=0x%08x", pSlideShow); MSG_ASSERT(pSlideShow != NULL); @@ -858,6 +1218,8 @@ bool ivug_ss_pause(SlideShow *pSlideShow) pSlideShow->state = SLIDE_SHOW_PAUSE; + ivug_show_pause_state_layout(pSlideShow); + return true; } @@ -872,71 +1234,92 @@ void ivug_ss_delete(SlideShow *pSlideShow) { MSG_HIGH("Slide show Delete"); - if(!pSlideShow) - { + if (!pSlideShow) { MSG_ERROR("Already deleted!!"); return; } + + int ret = DEVICE_ERROR_NONE; + ret = device_power_release_lock(POWER_LOCK_DISPLAY); + + if (ret != DEVICE_ERROR_NONE) { + MSG_ERROR("Display Release could not be processed."); + } + + if (pSlideShow->focus_in_handler) { + ecore_event_handler_del(pSlideShow->focus_in_handler); + pSlideShow->focus_in_handler = NULL; + } + + if (pSlideShow->focus_out_handler) { + ecore_event_handler_del(pSlideShow->focus_out_handler); + pSlideShow->focus_out_handler = NULL; + } + + if (pSlideShow->visibility_handler) { + ecore_event_handler_del(pSlideShow->visibility_handler); + pSlideShow->visibility_handler = NULL; + } + evas_object_event_callback_del(pSlideShow->event, EVAS_CALLBACK_MOUSE_DOWN, _ivug_ss_on_mouse_down); evas_object_event_callback_del(pSlideShow->event, EVAS_CALLBACK_MOUSE_MOVE, _ivug_ss_on_mouse_move); evas_object_event_callback_del(pSlideShow->event, EVAS_CALLBACK_MOUSE_UP, _ivug_ss_on_mouse_up); - if(pSlideShow->effect_engine) + if (pSlideShow->effect_engine) { ivug_effect_finalize(pSlideShow->effect_engine); + pSlideShow->effect_engine = NULL; + } - if(pSlideShow->ss_timer) { + if (pSlideShow->ss_timer) { ecore_timer_del(pSlideShow->ss_timer); pSlideShow->ss_timer = NULL; } - if(pSlideShow->click_timer) { + + if (pSlideShow->click_timer) { ecore_timer_del(pSlideShow->click_timer); pSlideShow->click_timer = NULL; } - for ( int i = 0 ; i < 2; i++) - { - if(pSlideShow->sLayout[i].photocam) { - #ifdef USE_IVUG_IMAGE - ivug_image_unset(pSlideShow->sLayout[i].photocam); - #endif + for (int i = 0 ; i < 2; i++) { + if (pSlideShow->sLayout[i].photocam) { evas_object_del(pSlideShow->sLayout[i].photocam); pSlideShow->sLayout[i].photocam = NULL; } - if(pSlideShow->sLayout[(pSlideShow->sCurrent) % 2].layout) + + if (pSlideShow->sLayout[(pSlideShow->sCurrent) % 2].layout) { pSlideShow->sLayout[(pSlideShow->sCurrent) % 2].photocam = elm_object_part_content_unset(pSlideShow->sLayout[(pSlideShow->sCurrent) % 2].layout, "content"); + } - if(pSlideShow->sLayout[(pSlideShow->sCurrent) % 2].photocam) { + if (pSlideShow->sLayout[(pSlideShow->sCurrent) % 2].photocam) { evas_object_del(pSlideShow->sLayout[(pSlideShow->sCurrent) % 2].photocam); pSlideShow->sLayout[(pSlideShow->sCurrent) % 2].photocam = NULL; } - if(pSlideShow->sLayout[(pSlideShow->sCurrent + 1) % 2].layout) + + if (pSlideShow->sLayout[(pSlideShow->sCurrent + 1) % 2].layout) { pSlideShow->sLayout[(pSlideShow->sCurrent + 1) % 2].photocam = elm_object_part_content_unset(pSlideShow->sLayout[(pSlideShow->sCurrent + 1) % 2].layout, "content"); + } - if(pSlideShow->sLayout[i].layout) { + if (pSlideShow->sLayout[i].layout) { evas_object_del(pSlideShow->sLayout[i].layout); pSlideShow->sLayout[i].layout = NULL; } - } - if ( pSlideShow->event ) - { + if (pSlideShow->event) { evas_object_del(pSlideShow->event); pSlideShow->event = NULL; } - if ( pSlideShow->obj ) - { + if (pSlideShow->obj) { evas_object_del(pSlideShow->obj); pSlideShow->obj = NULL; } - if(pSlideShow) - { + if (pSlideShow) { free(pSlideShow); pSlideShow = NULL; } @@ -946,14 +1329,15 @@ void ivug_ss_delete(SlideShow *pSlideShow) void ivug_ss_resize(SlideShow *pSlideShow) { IVUG_FUNC_ENTER(); - /*This interface only used for 2d slideshow, - *So disable it when current is dali-slideshow. - *resize slide show layout and move them to right pos after rotation - */ +/*This interface only used for 2d slideshow, + *So disable it when current is dali-slideshow. + *resize slide show layout and move them to right pos after rotation + */ if (!pSlideShow) { return; } - if((pSlideShow->obj) && (pSlideShow->event)) { + + if((pSlideShow->obj) && (pSlideShow->event)) { ivug_ss_get_screen_size(&pSlideShow->screen_w, &pSlideShow->screen_h); evas_object_resize(pSlideShow->obj, pSlideShow->screen_w, pSlideShow->screen_h); Evas_Coord ox, oy, ow, oh; @@ -975,7 +1359,6 @@ void ivug_ss_resize(SlideShow *pSlideShow) } //MSG_HIGH("_ivug_ss_resize_obj, Moved (%d,%d,%d,%d)", ox, oy, ow, oh); } - IVUG_FUNC_LEAVE(); } @@ -986,6 +1369,7 @@ Evas_Object *ivug_ss_object_get(SlideShow *pSlideShow) MSG_ASSERT(pSlideShow != NULL); return pSlideShow->obj; + } void @@ -996,3 +1380,5 @@ ivug_ss_set_stop(SlideShow *pSlideShow) pSlideShow->state = SLIDE_SHOW_STOPPED; } + + diff --git a/slideshow/src/effect/include/ivug-anim.h b/slideshow/src/effect/include/ivug-anim.h index ab950bd..b23cdfb 100755 --- a/slideshow/src/effect/include/ivug-anim.h +++ b/slideshow/src/effect/include/ivug-anim.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_ANIM_H__ #define __IVUG_ANIM_H__ diff --git a/slideshow/src/effect/include/ivug-effect.h b/slideshow/src/effect/include/ivug-effect.h index 6027517..199393d 100755 --- a/slideshow/src/effect/include/ivug-effect.h +++ b/slideshow/src/effect/include/ivug-effect.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_EFFECT_H__ #define __IVUG_EFFECT_H__ @@ -58,12 +59,8 @@ typedef struct { typedef enum _Effect_Type { EFFECT_NONE, - EFFECT_IRIS, - EFFECT_DISSOLVE, EFFECT_SLIDE, - EFFECT_DISSOLVE_FADE, - EFFECT_SPLIT, - EFFECT_MAX + EFFECT_DISSOLVE_FADE } Effect_Type; @@ -84,9 +81,6 @@ bool ivug_effect_finalize(Effect_Engine *engine); Private function for adding effect. Do not use below functions directly.. */ Effect_Engine *ivug_fade_add(void); -Effect_Engine *ivug_iris_add(void); -Effect_Engine *ivug_dissolve_add(void); -Effect_Engine *ivug_blind_add(void); Effect_Engine *ivug_slide_add(void); diff --git a/slideshow/src/effect/ivug-anim.c b/slideshow/src/effect/ivug-anim.c index 7b76d1b..f32918c 100755 --- a/slideshow/src/effect/ivug-anim.c +++ b/slideshow/src/effect/ivug-anim.c @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 /* for NULL */ @@ -27,13 +28,14 @@ */ static double _anim_linear(double t, double b, double c, double d) { - if(d != 0.0) + if (d != 0.0) t /= d; return b + c * (t); } static double _anim_sine(double t, double b, double c, double d) { +/* TODO : Consider below table reconstruct. need only 0.0 ~ 1.0 range*/ static const double const SIN_TABLE[91] = { 0.0000f, 0.0174f, 0.0349f, 0.0523f, 0.0698f, 0.0872f, 0.1045f, 0.1219f, 0.1392f, 0.1564f, @@ -56,7 +58,7 @@ static double _anim_sine(double t, double b, double c, double d) 1.0f }; - if(d != 0.0) + if (d != 0.0) t /= d; /* normalize */ int idx = (int)(90.0 * t); @@ -68,7 +70,7 @@ static double _anim_sine(double t, double b, double c, double d) static double _anim_ease_inout_quartic(double t, double b, double c, double d) { - if(d != 0.0) + if (d != 0.0) t /= d; double ts = t * t; double tc = ts * t; @@ -79,7 +81,7 @@ static double _anim_ease_inout_quartic(double t, double b, static double _anim_ease_inout_quintic(double t, double b, double c, double d) { - if(d != 0.0) + if (d != 0.0) t /= d; double ts = t * t; double tc = ts * t; diff --git a/slideshow/src/effect/ivug-blind.c b/slideshow/src/effect/ivug-blind.c deleted file mode 100755 index b27446d..0000000 --- a/slideshow/src/effect/ivug-blind.c +++ /dev/null @@ -1,313 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ivug-debug.h" -#include "ivug-xcapture.h" -#include "ivug-effect.h" - -/* Currently only 4 is supported */ -#define DEFAULT_MAP_COUNT (4) -#define DEFAULT_FOCUL_DISTANCE (10000) - -#define DEFAULT_START_ANGLE (0.0f) -#define DEFAULT_END_ANGLE (90.0f) - -#define MAX_BLIND_NUM 8 - -typedef struct _Blind_Rotation Blind_Rotation; - -struct _Blind_Rotation { - bool cw; /* Clockwise rotation */ - float from, to; /* rotate angle: 0 ~ 360 */ -}; - -typedef struct _Blind_Data Blind_Data; - -struct _Blind_Data { - int bx; - int by; - int bw; - int bh; - - Evas_Object * img[MAX_BLIND_NUM]; - - Evas_Object * dst; - - Evas * evas; - - Blind_Rotation rotation; -}; - -static bool -__ivug_blind_image_create(Evas *e, Blind_Data *engine, - int *src_data) -{ - ivug_retvm_if(e == NULL, false, "Evas is NULL"); - ivug_retvm_if(engine == NULL, false, "engine is NULL"); - ivug_retvm_if(src_data == NULL, false, "src_data is NULL"); - - Blind_Data *eng_data = engine; - - ivug_retvm_if((eng_data->bw <= 0 || eng_data->bh <= 0), false, - "bw or bh is 0: [%d, %d]", eng_data->bw, eng_data->bh); - - int index; - int row = 0; - int col = 0; - - int *psrc = src_data; - int *dst_data = NULL; - - for (index = 0; index < MAX_BLIND_NUM; index++) { - eng_data->img[index] = evas_object_image_filled_add(e); - evas_object_image_size_set(eng_data->img[index], eng_data->bw, - eng_data->bh); - evas_object_image_fill_set(eng_data->img[index], 0, 0, - eng_data->bw, eng_data->bh); - evas_object_image_data_update_add(eng_data->img[index], 0, 0, - eng_data->bw, eng_data->bh); - - dst_data = - evas_object_image_data_get(eng_data->img[index], - EINA_TRUE); - - row = eng_data->bw; - col = eng_data->bh; - while (col--) { - while (row--) { - *dst_data++ = *psrc++; - } - - row = eng_data->bw; - } - - evas_object_resize(eng_data->img[index], eng_data->bw, - eng_data->bh); - evas_object_move(eng_data->img[index], eng_data->bx, - eng_data->by + eng_data->bh * index); - evas_object_show(eng_data->img[index]); - } - - return true; -} - -static Effect_Data __ivug_blind_init(Evas_Object *src, Evas_Object *dst) -{ - IV_ASSERT(src != NULL); - - Blind_Data *eng_data = calloc(1, sizeof(Blind_Data)); - if (eng_data == NULL) { - MSG_EFFECT_ERROR("Memory calloc failed"); - return NULL; - } - - eng_data->evas = evas_object_evas_get(src); - - Evas_Coord x, y, w, h; - evas_object_geometry_get(src, &x, &y, &w, &h); - - eng_data->bx = x; - eng_data->by = y; - - eng_data->dst = dst; - - evas_object_stack_below(dst, src); - evas_object_move(dst, 0, 0); - - eng_data->rotation.cw = true; - eng_data->rotation.from = DEFAULT_START_ANGLE; - eng_data->rotation.to = DEFAULT_END_ANGLE; - - /* Need hide the img_object here */ - evas_object_hide(src); - - return (Effect_Data)eng_data; -} - -static bool __ivug_blind_set_size(void *data, int screen_w, int screen_h, int rotation) -{ - IVUG_FUNC_ENTER(); - - ivug_retvm_if((screen_w <= 0 - || screen_h <= 0), false, - "screen_w or screen_h <= 0: [%d, %d]", screen_w, - screen_h); - - Blind_Data *eng_data = (Blind_Data *) data; - - /* Get the data from ecore evas */ - int size = 0; - int *src_data = (int *)ivug_xcapture_screen_data_get(&size, rotation); - ivug_retvm_if(src_data == NULL, false, "screen data is NULL"); - - if (size != screen_h * EFFECT_LBYTES_ARGB8888(screen_w)) { - MSG_EFFECT_ERROR("Screen data size is invalid: %d", size); - - free(src_data); - src_data = NULL; - - return false; - } - - eng_data->bw = screen_w; - eng_data->bh = screen_h / MAX_BLIND_NUM; - - MSG_EFFECT_HIGH("eng_data->bw = %d, eng_data->bh = %d", eng_data->bw, - eng_data->bh); - - int index; - for (index = 0; index < MAX_BLIND_NUM; index++) { - evas_object_del(eng_data->img[index]); - eng_data->img[index] = NULL; - } - - bool ret = __ivug_blind_image_create(eng_data->evas, - eng_data, src_data); - if (ret == false) { - MSG_EFFECT_ERROR("Create effect image failed"); - - free(src_data); - src_data = NULL; - - return false; - } - - free(src_data); - src_data = NULL; - - evas_object_move(eng_data->dst, 0, 0); - - IVUG_FUNC_LEAVE(); - - return true; -} - -static void _ivug_blind_rotation_op(void *data, double frame) -{ - IVUG_FUNC_ENTER(); - - Blind_Data *eng_data = (Blind_Data *) data; - ivug_retm_if(eng_data == NULL, "eng_data is NULL"); - - Blind_Rotation *rotation = &(eng_data->rotation); - - float degree; - - degree = rotation->from + (float)(frame * rotation->to); - - if (!rotation->cw) { - degree *= -1; - } - - MSG_EFFECT_MED("frame = %f, degree = %f", frame, degree); - - int offset = eng_data->bh / 2; - int y; - - Evas_Map *map = NULL; - int index; - for (index = 0; index < MAX_BLIND_NUM; index++) { - map = evas_map_new(DEFAULT_MAP_COUNT); - if (map == NULL) { - MSG_EFFECT_ERROR("Create map failed"); - break; - } - - evas_map_smooth_set(map, EINA_TRUE); - evas_map_util_points_populate_from_object_full(map, - eng_data->img - [index], 0); - - y = index * eng_data->bh + offset; - - evas_map_util_3d_rotate(map, degree, 0, 0, eng_data->bw / 2, y, 0); - evas_map_util_3d_perspective(map, eng_data->bw / 2, y, 0, - DEFAULT_FOCUL_DISTANCE); - - evas_object_map_enable_set(eng_data->img[index], EINA_TRUE); - evas_object_map_set(eng_data->img[index], map); - evas_map_free(map); - } - - IVUG_FUNC_LEAVE(); -} - -static void __ivug_blind_anim(void *data, double percent) -{ -/* IVUG_FUNC_ENTER(); */ - - ivug_retm_if(data == NULL, "data is NULL"); - - Blind_Data *eng_data = (Blind_Data *) data; - - ivug_retm_if((percent < MIN_PERCENT - || percent > MAX_PERCENT), - "Invalide value: percent = [%f]", percent); - - double frame = percent / MAX_PERCENT; - _ivug_blind_rotation_op(eng_data, frame); - -/* IVUG_FUNC_LEAVE(); */ -} - -static void __ivug_blind_pause(void *data) -{ - IVUG_FUNC_ENTER(); - - IVUG_FUNC_LEAVE(); -} - -static void __ivug_blind_resume(void *data) -{ - IVUG_FUNC_ENTER(); - - IVUG_FUNC_LEAVE(); -} - -static void __ivug_blind_finialize(void *data) -{ - IVUG_FUNC_ENTER(); - - ivug_retm_if(data == NULL, "data is NULL"); - - Blind_Data *eng_data = (Blind_Data *) data; - - int index; - for (index = 0; index < MAX_BLIND_NUM; index++) { - evas_object_del(eng_data->img[index]); - eng_data->img[index] = NULL; - } - - free(eng_data); - eng_data = NULL; - - IVUG_FUNC_LEAVE(); -} - -Effect_Engine *ivug_blind_add(void) -{ - Effect_Engine *eng_blind = calloc(1, sizeof(Effect_Engine)); - ivug_retvm_if(eng_blind == NULL, NULL, "calloc failed"); - - eng_blind->func.init = &__ivug_blind_init; - eng_blind->func.set_size = &__ivug_blind_set_size; - eng_blind->func.animate = &__ivug_blind_anim; - eng_blind->func.pause = &__ivug_blind_pause; - eng_blind->func.resume = &__ivug_blind_resume; - eng_blind->func.finalize = &__ivug_blind_finialize; - - return eng_blind; -} diff --git a/slideshow/src/effect/ivug-dissolve.c b/slideshow/src/effect/ivug-dissolve.c deleted file mode 100755 index 552c782..0000000 --- a/slideshow/src/effect/ivug-dissolve.c +++ /dev/null @@ -1,367 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ivug-debug.h" - -#include "ivug-xcapture.h" -#include "ivug-effect.h" - -#define BLOCK_ROW_NUM 20 -#define BLOCK_COL_NUM 12 - -#define DISSOLVE_NUM 240 // 20 * 12 - -const int const DISSOLVE_TABLE[DISSOLVE_NUM] = { - 201, 8, 82, 163, 181, 215, 0, 126, 30, 106, - 162, 122, 216, 18, 99, 70, 223, 89, 22, 191, - 103, 235, 154, 230, 50, 231, 14, 135, 60, 10, - 114, 210, 53, 113, 17, 199, 42, 165, 229, 100, - 97, 45, 125, 34, 15, 64, 48, 202, 150, 80, - 130, 2, 61, 86, 159, 239, 207, 95, 164, 168, - 55, 75, 169, 6, 145, 149, 173, 208, 205, 4, - 124, 13, 116, 194, 198, 175, 94, 176, 81, 144, - 184, 180, 187, 66, 72, 206, 24, 225, 220, 59, - 3, 182, 93, 237, 16, 227, 54, 119, 183, 38, - 101, 107, 21, 23, 143, 186, 233, 28, 213, 52, - 136, 31, 179, 228, 7, 129, 185, 123, 147, 131, - 111, 234, 192, 33, 139, 203, 160, 137, 47, 40, - 141, 172, 65, 157, 43, 88, 218, 44, 83, 62, - 217, 178, 193, 109, 189, 151, 115, 39, 91, 19, - 138, 76, 190, 209, 79, 63, 158, 196, 85, 214, - 56, 152, 108, 27, 222, 46, 156, 177, 105, 37, - 71, 96, 26, 87, 221, 68, 110, 117, 78, 112, - 188, 74, 77, 92, 69, 170, 238, 120, 35, 51, - 211, 146, 11, 148, 58, 5, 174, 41, 161, 84, - 12, 121, 171, 25, 1, 226, 166, 195, 134, 153, - 212, 142, 29, 9, 155, 132, 67, 200, 73, 127, - 197, 232, 140, 224, 104, 167, 90, 102, 57, 204, - 133, 128, 49, 118, 32, 219, 20, 236, 36, 98 -}; - -typedef struct _Dissolve_Data Dissolve_Data; - -struct _Dissolve_Data { - int screen_w; - int screen_h; - - int screen_x; - int screen_y; - - int block_w; /* block width*/ - int block_h; /* block height*/ - - int n_row; /* row number*/ - int n_col; /* col number*/ - - Evas_Object **diss_img; - Evas * evas; - Evas_Object *src; - Evas_Object *dst; -}; - -static bool -__ivug_dissolve_image_create(Evas *evas, Dissolve_Data * eng_data, - int *src_data) -{ - ivug_retvm_if(evas == NULL, false, "Evas is NULL"); - ivug_retvm_if(eng_data == NULL, false, "eng_data is NULL"); - ivug_retvm_if(src_data == NULL, false, "src_data is NULL"); - - ivug_retvm_if((eng_data->block_w <= 0 || eng_data->block_h <= 0), false, - "screen_w or screen_h is: [%d, %d]", eng_data->block_w, - eng_data->block_h); - - ivug_retvm_if((eng_data->n_row <= 0 || eng_data->n_col <= 0), false, - "n_row or n_col is: [%d, %d]", eng_data->n_row, - eng_data->n_col); - - int *psrc = NULL; - Evas_Object *img_obj = NULL; - int *dst_data = NULL; - - int i, j; - int start_pos = 0; - int index; - for (i = 0; i < eng_data->n_row; i++) { - for (j = 0; j < eng_data->n_col; j++) { - img_obj = evas_object_image_filled_add(evas); - evas_object_image_size_set(img_obj, eng_data->block_w, - eng_data->block_h); - - /* Locate at the left-top corner*/ - start_pos = - i * eng_data->screen_w * eng_data->block_h + - j * eng_data->block_w; - psrc = src_data + start_pos; -// MSG_EFFECT_HIGH("start_pos is %d", start_pos); - - /* Set the image data*/ - dst_data = evas_object_image_data_get(img_obj, - EINA_TRUE); - int row = eng_data->block_w; - int col = eng_data->block_h; - - while (col--) { - while (row--) { - *dst_data++ = *psrc++; - } - - row = eng_data->block_w; - psrc += (eng_data->n_col - 1) * row; - } - - evas_object_image_alpha_set(img_obj, EINA_TRUE); - evas_object_resize(img_obj, eng_data->block_w, - eng_data->block_h); - - /* Change the position*/ - int pos_x, pos_y; - pos_x = eng_data->screen_x + j * eng_data->block_w; - pos_y = eng_data->screen_y + i * eng_data->block_h; - -// MSG_EFFECT_HIGH("[pos_x, pos_y] is [%d, %d]\n", pos_x, -// pos_y); - evas_object_move(img_obj, pos_x, pos_y); - evas_object_show(img_obj); - - index = i * eng_data->n_col + j; - eng_data->diss_img[index] = img_obj; - } - } - - return true; -} - -static Effect_Data __ivug_dissolve_init(Evas_Object *src, Evas_Object *dst) -{ - IVUG_FUNC_ENTER(); - - IV_ASSERT(src != NULL); - - Dissolve_Data *eng_data = calloc(1, sizeof(Dissolve_Data)); - if (eng_data == NULL) { - MSG_EFFECT_ERROR("calloc for eng_data failed"); - return NULL; - } - - eng_data->evas = evas_object_evas_get(src); - - eng_data->src = src; - eng_data->dst = dst; - - evas_object_stack_below(dst, src); - evas_object_move(dst, 0, 0); - - /* Need hide the img_object here*/ - evas_object_hide(src); - - IVUG_FUNC_LEAVE(); - - return (Effect_Data)eng_data; -} - -static bool __ivug_dissolve_set_size(void *data, int screen_w, int screen_h, int rotation) -{ - IVUG_FUNC_ENTER(); - - IV_ASSERT(data != NULL); - - ivug_retvm_if((screen_w <= 0 - || screen_h <= 0), false, - "screen_w or screen_h <= 0: [%d, %d]", screen_w, - screen_h); - - MSG_EFFECT_HIGH("[screen_w, screen_h] = [%d, %d]", screen_w, screen_h); - - Dissolve_Data *eng_data = (Dissolve_Data *) data; - - /* Get the data from ecore evas*/ - int size = 0; - char *src_data = ivug_xcapture_screen_data_get(&size, rotation); - ivug_retvm_if(src_data == NULL, false, "screen data is NULL"); - - if (size != screen_h * EFFECT_LBYTES_ARGB8888(screen_w)) { - MSG_EFFECT_ERROR("Screen data size is invalid: %d", size); - - free(src_data); - src_data = NULL; - - return false; - } - - Evas_Coord x, y, w, h; - evas_object_geometry_get(eng_data->src, &x, &y, &w, &h); - eng_data->screen_x = x; - eng_data->screen_y = y; - eng_data->screen_w = w; - eng_data->screen_h = h; - - if(rotation == 0 || rotation == 180) - { - eng_data->n_row = BLOCK_ROW_NUM; - eng_data->n_col = BLOCK_COL_NUM; - } - else - { - eng_data->n_row = BLOCK_COL_NUM; - eng_data->n_col = BLOCK_ROW_NUM; - } - eng_data->block_h = eng_data->screen_h / eng_data->n_row; - eng_data->block_w = eng_data->screen_w / eng_data->n_col; - - MSG_EFFECT_HIGH("[n_row, n_col] is [%d, %d]", eng_data->n_row, - eng_data->n_col); - MSG_EFFECT_HIGH("[block_h, block_w] is [%d, %d]", eng_data->block_h, - eng_data->block_w); - - int block_num = eng_data->n_row * eng_data->n_col; - MSG_EFFECT_HIGH("block_num is %d", block_num); - - int i; - if(eng_data->diss_img != NULL) - { - for (i = 0; i < block_num; i++) { - if (eng_data->diss_img[i]) { - evas_object_del(eng_data->diss_img[i]); - } - eng_data->diss_img[i] = NULL; - } - free(eng_data->diss_img); - } - - eng_data->diss_img = (Evas_Object **)calloc(1, block_num * - sizeof(Evas_Object *)); - - bool ret = __ivug_dissolve_image_create(eng_data->evas, eng_data, - (int *)src_data); - if (!ret) { - MSG_EFFECT_ERROR("Create images failed"); - - free(src_data); - src_data = NULL; - - return false; - } - - free(src_data); - src_data = NULL; - - evas_object_move(eng_data->dst, 0, 0); - - IVUG_FUNC_LEAVE(); - - return true; -} - -static void __ivug_dissolve_image_data_clear(Evas_Object *image) -{ - ivug_retm_if(!image, "image object is NULL"); - - int w, h; - evas_object_image_size_get(image, &w, &h); - ivug_retm_if(w <= 0, "image width is less than 0"); - ivug_retm_if(h <= 0, "image height is less than 0"); - - int *data = evas_object_image_data_get(image, EINA_TRUE); - ivug_retm_if(!data, "data is NULL"); - - int size = w * h; - - memset(data, 0x0, size * sizeof(int)); - evas_object_image_data_update_add(image, 0, 0, w, h); -} - -static void __ivug_dissolve_anim(void *data, double percent) -{ -/* IVUG_FUNC_ENTER();*/ - - Dissolve_Data *eng_data = (Dissolve_Data *) data; - - ivug_retm_if(eng_data == NULL, "data is NULL"); - ivug_retm_if(eng_data->diss_img == NULL, "dissolve image is NULL"); - - int count = (eng_data->n_row * eng_data->n_col) * percent / MAX_PERCENT; - MSG_EFFECT_MED("percent = %f, count = %d", percent, count); - - int i; - for (i = 0; i < count; i++) { - MSG_EFFECT_MED("diss_array[%d] = %d", i, DISSOLVE_TABLE[i]); - __ivug_dissolve_image_data_clear(eng_data-> - diss_img[DISSOLVE_TABLE[i]]); - } - -/* IVUG_FUNC_LEAVE();*/ -} - -static void __ivug_dissolve_pause(void *data) -{ - IVUG_FUNC_ENTER(); - - IVUG_FUNC_LEAVE(); -} - -static void __ivug_dissolve_resume(void *data) -{ - IVUG_FUNC_ENTER(); - - IVUG_FUNC_LEAVE(); -} - -static void __ivug_dissolve_finialize(void *data) -{ - IVUG_FUNC_ENTER(); - - ivug_retm_if(data == NULL, "data is NULL"); - - Dissolve_Data *eng_data = (Dissolve_Data *) data; - - if (eng_data->diss_img) { - int block_num = eng_data->n_row * eng_data->n_col; - int i; - - for (i = 0; i < block_num; i++) { - if (eng_data->diss_img[i]) { - evas_object_del(eng_data->diss_img[i]); - } - - eng_data->diss_img[i] = NULL; - } - - free(eng_data->diss_img); - eng_data->diss_img = NULL; - } - - free(eng_data); - eng_data = NULL; - - IVUG_FUNC_LEAVE(); -} - -Effect_Engine *ivug_dissolve_add(void) -{ - Effect_Engine *eng_dissolve = calloc(1, sizeof(Effect_Engine)); - ivug_retvm_if(eng_dissolve == NULL, NULL, "calloc failed"); - - eng_dissolve->func.init = &__ivug_dissolve_init; - eng_dissolve->func.set_size = &__ivug_dissolve_set_size; - eng_dissolve->func.animate = &__ivug_dissolve_anim; - eng_dissolve->func.pause = &__ivug_dissolve_pause; - eng_dissolve->func.resume = &__ivug_dissolve_resume; - eng_dissolve->func.finalize = &__ivug_dissolve_finialize; - - return eng_dissolve; -} diff --git a/slideshow/src/effect/ivug-effect.c b/slideshow/src/effect/ivug-effect.c index 4fb5e7b..60111d3 100755 --- a/slideshow/src/effect/ivug-effect.c +++ b/slideshow/src/effect/ivug-effect.c @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 "ivug-debug.h" #include "ivug-effect.h" @@ -42,18 +43,18 @@ static const float const EFFECT_SIN_TABLE[SIN_TABLE_NUM] = { 1.0f }; -#define SLIDESHOW_ANI_TIME (1.0f) +#define SLIDESHOW_ANI_TIME (0.7f) static Eina_Bool _on_effect_animator(void *data) { - IV_ASSERT( data != NULL); + IV_ASSERT(data != NULL); Effect_Engine *engine = data; double value = 0.0; - if (update_animation(engine->anim, ecore_loop_time_get() - engine->t_base, &value) == false ) // If last frame + if (update_animation(engine->anim, ecore_loop_time_get() - engine->t_base, &value) == false) // If last frame { engine->animator = NULL; @@ -61,7 +62,7 @@ _on_effect_animator(void *data) engine->func.animate(engine->eng_data, value); // Draw last frame. // Inform to user. - if ( engine->pFinishedCB ) + if (engine->pFinishedCB) { engine->pFinishedCB(engine->ClientData); } @@ -77,7 +78,7 @@ _on_effect_animator(void *data) bool ivug_effect_init(Effect_Engine *engine, Evas_Object *src, Evas_Object *dst) { - IV_ASSERT(engine != NULL ); + IV_ASSERT(engine != NULL); void *data = engine->func.init(src, dst); if (data == NULL) { @@ -94,7 +95,7 @@ bool ivug_effect_init(Effect_Engine *engine, Evas_Object *src, Evas_Object *dst) bool ivug_effect_set_size(Effect_Engine *engine, int w, int h, int rotation) { - IV_ASSERT(engine != NULL ); + IV_ASSERT(engine != NULL); IV_ASSERT(engine->eng_data != NULL); if (engine->func.set_size == NULL) @@ -120,7 +121,7 @@ bool ivug_effect_start(Effect_Engine *engine, FuncFinished pFunc, void *data) double duration = SLIDESHOW_ANI_TIME; - if (engine->func.get_duration ) + if (engine->func.get_duration) { duration = engine->func.get_duration(engine->eng_data); } @@ -155,7 +156,7 @@ bool ivug_effect_finalize(Effect_Engine *engine) { ivug_retvm_if(engine == NULL, false, "engine is NULL"); - if ( engine->animator ) + if (engine->animator) { ecore_animator_del(engine->animator); engine->animator = NULL; @@ -180,7 +181,7 @@ bool ivug_effect_finalize(Effect_Engine *engine) MSG_EFFECT_ERROR("engine->eng_data is NULL"); } - if ( engine->anim ) + if (engine->anim) { delete_animation(engine->anim); } @@ -200,18 +201,6 @@ Effect_Engine *ivug_effect_add(Effect_Type type) eng = ivug_fade_add(); break; - case EFFECT_SPLIT: - eng = ivug_blind_add(); - break; - - case EFFECT_IRIS: - eng = ivug_iris_add(); - break; - - case EFFECT_DISSOLVE: - eng = ivug_dissolve_add(); - break; - case EFFECT_SLIDE: eng = ivug_slide_add(); break; @@ -222,8 +211,7 @@ Effect_Engine *ivug_effect_add(Effect_Type type) break; } - if (eng == NULL) - { + if (eng == NULL) { MSG_EFFECT_ERROR("Cannot create effect enigne. type=%d", type); return NULL; } diff --git a/slideshow/src/effect/ivug-fade.c b/slideshow/src/effect/ivug-fade.c index 8382c5a..0a2b00c 100755 --- a/slideshow/src/effect/ivug-fade.c +++ b/slideshow/src/effect/ivug-fade.c @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 "ivug-debug.h" #include "ivug-effect.h" diff --git a/slideshow/src/effect/ivug-iris.c b/slideshow/src/effect/ivug-iris.c deleted file mode 100755 index b49eee7..0000000 --- a/slideshow/src/effect/ivug-iris.c +++ /dev/null @@ -1,185 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ivug-debug.h" -#include "ivug-effect.h" - - -typedef struct _Iris_Data Iris_Data; - -struct _Iris_Data { - Evas_Object *src; - Evas_Object *dst; - - Evas_Object *orig_cliper; - - Evas_Object *cliper; - - Evas * evas; - - int screen_w; - int screen_h; -}; - -static Effect_Data __ivug_iris_init(Evas_Object *src, Evas_Object *dst) -{ - IVUG_FUNC_ENTER(); - - Iris_Data *eng_data = calloc(1, sizeof(Iris_Data)); - ivug_retvm_if(eng_data == NULL, NULL, "calloc return NULL"); - - eng_data->evas = evas_object_evas_get(src); - //ivug_retvm_if(eng_data->evas == NULL, NULL, "Get evas is NULL"); - if (eng_data->evas == NULL) { - MSG_IVUG_HIGH("evas is null"); - if (eng_data) { - free(eng_data); - eng_data = NULL; - } - return NULL; - } - eng_data->src = src; - eng_data->dst = dst; - - Evas_Object *orig_cliper = evas_object_clip_get(src); - eng_data->orig_cliper = orig_cliper; - - evas_object_stack_below(dst, src); - evas_object_move(dst, 0, 0); - - IVUG_FUNC_LEAVE(); - - return (Effect_Data)eng_data; -} - -static bool __ivug_iris_set_size(void *data, int screen_w, int screen_h, int rotation) -{ - IVUG_FUNC_ENTER(); - - ivug_retvm_if((screen_w <= 0 - || screen_h <= 0), false, - "screen_w or screen_h <= 0: [%d, %d]", screen_w, - screen_h); - - Iris_Data *eng_data = (Iris_Data *) data; - - Evas_Coord x, y, w, h; - evas_object_geometry_get(eng_data->src, &x, &y, &w, &h); - eng_data->screen_w = screen_w; - eng_data->screen_h = screen_h; - - if (eng_data->cliper) { - evas_object_del(eng_data->cliper); - eng_data->cliper = NULL; - } - - Evas_Object *clip = evas_object_rectangle_add(eng_data->evas); - evas_object_resize(clip, screen_w, screen_h); - evas_object_move(clip, x, y); - evas_object_show(clip); - evas_object_clip_set(eng_data->src, clip); - eng_data->cliper = clip; - - evas_object_move(eng_data->dst, 0, 0); - - IVUG_FUNC_LEAVE(); - - return true; - -} - -static void __ivug_iris_anim(void *data, double percent) -{ -/* IVUG_FUNC_ENTER(); */ - - Iris_Data *eng_data = (Iris_Data *) data; - - ivug_retm_if(eng_data == NULL, "data is NULL"); - ivug_retm_if(eng_data->cliper == NULL, "cliper is NULL"); - - int w = eng_data->screen_w; - int h = eng_data->screen_h; - int x, y; - - w = w * (MAX_PERCENT - percent) / MAX_PERCENT; - h = h * (MAX_PERCENT - percent) / MAX_PERCENT; - - x = (eng_data->screen_w - w) / 2; - y = (eng_data->screen_h - h) / 2; - - MSG_EFFECT_MED("percent=%f, [x, y, w, h] = [%d, %d, %d, %d]", percent, x, y, w, h); - - evas_object_resize(eng_data->cliper, w, h); - evas_object_move(eng_data->cliper, x, y); - -/* IVUG_FUNC_LEAVE(); */ -} - -static void __ivug_iris_pause(void *data) -{ - IVUG_FUNC_ENTER(); - - IVUG_FUNC_LEAVE(); -} - -static void __ivug_iris_resume(void *data) -{ - IVUG_FUNC_ENTER(); - - IVUG_FUNC_LEAVE(); -} - -static void __ivug_iris_finialize(void *data) -{ - IVUG_FUNC_ENTER(); - - ivug_retm_if(data == NULL, "data is NULL"); - - Iris_Data *eng_data = (Iris_Data *) data; - - if (eng_data->cliper) { - evas_object_del(eng_data->cliper); - eng_data->cliper = NULL; - } - - if (eng_data->src && eng_data->orig_cliper) { - evas_object_clip_set(eng_data->src, eng_data->orig_cliper); - } - - free(eng_data); - eng_data = NULL; - - IVUG_FUNC_LEAVE(); -} - -Effect_Engine *ivug_iris_add(void) -{ - IVUG_FUNC_ENTER(); - - Effect_Engine *eng_iris = calloc(1, sizeof(Effect_Engine)); - ivug_retvm_if(eng_iris == NULL, NULL, "calloc failed"); - - eng_iris->func.init = &__ivug_iris_init; - eng_iris->func.set_size = &__ivug_iris_set_size; - eng_iris->func.animate = &__ivug_iris_anim; - eng_iris->func.pause = &__ivug_iris_pause; - eng_iris->func.resume = &__ivug_iris_resume; - eng_iris->func.finalize = &__ivug_iris_finialize; - - IVUG_FUNC_LEAVE(); - - return eng_iris; -} diff --git a/slideshow/src/effect/ivug-slide.c b/slideshow/src/effect/ivug-slide.c index 0b0603f..b403690 100755 --- a/slideshow/src/effect/ivug-slide.c +++ b/slideshow/src/effect/ivug-slide.c @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 "ivug-debug.h" #include "ivug-effect.h" @@ -64,12 +65,12 @@ static void _ivug_slide_get_screen_dimension(int *width, int *height) int screen_w = 0; int screen_h = 0; ecore_x_window_size_get(ecore_x_window_root_first_get(), &screen_w, &screen_h); - if(rotation == 0 || rotation == 180) + if (rotation == 0 || rotation == 180) { *width = screen_w; *height = screen_h; } - else if(rotation == 90 || rotation == 270) + else if (rotation == 90 || rotation == 270) { *width = screen_h; *height = screen_w; @@ -88,7 +89,7 @@ static void __ivug_slide_anim(Effect_Data data, double percent) //MSG_EFFECT_HIGH("Slide animation. Value=%d %f", value, percent); - Evas_Coord ow, oh; + Evas_Coord ow; /* * during animation between 2 images, after rotation, 'w' gotten is 0 * it's wrong, so let's use _ivug_slide_get_screen_dimension() to update @@ -97,7 +98,6 @@ static void __ivug_slide_anim(Effect_Data data, double percent) _ivug_slide_get_screen_dimension(&pData->screen_w, &pData->screen_h); ow = pData->screen_w; - oh = pData->screen_h; //MSG_EFFECT_HIGH("in __ivug_slide_anim, pData->screen_w, pData->screen_h is %d, %d\n", ow, oh); //MSG_EFFECT_HIGH("src des pos x is %d, %d\n", value ,oy); //MSG_EFFECT_HIGH("dst des pos x is %d, %d\n", value + ow + IMAGE_BETWEEN_MARGIN ,oy); diff --git a/slideshow/src/effect/ivug-xcapture.c b/slideshow/src/effect/ivug-xcapture.c deleted file mode 100755 index 5f3aa52..0000000 --- a/slideshow/src/effect/ivug-xcapture.c +++ /dev/null @@ -1,338 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ivug-debug.h" - -#define MAX_ERROR_MSG_LEN 256 - -struct xcapture_t { - XImage *xim; - XShmSegmentInfo si; - int size; - Pixmap pix; -}; - -static int __ivug_xcapture_get_window_attribute(Window id, - int *depth, Visual **visual, - int *width, int *height) -{ - IV_ASSERT(id); - XWindowAttributes attr; - - if (!XGetWindowAttributes(ecore_x_display_get(), id, &attr)) { - MSG_EFFECT_ERROR("XGetWindowAttributes failed\n"); - return -1; - } - - if (attr.map_state == IsViewable && attr.class == InputOutput) { - *depth = attr.depth; - *width = attr.width; - *height = attr.height; - *visual = attr.visual; - } - - return 0; -} - -static struct xcapture_t *__ivug_xcapture(unsigned long id) -{ - IV_ASSERT(id); - - struct xcapture_t *handle = NULL; - int depth = 0; - int width = 0; - int height = 0; - Visual *visual = NULL; - char error_msg[MAX_ERROR_MSG_LEN] = { 0, }; - - handle = malloc(sizeof(struct xcapture_t)); - if (!handle) { - MSG_EFFECT_ERROR - ("Failed to allocate memory for __ivug_xcapture\n"); - return NULL; - } - - MSG_EFFECT_MED("Window : 0x%lX\n", id); - if (__ivug_xcapture_get_window_attribute - (id, &depth, &visual, &width, &height) < 0) { - MSG_EFFECT_ERROR("Failed to get the attributes from 0x%x\n", - (unsigned int)id); - free(handle); - return NULL; - } - - MSG_EFFECT_MED("WxH : %dx%d\n", width, height); - MSG_EFFECT_MED("Depth : %d\n", depth >> 3); - - /* NOTE: just add one more depth.... */ - handle->si.shmid = shmget(IPC_PRIVATE, - width * height * ((depth >> 3) + 1), - IPC_CREAT | 0666); - if (handle->si.shmid < 0) { - MSG_EFFECT_ERROR("Failed to get SHM %s\n", - strerror_r(errno, error_msg, - sizeof(error_msg))); - free(handle); - return NULL; - } - - handle->si.readOnly = False; - handle->si.shmaddr = shmat(handle->si.shmid, NULL, 0); - if (handle->si.shmaddr == (char *)-1) { - MSG_EFFECT_ERROR("Failed to attach shm %s\n", - strerror_r(errno, error_msg, - sizeof(error_msg))); - - shmctl(handle->si.shmid, IPC_RMID, 0); - free(handle); - return NULL; - } - - handle->xim = XShmCreateImage(ecore_x_display_get(), visual, depth, - ZPixmap, NULL, &handle->si, width, - height); - if (!handle->xim) { - MSG_EFFECT_ERROR("Failed create an image %s\n", - strerror_r(errno, error_msg, - sizeof(error_msg))); - - shmdt(handle->si.shmaddr); - shmctl(handle->si.shmid, IPC_RMID, 0); - free(handle); - return NULL; - } - - handle->size = handle->xim->bytes_per_line * handle->xim->height; - handle->xim->data = handle->si.shmaddr; - - handle->pix = XCompositeNameWindowPixmap(ecore_x_display_get(), id); - - if (XShmAttach(ecore_x_display_get(), &handle->si) == False) { - MSG_EFFECT_ERROR("Failed to attach\n"); - } - - if (XShmGetImage(ecore_x_display_get(), id, handle->xim, 0, 0, - 0xFFFFFFFF) == False) { - MSG_EFFECT_ERROR("Failed to get image\n"); - } - - XSync(ecore_x_display_get(), False); - return handle; -} - -static void __ivug_xcapture_destroy(struct xcapture_t *handle) -{ - ivug_retm_if(!handle, "handle is NULL"); - - XShmDetach(ecore_x_display_get(), &handle->si); - XFreePixmap(ecore_x_display_get(), handle->pix); - XDestroyImage(handle->xim); - - shmdt(handle->si.shmaddr); - shmctl(handle->si.shmid, IPC_RMID, 0); - - free(handle); -} - -static inline void *__ivug_xcapture_get_data(struct xcapture_t *handle, - int *size) -{ - ivug_retvm_if(!handle, NULL, "handle is NULL"); - - if (size) { - *size = handle->size; - } - - return handle->xim->data; -} - - -static void __ivug_xcapture_data_rotate_180cw(unsigned int **dst, - unsigned int *src, int width, - int height) -{ - ivug_retm_if(!src, "src is NULL"); - - unsigned int *p1, *p2, tmp; - int x, hw; - - /* memcpy */ - *dst = malloc(width * height * sizeof(unsigned int)); - memcpy(*dst, src, width * height * sizeof(unsigned int)); - - /* set width, height */ - hw = width * height; - x = (hw / 2); - p1 = *dst; - p2 = *dst + hw - 1; - for (; --x > 0;) { - tmp = *p1; - *p1 = *p2; - *p2 = tmp; - p1++; - p2--; - } -} - -static void __ivug_xcapture_data_rotate_90cw(unsigned int **dst, - unsigned int *src, int width, - int height) -{ - ivug_retm_if(!src, "src is NULL"); - - unsigned int *to = NULL, *from = NULL; - int x, y, w, hw; - - /* memcpy */ - *dst = malloc(width * height * sizeof(unsigned int)); - memcpy(*dst, src, width * height * sizeof(unsigned int)); - - /* set width, height */ - w = height; - height = width; - width = w; - hw = width * height; - - to = *dst + w - 1; - hw = -hw - 1; - from = src; - - for (x = width; --x >= 0;) { - for (y = height; --y >= 0;) { - *to = *from; - from++; - to += w; - } - - to += hw; - } -} - -static void __ivug_xcapture_data_rotate_270cw(unsigned int **dst, - unsigned int *src, int width, - int height) -{ - ivug_retm_if(!src, "src is NULL"); - - unsigned int *to, *from; - int x, y, w, hw; - - /* memcpy */ - *dst = malloc(width * height * sizeof(unsigned int)); - memcpy(*dst, src, width * height * sizeof(unsigned int)); - - /* set width, height */ - w = height; - height = width; - width = w; - - hw = width * height; - - to = *dst + hw - w; - w = -w; - hw = hw + 1; - from = src; - - for (x = width; --x >= 0;) { - for (y = height; --y >= 0;) { - *to = *from; - from++; - to += w; - } - - to += hw; - } -} - -static char *__ivug_xcapture_data_get(Ecore_X_Window win, int *size, - int rotation) -{ - struct xcapture_t *handle = NULL; - - handle = __ivug_xcapture(win); - if (!handle) { - MSG_EFFECT_ERROR("__ivug_xcapture failed"); - return NULL; - } - - int data_size = 0; - char *image = __ivug_xcapture_get_data(handle, &data_size); - if (!image || data_size == 0) { - MSG_EFFECT_ERROR("__ivug_xcapture_get_data failed"); - - __ivug_xcapture_destroy(handle); - return NULL; - } - - MSG_EFFECT_MED("handle->xim: width = %d, height = %d\n", - handle->xim->width, handle->xim->height); - - /* Free the data when unused */ - int width = 0; - int height = 0; - char *data = NULL; - - width = handle->xim->bytes_per_line / sizeof(int); - height = handle->xim->height; - - if (rotation == 180) { - __ivug_xcapture_data_rotate_180cw((unsigned int **)&data, - (unsigned int *)image, width, - height); - } else if (rotation == 90) { - __ivug_xcapture_data_rotate_90cw((unsigned int **)&data, - (unsigned int *)image, width, - height); - } else if (rotation == 270) { - __ivug_xcapture_data_rotate_270cw((unsigned int **)&data, - (unsigned int *)image, width, - height); - } else { /* all other cases treated as angle 0 */ - - data = (char *)calloc(1, data_size); - memcpy(data, image, data_size); - } - - __ivug_xcapture_destroy(handle); - - if (size) { - *size = data_size; - } - - return data; -} - -char *ivug_xcapture_screen_data_get(int *size, int rotation) -{ - Ecore_X_Window root; - root = ecore_x_window_focus_get(); - - /* Free the memory allocated when unused */ - return __ivug_xcapture_data_get(root, size, rotation); -} diff --git a/slideshow/src/effect/ivug-xcapture.h b/slideshow/src/effect/ivug-xcapture.h deleted file mode 100755 index 27d4368..0000000 --- a/slideshow/src/effect/ivug-xcapture.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 __IVUG_XCAPTURE_H__ -#define __IVUG_XCAPTURE_H__ - -#ifdef __cplusplus -extern "C" { -#endif - - char *ivug_xcapture_screen_data_get(int *size, int rotation); - -#ifdef __cplusplus -} -#endif - -#endif /* __IVUG_XCAPTURE_H__ */ diff --git a/slideshow/src/effect/template.c b/slideshow/src/effect/template.c index e4f1267..5804bbb 100755 --- a/slideshow/src/effect/template.c +++ b/slideshow/src/effect/template.c @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 "ivug-common.h" #include "ivug-effect.h" diff --git a/slideshow/src/include/ivug-slideshow-priv.h b/slideshow/src/include/ivug-slideshow-priv.h index 1390195..7a26044 100755 --- a/slideshow/src/include/ivug-slideshow-priv.h +++ b/slideshow/src/include/ivug-slideshow-priv.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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. +* +*/ #pragma once @@ -26,10 +27,16 @@ */ #include #include +#include +#include +#include "ivug-define.h" #include "ivug-medialist.h" #include "ivug-config.h" #include "ivug-effect.h" +#include "ivug-player.h" + +using namespace std; #define DATA_PATH DATADIR"/"PACKAGE @@ -73,8 +80,22 @@ typedef struct _SlideShow int screen_h; Ecore_Idler *load_idler; + Ecore_X_Window xwin; + Ecore_Event_Handler *focus_in_handler; + Ecore_Event_Handler *focus_out_handler; + Ecore_Event_Handler *visibility_handler; + + Media_Item *cur_item; + GList *face_record_list; + void *dali_viewer_handle; /*3D slidehshow image view handle*/ + Media_Item *downloading_item; /* only used for web image*/ + int xPixmapId; + player_h vmpHandle; /*Used for video and music*/ Slide_Layout sLayout[2]; + Evas_Object *pauseLayout; + Evas_Object *pauseLayout2; + Evas_Object *popup; slide_show_mode ss_mode; /* slide show effect*/ Effect_Type effect_type; @@ -82,5 +103,6 @@ typedef struct _SlideShow slideshow_state_t state; Eina_Bool bSS_StopFlag; /* request slide show stop flag */ bool bMouse_event; + bool bPlayButton; }SlideShow; diff --git a/theme/CMakeLists.txt b/theme/CMakeLists.txt new file mode 100755 index 0000000..42cb797 --- /dev/null +++ b/theme/CMakeLists.txt @@ -0,0 +1,28 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +#PROJECT(ivug-theme) + +SET(IMAGE_BASE "images") +SET(SOUND_BASE "sounds") + + +ADD_CUSTOM_TARGET(theme ALL + COMMAND + edje_cc + -id ${IMAGE_BASE}/naviframe + -id ${IMAGE_BASE}/gengrid + -id ${IMAGE_BASE}/buttons + -id ${IMAGE_BASE}/genlist + -sd ${SOUND_BASE} + -DDEFINE_H=${IVUG_SOURCE_DEFINE_DIR} + ivug-custom.edc + ivug-custom.edj + COMMENT "Compiling edj" + DEPENDS + ivug-custom.edc +) + +ADD_DEPENDENCIES(theme ivug-custom.edj) + +INSTALL(FILES ivug-custom.edj DESTINATION ${CMAKE_INSTALL_PREFIX}/res/edje/${IVUG_PACKAGE_NAME}) + + diff --git a/theme/images/buttons/T01-1_details_icon_close.png b/theme/images/buttons/T01-1_details_icon_close.png new file mode 100755 index 0000000..f5dacd6 Binary files /dev/null and b/theme/images/buttons/T01-1_details_icon_close.png differ diff --git a/theme/images/buttons/T01-1_icon_Edit.png b/theme/images/buttons/T01-1_icon_Edit.png new file mode 100755 index 0000000..4eb173c Binary files /dev/null and b/theme/images/buttons/T01-1_icon_Edit.png differ diff --git a/theme/images/buttons/T01-1_icon_Edit_dim.png b/theme/images/buttons/T01-1_icon_Edit_dim.png new file mode 100755 index 0000000..19155d4 Binary files /dev/null and b/theme/images/buttons/T01-1_icon_Edit_dim.png differ diff --git a/theme/images/buttons/T01-1_icon_Edit_press.png b/theme/images/buttons/T01-1_icon_Edit_press.png new file mode 100755 index 0000000..a73e7b7 Binary files /dev/null and b/theme/images/buttons/T01-1_icon_Edit_press.png differ diff --git a/theme/images/buttons/T01-1_icon_burst_shot_edit.png b/theme/images/buttons/T01-1_icon_burst_shot_edit.png new file mode 100755 index 0000000..b67cde0 Binary files /dev/null and b/theme/images/buttons/T01-1_icon_burst_shot_edit.png differ diff --git a/theme/images/buttons/T01-1_icon_burst_shot_edit_dim.png b/theme/images/buttons/T01-1_icon_burst_shot_edit_dim.png new file mode 100755 index 0000000..eb08a0b Binary files /dev/null and b/theme/images/buttons/T01-1_icon_burst_shot_edit_dim.png differ diff --git a/theme/images/buttons/T01-1_icon_burst_shot_edit_press.png b/theme/images/buttons/T01-1_icon_burst_shot_edit_press.png new file mode 100755 index 0000000..3ec4a81 Binary files /dev/null and b/theme/images/buttons/T01-1_icon_burst_shot_edit_press.png differ diff --git a/theme/images/buttons/T01-1_icon_connection_info.png b/theme/images/buttons/T01-1_icon_connection_info.png new file mode 100755 index 0000000..20320b3 Binary files /dev/null and b/theme/images/buttons/T01-1_icon_connection_info.png differ diff --git a/main/layout/images/theme/blue/T01_title_btn.png b/theme/images/buttons/T01-1_icon_save.png old mode 100644 new mode 100755 similarity index 60% rename from main/layout/images/theme/blue/T01_title_btn.png rename to theme/images/buttons/T01-1_icon_save.png index 20c31f1..fe3e346 Binary files a/main/layout/images/theme/blue/T01_title_btn.png and b/theme/images/buttons/T01-1_icon_save.png differ diff --git a/widget/res/images/scissorbox/T01_CallerID_hold.png b/theme/images/buttons/T01-1_icon_save_press.png old mode 100644 new mode 100755 similarity index 59% rename from widget/res/images/scissorbox/T01_CallerID_hold.png rename to theme/images/buttons/T01-1_icon_save_press.png index b31bc39..0cccc03 Binary files a/widget/res/images/scissorbox/T01_CallerID_hold.png and b/theme/images/buttons/T01-1_icon_save_press.png differ diff --git a/theme/images/buttons/T01_1_icon_Share.png b/theme/images/buttons/T01_1_icon_Share.png new file mode 100755 index 0000000..9562718 Binary files /dev/null and b/theme/images/buttons/T01_1_icon_Share.png differ diff --git a/theme/images/buttons/T01_1_icon_Share_dim.png b/theme/images/buttons/T01_1_icon_Share_dim.png new file mode 100755 index 0000000..5666844 Binary files /dev/null and b/theme/images/buttons/T01_1_icon_Share_dim.png differ diff --git a/theme/images/buttons/T01_1_icon_Share_press.png b/theme/images/buttons/T01_1_icon_Share_press.png new file mode 100755 index 0000000..35b2c13 Binary files /dev/null and b/theme/images/buttons/T01_1_icon_Share_press.png differ diff --git a/theme/images/buttons/T01_1_icon_nearby_Delete.png b/theme/images/buttons/T01_1_icon_nearby_Delete.png new file mode 100755 index 0000000..6690765 Binary files /dev/null and b/theme/images/buttons/T01_1_icon_nearby_Delete.png differ diff --git a/theme/images/buttons/T01_1_icon_nearby_Delete_dim.png b/theme/images/buttons/T01_1_icon_nearby_Delete_dim.png new file mode 100755 index 0000000..a4bab7b Binary files /dev/null and b/theme/images/buttons/T01_1_icon_nearby_Delete_dim.png differ diff --git a/theme/images/buttons/T01_1_icon_nearby_Delete_press.png b/theme/images/buttons/T01_1_icon_nearby_Delete_press.png new file mode 100755 index 0000000..caed24b Binary files /dev/null and b/theme/images/buttons/T01_1_icon_nearby_Delete_press.png differ diff --git a/theme/images/buttons/T01_1_icon_nearby_device.png b/theme/images/buttons/T01_1_icon_nearby_device.png new file mode 100755 index 0000000..c0deaed Binary files /dev/null and b/theme/images/buttons/T01_1_icon_nearby_device.png differ diff --git a/theme/images/buttons/T01_1_icon_nearby_device_dim.png b/theme/images/buttons/T01_1_icon_nearby_device_dim.png new file mode 100755 index 0000000..a0abca1 Binary files /dev/null and b/theme/images/buttons/T01_1_icon_nearby_device_dim.png differ diff --git a/theme/images/buttons/T01_1_icon_nearby_device_press.png b/theme/images/buttons/T01_1_icon_nearby_device_press.png new file mode 100755 index 0000000..56fb01e Binary files /dev/null and b/theme/images/buttons/T01_1_icon_nearby_device_press.png differ diff --git a/theme/images/buttons/T01_1_icon_play.png b/theme/images/buttons/T01_1_icon_play.png new file mode 100755 index 0000000..fd8d7ca Binary files /dev/null and b/theme/images/buttons/T01_1_icon_play.png differ diff --git a/theme/images/buttons/T01_1_icon_play_dim.png b/theme/images/buttons/T01_1_icon_play_dim.png new file mode 100755 index 0000000..9351f58 Binary files /dev/null and b/theme/images/buttons/T01_1_icon_play_dim.png differ diff --git a/theme/images/buttons/T01_1_icon_play_press.png b/theme/images/buttons/T01_1_icon_play_press.png new file mode 100755 index 0000000..ba2395d Binary files /dev/null and b/theme/images/buttons/T01_1_icon_play_press.png differ diff --git a/theme/images/gengrid/00_thumbs_bg_focus.png b/theme/images/gengrid/00_thumbs_bg_focus.png new file mode 100755 index 0000000..eb79c64 Binary files /dev/null and b/theme/images/gengrid/00_thumbs_bg_focus.png differ diff --git a/theme/images/gengrid/00_thumbs_line_bg.png b/theme/images/gengrid/00_thumbs_line_bg.png new file mode 100755 index 0000000..f77edad Binary files /dev/null and b/theme/images/gengrid/00_thumbs_line_bg.png differ diff --git a/theme/images/gengrid/00_thumbs_loading_bg.png b/theme/images/gengrid/00_thumbs_loading_bg.png new file mode 100755 index 0000000..021b5bc Binary files /dev/null and b/theme/images/gengrid/00_thumbs_loading_bg.png differ diff --git a/theme/images/gengrid/T01-1_thumbnail_focus.PNG b/theme/images/gengrid/T01-1_thumbnail_focus.PNG new file mode 100755 index 0000000..33b79d4 Binary files /dev/null and b/theme/images/gengrid/T01-1_thumbnail_focus.PNG differ diff --git a/theme/images/genlist/00_focus.png b/theme/images/genlist/00_focus.png new file mode 100755 index 0000000..b5b4679 Binary files /dev/null and b/theme/images/genlist/00_focus.png differ diff --git a/theme/images/genlist/00_list_group_bg.png b/theme/images/genlist/00_list_group_bg.png new file mode 100755 index 0000000..a925ce4 Binary files /dev/null and b/theme/images/genlist/00_list_group_bg.png differ diff --git a/theme/images/genlist/00_list_group_bg_bottom.png b/theme/images/genlist/00_list_group_bg_bottom.png new file mode 100755 index 0000000..09109f2 Binary files /dev/null and b/theme/images/genlist/00_list_group_bg_bottom.png differ diff --git a/theme/images/genlist/00_list_group_bg_bottom_focus.png b/theme/images/genlist/00_list_group_bg_bottom_focus.png new file mode 100755 index 0000000..8f5de41 Binary files /dev/null and b/theme/images/genlist/00_list_group_bg_bottom_focus.png differ diff --git a/main/layout/images/theme/blue/00_winset_control_top_arrow.png b/theme/images/genlist/00_list_group_bg_bottom_press.png old mode 100644 new mode 100755 similarity index 86% rename from main/layout/images/theme/blue/00_winset_control_top_arrow.png rename to theme/images/genlist/00_list_group_bg_bottom_press.png index 3f2ee50..efc5a41 Binary files a/main/layout/images/theme/blue/00_winset_control_top_arrow.png and b/theme/images/genlist/00_list_group_bg_bottom_press.png differ diff --git a/main/layout/images/theme/blue/00_winset_control_toolbar_bg.png b/theme/images/genlist/00_list_group_bg_center_focus.png old mode 100644 new mode 100755 similarity index 95% rename from main/layout/images/theme/blue/00_winset_control_toolbar_bg.png rename to theme/images/genlist/00_list_group_bg_center_focus.png index 33148b2..4f5e9f4 Binary files a/main/layout/images/theme/blue/00_winset_control_toolbar_bg.png and b/theme/images/genlist/00_list_group_bg_center_focus.png differ diff --git a/theme/images/genlist/00_list_group_bg_press.png b/theme/images/genlist/00_list_group_bg_press.png new file mode 100755 index 0000000..d152cea Binary files /dev/null and b/theme/images/genlist/00_list_group_bg_press.png differ diff --git a/theme/images/genlist/00_list_group_bg_top.png b/theme/images/genlist/00_list_group_bg_top.png new file mode 100755 index 0000000..965403a Binary files /dev/null and b/theme/images/genlist/00_list_group_bg_top.png differ diff --git a/theme/images/genlist/00_list_group_bg_top_focus.png b/theme/images/genlist/00_list_group_bg_top_focus.png new file mode 100755 index 0000000..6c27ae6 Binary files /dev/null and b/theme/images/genlist/00_list_group_bg_top_focus.png differ diff --git a/theme/images/genlist/00_list_group_bg_top_press.png b/theme/images/genlist/00_list_group_bg_top_press.png new file mode 100755 index 0000000..f372bca Binary files /dev/null and b/theme/images/genlist/00_list_group_bg_top_press.png differ diff --git a/main/layout/images/00_zoom_out.png b/theme/images/naviframe/00_badge_bg.png similarity index 62% rename from main/layout/images/00_zoom_out.png rename to theme/images/naviframe/00_badge_bg.png index 03e0e96..15d94a4 100755 Binary files a/main/layout/images/00_zoom_out.png and b/theme/images/naviframe/00_badge_bg.png differ diff --git a/theme/images/naviframe/00_effect_tab_bounce_left.png b/theme/images/naviframe/00_effect_tab_bounce_left.png new file mode 100755 index 0000000..2cbd953 Binary files /dev/null and b/theme/images/naviframe/00_effect_tab_bounce_left.png differ diff --git a/theme/images/naviframe/00_effect_tab_bounce_right.png b/theme/images/naviframe/00_effect_tab_bounce_right.png new file mode 100755 index 0000000..3a24521 Binary files /dev/null and b/theme/images/naviframe/00_effect_tab_bounce_right.png differ diff --git a/theme/images/naviframe/00_effect_tab_press_text_dim_left.png b/theme/images/naviframe/00_effect_tab_press_text_dim_left.png new file mode 100755 index 0000000..ae46f5d Binary files /dev/null and b/theme/images/naviframe/00_effect_tab_press_text_dim_left.png differ diff --git a/theme/images/naviframe/00_effect_tab_press_text_dim_right.png b/theme/images/naviframe/00_effect_tab_press_text_dim_right.png new file mode 100755 index 0000000..f36428f Binary files /dev/null and b/theme/images/naviframe/00_effect_tab_press_text_dim_right.png differ diff --git a/theme/images/naviframe/00_effect_tab_text_dim_left.png b/theme/images/naviframe/00_effect_tab_text_dim_left.png new file mode 100755 index 0000000..61f804b Binary files /dev/null and b/theme/images/naviframe/00_effect_tab_text_dim_left.png differ diff --git a/theme/images/naviframe/00_effect_tab_text_dim_right.png b/theme/images/naviframe/00_effect_tab_text_dim_right.png new file mode 100755 index 0000000..2c890d9 Binary files /dev/null and b/theme/images/naviframe/00_effect_tab_text_dim_right.png differ diff --git a/theme/images/naviframe/00_effect_title_text_dim_left.png b/theme/images/naviframe/00_effect_title_text_dim_left.png new file mode 100755 index 0000000..f973ba0 Binary files /dev/null and b/theme/images/naviframe/00_effect_title_text_dim_left.png differ diff --git a/theme/images/naviframe/00_effect_title_text_dim_right.png b/theme/images/naviframe/00_effect_title_text_dim_right.png new file mode 100755 index 0000000..57f1676 Binary files /dev/null and b/theme/images/naviframe/00_effect_title_text_dim_right.png differ diff --git a/main/layout/images/theme/blue/00_winset_title_line.png b/theme/images/naviframe/00_tab_focus.png old mode 100644 new mode 100755 similarity index 95% rename from main/layout/images/theme/blue/00_winset_title_line.png rename to theme/images/naviframe/00_tab_focus.png index 62c098e..95e1eff Binary files a/main/layout/images/theme/blue/00_winset_title_line.png and b/theme/images/naviframe/00_tab_focus.png differ diff --git a/main/layout/images/theme/blue/00_winset_control_top_bg.png b/theme/images/naviframe/00_tab_press.png old mode 100644 new mode 100755 similarity index 95% rename from main/layout/images/theme/blue/00_winset_control_top_bg.png rename to theme/images/naviframe/00_tab_press.png index 10a24a7..e0c0be7 Binary files a/main/layout/images/theme/blue/00_winset_control_top_bg.png and b/theme/images/naviframe/00_tab_press.png differ diff --git a/main/layout/images/theme/blue/00_winset_title_bg.png b/theme/images/naviframe/00_tab_select_bar.png old mode 100644 new mode 100755 similarity index 95% rename from main/layout/images/theme/blue/00_winset_title_bg.png rename to theme/images/naviframe/00_tab_select_bar.png index edaec4a..baf495f Binary files a/main/layout/images/theme/blue/00_winset_title_bg.png and b/theme/images/naviframe/00_tab_select_bar.png differ diff --git a/theme/images/naviframe/00_title_bg.png b/theme/images/naviframe/00_title_bg.png new file mode 100755 index 0000000..51fc782 Binary files /dev/null and b/theme/images/naviframe/00_title_bg.png differ diff --git a/theme/inc/ivug-theme-white.edc b/theme/inc/ivug-theme-white.edc new file mode 100755 index 0000000..16287de --- /dev/null +++ b/theme/inc/ivug-theme-white.edc @@ -0,0 +1,169 @@ +/* +* Copyright (c) 2000-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. +* +*/ + +// List bg color +#define GENLIST_LIST_BG_COLOR 0 0 0 0 //248 246 239 255 +#define GENLIST_LIST_PRESS_COLOR 87 135 194 255 +#define GENLIST_LIST_DIM_COLOR 219 217 212 255 +#define GENLIST_LIST_LINE1_COLOR 0 0 0 0 +#define GENLIST_LIST_LINE2_COLOR 0 0 0 0 +#define GENLIST_LIST_DIVIDER1_COLOR 185 184 178 255 +#define GENLIST_LIST_DIVIDER2_COLOR 255 255 255 255 +#define GENLIST_LIST_CENTERLINE1_COLOR 206 205 202 255 +#define GENLIST_SELECT_ALL_BG_COLOR 220 218 211 255 + +// Group Index +#define GENLIST_GROUPINDEX_LIST_SIZE 32 +#define GENLIST_GROUPINDEX_LIST_COLOR 59 115 182 255 +#define GENLIST_GROUPINDEX_LIST_FOCUS_COLOR 255 255 255 255 +#define GENLIST_GROUPINDEX_LIST_COLOR_STYLE "#3B73B6FF" +#define GENLIST_GROUPINDEX_LIST_FOCUS_COLOR_STYLE "#FFFFFFFF" + +#define GENLIST_GROUPINDEX_LIST_BG_COLOR 248 246 239 255 +#define GENLIST_GROUPINDEX_LIST_PRESS_COLOR 132 162 198 255 +#define GENLIST_GROUPINDEX_LINE_COLOR 59 115 182 255 +#define GENLIST_GROUPINDEX_LINE_FOCUS_COLOR 255 255 255 255 + +// Genlist Text +#define GENLIST_LIST_MAIN_TEXT_SIZE 32 +#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR 166 166 166 255//0 0 0 255 +#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE "#A6A6A6FF" +#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR 0 0 0 102 +#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE "#00000066" +#define GENLIST_LIST_MAIN_TEXT_READ_COLOR 128 128 128 255 +#define GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR 128 128 128 204 +#define GENLIST_LIST_TEXT_FOCUS_COLOR 255 255 255 255 +#define GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE "#FFFFFFFF" + +#define GENLIST_LIST_SUB_TEXT_SIZE 36 +#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR 255 255 255 255//128 128 128 255 +#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR_STYLE "#FFFFFFFF" +#define GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR 128 128 128 204 +#define GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR_STYLE "#808080CC" +#define GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR 59 115 182 255 +#define GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR_STYLE "#3B73B6FF" +#define GENLIST_LIST_SUB_TEXT_SETTINGS_DIM_COLOR 59 115 182 76 +#define GENLIST_LIST_SUB_TEXT_SETTINGS_DIM_COLOR_STYLE "#3B73B64C" + +#define GENLIST_LIST_SUB_TEXT_02_SIZE 24 +#define GENLIST_LIST_SUB_TEXT_02_COLOR 194 71 71 255 + +#define GENLIST_CONTENTS_TEXT_SIZE 28 +#define GENLIST_CONTENTS_TEXT_COLOR 128 128 128 255 +#define GENLIST_CONTENTS_TEXT_COLOR_STYLE "#808080FF" + +#define GENLIST_LIST_BUBBLE_TEXT_SIZE 32 +#define GENLIST_LIST_BUBBLE_TEXT_COLOR 249 249 249 255 +#define GENLIST_LIST_BUBBLE_TEXT_FOCUS_COLOR 87 135 194 255 +#define GENLIST_LIST_BUBBLE_COLOR 87 135 194 255 +#define GENLIST_LIST_BUBBLE_PRESS_COLOR 255 255 255 255 + +#define GENLIST_PROGRESS_MAIN_TEXT_SIZE 32 + +// Dialogue group +#define GENLIST_DIALOGUE_GROUP_TITLE_SIZE 32 +#define GENLIST_DIALOGUE_GROUP_TITLE_COLOR 255 255 255 255 + +#define GENLIST_APPS_NAME_SIZE 30 +#define GENLIST_APPS_NAME_COLOR 128 128 128 255 +#define GENLIST_APPS_INC_SIZE 30 +#define GENLIST_APPS_INC_COLOR 0 0 0 255 +#define GENLIST_APPS_RATING_SIZE 24 +#define GENLIST_APPS_RATING_COLOR 128 128 128 255 +#define GENLIST_APPS_PRICE_SIZE 24 +#define GENLIST_APPS_PRICE_ORIGINAL_COLOR 59 115 182 255 +#define GENLIST_APPS_PRICE_SALE_COLOR 229 33 52 255 +#define GENLIST_APPS_PRICE_FREE_COLOR 59 115 182 255 + +#define GENLIST_ENTRY_RENAME_COLOR 177 177 177 255 + +#define DIALOGUE_PASSWORD_TITLE_SIZE 32 +#define DIALOGUE_PASSWORD_TITLE_COLOR 128 128 128 255 + +#define GENLIST_DIALOGUE_GROUP_HELP_TEXT_SIZE 32 +#define GENLIST_DIALOGUE_GROUP_HELP_TEXT_COLOR_STYLE "#808080FF" +#define GENLIST_PART_MATCH_TAG_COLOR "+ color=#1382FF" + +#define LAYOUT_INDICATOR_HEIGHT_INC 60 +#define LAYOUT_INDICATOR_COLOR_INC 0 0 0 255 + + +#define NAVIFRAME_TITLE_TEXT_BG_H_INC 88 +#define NAVIFRAME_LANDSCAPE_TITLE_TEXT_BG_H_INC 76 +#define NAVIFRAME_TITLE_BG_IMAGE_BORDER_INC 8 8 2 2 +#define NAVIFRAME_TITLE_H_INC 96 +#define NAVIFRAME_LANDSCAPE_TITLE_H_INC 91 +#define NAVIFRAME_TAB_TITLE_H_INC 165 +#define NAVIFRAME_LANDSCAPE_TAB_TITLE_H_INC 145 +#define NAVIFRAME_TAB_TITLE_H2_INC 126 +#define NAVIFRAME_TOOLBAR_HEIGHT_INC 98 +#define NAVIFRAME_LANDSCAPE_TOOLBAR_HEIGHT_INC 85 +#define NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC 183 96 +#define NAVIFRAME_LANDSCAPE_TITLE_FUNC_BTN_SIZE_INC 183 91 +#define NAVIFRAME_PREV_FUNC_BTN_SIZE_INC 85 98 +#define NAVIFRAME_LANDSCAPE_PREV_FUNC_BTN_SIZE_INC 85 85 +#define NAVIFRAME_TITLE_TAB_H_INC 75 +#define NAVIFRAME_TITLE_TAB_FONT_SIZE_INC 44 +#define NAVIFRAME_LANDSCAPE_TITLE_TAB_FONT_SIZE_INC 38 +#define NAVIFRAME_TITLE_TAB_TEXT_H_INC 90 +#define NAVIFRAME_LANDSCAPE_TITLE_TAB_TEXT_H_INC 70 +#define NAVIFRAME_TITLE_FONT_SIZE_INC 50 +#define NAVIFRAME_TITLE_FONT_MIN_SIZE_INC 46 +#define NAVIFRAME_LANDSCAPE_TITLE_FONT_SIZE_INC 50 +#define NAVIFRAME_TITLE_SMALL_FONT_SIZE_INC 42 +#define NAVIFRAME_LANDSCAPE_TITLE_SMALL_FONT_SIZE_INC 38 +#define NAVIFRAME_ICON_SIZE_INC 45 45 +#define NAVIFRAME_PADDING_INC 26 0 +#define NAVIFRAME_PADDING2_INC 16 0 +#define NAVIFRAME_BADGE_PADDING_INC 94 0 +#define NAVIFRAME_BADGE_LEFT_PADDING_INC 8 0 +#define NAVIFRAME_BADGE_TOP_PADDING_INC 0 10 +#define NAVIFRAME_BADGE_TEXT_LEFT_PADDING_INC 12 54 +#define NAVIFRAME_BADGE_TEXT_H_INC 34 +#define NAVIFRAME_BADGE_TEXT_MIN_W_INC 30 +#define NAVIFRAME_BADGE_BG_IMAGE_SIZE_INC 54 54 +#define NAVIFRAME_BADGE_BG_IMAGE_BORDER_INC 26 26 0 0 +#define NAVIFRAME_TOOLBAR_BUTTON_BG_PADDING_INC 112 0 +#define NAVIFRAME_ICON_PADDING_INC 77 0 +#define NAVIFRAME_TITLE_TEXT_COLOR_INC 250 250 250 255 +#define NAVIFRAME_TITLE_STYLE_COLOR_INC "#FAFAFA" +#define NAVIFRAME_TITLE_TEXT_SHADOW_COLOR_INC 0 0 0 255 +#define NAVIFRAME_TITLE_STYLE_SHADOW_COLOR_INC "#000000" +#define NAVIFRAME_SUBTITLE_TEXT_COLOR_INC 250 250 250 255 +#define NAVIFRAME_SUBTITLE_TEXT_SHADOW_COLOR_INC 0 0 0 255 +#define NAVIFRAME_SUBTITLE_FONT_SIZE_INC 30 +#define NAVIFRAME_LANDSCAPE_SUBTITLE_FONT_SIZE_INC 28 +#define NAVIFRAME_SUBTITLE_H_INC 37 +#define NAVIFRAME_LANDSCAPE_SUBTITLE_H_INC 30 +#define NAVIFRAME_SUBTITLE_TOP_PADDING_H_INC 2 +#define NAVIFRAME_LANDSCAPE_SUBTITLE_TOP_PADDING_H_INC 4 +#define NAVIFRAME_BADGE_TEXT_COLOR_INC 250 250 250 255; +#define NAVIFRAME_TITLE_BUTTON_DIVIDER_COLOR_INC 255 255 255 82 +#define NAVIFRAME_TITLE_TEXT_SLIDE_EFFECT_IMAGE_SIZE_INC 63 27 +#define NAVIFRAME_TITLE_TEXT_SLIDE_EFFECT_IMAGE_BORDER_INC 0 0 13 12 + + +#define GENGRID_FONT_STYLE_18_INC "26" +// #define GENGRID_PART_BG_COLOR_INC 0 0 0 0 +#define GENGRID_PART_BG_COLOR_INC 0 0 0 0 +// #define GENGRID_PART_ITEM_BG_COLOR_INC 239 239 239 255 +#define GENGRID_PART_ITEM_BG_COLOR_INC 0 0 0 255 +#define GENGRID_PART_REORDER_BG_COLOR_INC 0 0 0 128 +#define GENGRID_PART_TEXTBLOCK_STYLE_COLOR_INC "#F9F9F9" + + + diff --git a/theme/ivug-custom.edc b/theme/ivug-custom.edc new file mode 100755 index 0000000..daee8a5 --- /dev/null +++ b/theme/ivug-custom.edc @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2000-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 "./inc/ivug-theme-white.edc" + +collections { + + sounds { + sample { + name: "touch_sound" RAW; + source: "Tizen_Touch.wav"; + } + } + #include "widgets/ivug-naviframe.edc" + #include "widgets/ivug-toolbar.edc" + #include "widgets/ivug-button.edc" + #include "widgets/ivug-selectioninfo.edc" + #include "widgets/genlist/ivug-genlist.edc" + #include "widgets/ivug-gengrid.edc" +} diff --git a/theme/sounds/Tizen_Touch.wav b/theme/sounds/Tizen_Touch.wav new file mode 100755 index 0000000..ef6e6ae Binary files /dev/null and b/theme/sounds/Tizen_Touch.wav differ diff --git a/theme/sounds/button-pressed.wav b/theme/sounds/button-pressed.wav new file mode 100755 index 0000000..99ba74d Binary files /dev/null and b/theme/sounds/button-pressed.wav differ diff --git a/theme/widgets/genlist/genlist_group_index.edc b/theme/widgets/genlist/genlist_group_index.edc new file mode 100755 index 0000000..6a3d71b --- /dev/null +++ b/theme/widgets/genlist/genlist_group_index.edc @@ -0,0 +1,321 @@ +/* +* Copyright (c) 2000-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. +* +*/ + +/* + * vim:ts=3:expandtab +*/ + +#define GROUPINDEX_PADDING_SIZE_LEFT 26 +#define GROUPINDEX_PADDING_SIZE_RIGHT 26 +#define GROUPINDEX_TEXT_HEIGHT 38 +#define GROUPINDEX_ICON_SIZE 64 + + +#define GENLIST_PART_INDEX_BG \ + GENLIST_PART_RECT("bg", \ + description { state: "default" 0.0; \ + color: GENLIST_GROUPINDEX_LIST_BG_COLOR; \ + } \ + description { state: "selected" 0.0; \ + inherit: "default" 0.0; \ + color: GENLIST_GROUPINDEX_LIST_PRESS_COLOR; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + color: GENLIST_GROUPINDEX_LIST_BG_COLOR; \ + } \ + ) + + // group index +#define GENLIST_DESCRIPTION_INDEX_LIST \ + description { state: "selected" 0.0; \ + inherit: "default" 0.0; \ + color: GENLIST_GROUPINDEX_LIST_FOCUS_COLOR; \ + } + + #define GENLIST_DESCRIPTION_INDEX_LIST_TB \ + description { state: "selected" 0.0; \ + inherit: "default" 0.0; \ + text.style: "genlist_style_groupindex_text_focus"; \ + } + +#define GENLIST_PART_INDEX_LINE(LEFT, RIGHT, TOP, BOTTOM) \ + GENLIST_PART_RECT("index_line", \ + GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \ + color: GENLIST_GROUPINDEX_LINE_COLOR; \ + min: 0 4; \ + max: -1 4; \ + ) \ + description { state: "selected" 0.0; \ + inherit: "default" 0.0; \ + color: GENLIST_GROUPINDEX_LINE_FOCUS_COLOR; \ + } \ + ) + +// Group Index +#define GENLIST_PARAM_INDEX_LIST \ + color: GENLIST_GROUPINDEX_LIST_COLOR; \ + text { \ + align: 0 0.5; \ + min: 0 1; \ + font: "Tizen:style=Bold"; \ + size: GENLIST_GROUPINDEX_LIST_SIZE; \ + text_class: "list_item"; \ + } + +// Group Index +#define GENLIST_PARAM_INDEX_LIST_TB \ + text { \ + align: 0 0.5; \ + min: 0 1; \ + style: "genlist_style_groupindex_text"; \ + } + +#define GENLIST_PART_PADDING_GROUPINDEX_LEFT \ + GENLIST_PART_EXPANDED_PAD \ + GENLIST_PART_RECT("elm.padding.left", \ + GENLIST_DESCRIPTION_L("elm.swallow.pad", \ + color: GENLIST_LIST_BG_COLOR; \ + min: GROUPINDEX_PADDING_SIZE_LEFT 0; \ + max: GROUPINDEX_PADDING_SIZE_LEFT -1; \ + fixed: 1 0; \ + ) \ + GENLIST_DESCRIPTION_DECORATE_PADDING \ + GENLIST_DESCRIPTION_REORDER_PADDING \ + GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \ + ) + +#define GENLIST_PART_PADDING_GROUPINDEX_RIGHT \ + GENLIST_PART_RECT("elm.padding.right", \ + description { state: "default" 0.0; \ + color: GENLIST_LIST_BG_COLOR; \ + min: GROUPINDEX_PADDING_SIZE_RIGHT 0; \ + max: GROUPINDEX_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 SLIDING_PER_FPS 1 +#define SLIDING_FPS 60.0 +// 2.1.1 + group { GENLIST_NAME("groupindex/default") + alias: "elm/genlist/item/grouptitle/default"; + alias: "elm/genlist/item_odd/grouptitle/default"; + alias: "elm/genlist/item_compress/grouptitle/default"; + alias: "elm/genlist/item_compress_odd/grouptitle/default"; + alias: "elm/genlist/tree/grouptitle/default"; + alias: "elm/genlist/tree_odd/grouptitle/default"; + alias: "elm/genlist/tree_compress/grouptitle/default"; + alias: "elm/genlist/tree_compress_odd/grouptitle/default"; + GENLIST_PROLOG + + data.item: "texts" "elm.text"; + + script { + public sliding_timer; + public end_timer; + public text_w; + public org_text_w; + + public get_width() { + new x, y, w, h; + get_geometry(PART:"elm.text", x, y, w, h); + set_int(org_text_w, w); + + set_state(PART:"elm.text", "sliding", 0.0); + get_geometry(PART:"elm.text", x, y, w, h); + set_int(text_w, w); + } + public ender(val) { + if (get_int(sliding_timer)) cancel_timer(get_int(sliding_timer)); + set_int(sliding_timer, 0); + if (get_int(end_timer)) cancel_timer(get_int(end_timer)); + set_int(end_timer, 0); + set_state(PART:"elm.text", "default", 0.0); + } + public sliding(val) { + if (val == 0) { + get_width(); + if (get_int(text_w) < get_int(org_text_w)) { + ender(1); + return; + } + } + /* + new buf[128]; + snprintf(buf, 127, "val:%d <= org_w:%d - sliding_w:%d ", + val, get_int(org_text_w), get_int(text_w)); + set_text(PART:"dbg", buf); + */ + custom_state(PART:"elm.text", "sliding", 0.0); + set_state_val(PART:"elm.text", STATE_REL1_OFFSET, val, 0); + set_state_val(PART:"elm.text", STATE_REL2_OFFSET, val, 0); + set_state(PART:"elm.text", "custom", 0.0); + val -= SLIDING_PER_FPS; + + if (val <= -get_int(text_w) + get_int(org_text_w)) { + set_int(end_timer, timer(0.5, "ender", 1)); + } else + set_int(sliding_timer, timer(1.0/SLIDING_FPS, "sliding", val)); + } + } + + parts { + GENLIST_PART_BASE + GENLIST_PART_INDEX_BG + GENLIST_PART_PADDING_TOP_SIZE(20) + GENLIST_PART_PADDING_BOTTOM_SIZE(14) + GENLIST_PART_TEXTBLOCK("elm.text", + GENLIST_DESCRIPTION_LRT("elm.padding.left", "elm.padding.right", "elm.padding.top", + GENLIST_PARAM_INDEX_LIST_TB + min: 0 GROUPINDEX_TEXT_HEIGHT; + fixed: 0 1; + ) + description { state: "sliding" 0.0; + inherit: "default"; + text.min: 1 1; + align: 0 0; + } + GENLIST_DESCRIPTION_INDEX_LIST_TB + ) + GENLIST_PART_INDEX_LINE("elm.padding.left", "elm.padding.right", "elm.text", "elm.padding.bottom") + /* + part { name: "dbg"; + type: TEXT; + description { state: "default" 0.0; + color: 255 0 0 255; + text { + font: "Sans"; + size: 12; + align: 1.0 1.0; + } + } + } + */ + GENLIST_PART_PADDING_GROUPINDEX_LEFT + GENLIST_PART_PADDING_GROUPINDEX_RIGHT + } + program { name: "default"; + signal: "elm,state,default"; + source: "elm"; + script { + ender(1); + set_state(PART:"elm.text", "default", 0.0); + set_state(PART:"index_line", "default", 0.0); + set_state(PART:"bg", "default", 0.0); + } + } + programs { + GENLIST_PROGRAM_DISABLED( target: "elm.text"; target: "index_line"; ) + program { name: "selected"; + signal: "elm,state,selected"; + source: "elm"; + script { + if (!get_int(sliding_timer) && !get_int(end_timer)) { + set_state(PART:"elm.text", "selected", 0.0); + set_state(PART:"index_line", "selected", 0.0); + set_state(PART:"bg", "selected", 0.0); + } + } + } + program { name: "unselected"; + signal: "elm,state,unselected"; + source: "elm"; + script { + if (!get_int(sliding_timer) && !get_int(end_timer)) { + set_state(PART:"elm.text", "default", 0.0); + set_state(PART:"index_line", "default", 0.0); + set_state(PART:"bg", "default", 0.0); + } + } + } + program { name: "slide_start"; + signal: "elm,state,slide,start"; + source: ""; + script { + set_state(PART:"index_line", "default", 0.0); + set_state(PART:"bg", "default", 0.0); + if (!get_int(sliding_timer) && !get_int(end_timer)) { + set_int(sliding_timer, timer(0.01, "sliding", 0)); + } + } + } + program { name: "slide_stop"; + signal: "elm,state,slide,stop"; + source: "elm"; + script { + if (get_int(sliding_timer) && get_int(end_timer)) { + ender(0); + } + } + } + } + } + +//2.1.3 + group { GENLIST_NAME("groupindex.icon/default") + alias: "elm/genlist/item/grouptitle.icon/default"; + alias: "elm/genlist/item_odd/grouptitle.icon/default"; + alias: "elm/genlist/item_compress/grouptitle.icon/default"; + alias: "elm/genlist/item_compress_odd/grouptitle.icon/default"; + alias: "elm/genlist/tree/grouptitle.icon/default"; + alias: "elm/genlist/tree_odd/grouptitle.icon/default"; + alias: "elm/genlist/tree_compress/grouptitle.icon/default"; + alias: "elm/genlist/tree_compress_odd/grouptitle.icon/default"; + GENLIST_PROLOG + + data.item: "texts" "elm.text"; + data.item: "contents" "elm.icon"; + + parts { + GENLIST_PART_BASE + GENLIST_PART_INDEX_BG + GENLIST_PART_PADDING_LEFT_SIZE(GROUPINDEX_PADDING_SIZE_LEFT) + GENLIST_PART_PADDING_RIGHT_SIZE(GROUPINDEX_PADDING_SIZE_RIGHT) + GENLIST_PART_PADDING_TOP_SIZE(6) + GENLIST_PART_PADDING_BOTTOM_SIZE(6) + GENLIST_PART_ICON("elm.icon", + GENLIST_DESCRIPTION_LTB("elm.padding.left", + "elm.padding.top", "elm.padding.bottom", + min: GROUPINDEX_ICON_SIZE GROUPINDEX_ICON_SIZE; + max: GROUPINDEX_ICON_SIZE GROUPINDEX_ICON_SIZE; + fixed: 1 0; + ) + ) + GENLIST_PART_PADDING_L_SIZE("elm.padding.icon.right", "elm.icon", 16) + GENLIST_PART_TEXT("elm.text", + GENLIST_DESCRIPTION_LRT("elm.padding.icon.right", "elm.padding.right", "elm.padding.top", + GENLIST_PARAM_INDEX_LIST + min: 0 GROUPINDEX_TEXT_HEIGHT; + fixed: 0 1; + ) + GENLIST_DESCRIPTION_INDEX_LIST + ) + GENLIST_PART_INDEX_LINE("elm.padding.icon.right", "elm.padding.right", "elm.text", "elm.padding.bottom") + } + programs { + GENLIST_PROGRAM_DISABLED( target: "elm.text"; target: "index_line"; ) + GENLIST_PROGRAM_SELECT( target: "elm.text"; target: "index_line"; target: "bg"; ) + } + } diff --git a/main/layout/genlist/genlist_macro.edc b/theme/widgets/genlist/genlist_macro.edc similarity index 53% rename from main/layout/genlist/genlist_macro.edc rename to theme/widgets/genlist/genlist_macro.edc index fb19c74..1081974 100755 --- a/main/layout/genlist/genlist_macro.edc +++ b/theme/widgets/genlist/genlist_macro.edc @@ -1,39 +1,49 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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. +* +*/ + +/* genlist multisense sample/tone listing */ + sounds { + sample { + name: "button-pressed" RAW; + source: "button-pressed.wav"; + } + } //****************************************************************************// // ******************************* Default size macro **********************// //**************************************************************************// // if size is different for each theme, split it into each theme inc. -#define GENLIST_HEIGHT_1LINE 112 -#define GENLIST_HEIGHT_2LINE_MAIN 54 -#define GENLIST_HEIGHT_2LINE_SUB 42 -#define GENLIST_HEIGHT_3LINE_MAIN 54 -#define GENLIST_HEIGHT_3LINE_SUB1 42 -#define GENLIST_HEIGHT_3LINE_SUB2 38 -#define GENLIST_HEIGHT_MULTILINE_SUB 38 -#define GENLIST_PART_LIST_LINE_HEIGHT 1 +#define GENLIST_HEIGHT_1LINE 110 // (114 - top/bottom padding) +#define GENLIST_HEIGHT_2LINE_MAIN 42 +#define GENLIST_HEIGHT_2LINE_SUB 48 +#define GENLIST_HEIGHT_MULTILINE_SUB 48 +#define GENLIST_PART_LIST_LINE_HEIGHT 0 #define GENLIST_HEIGHT_GROUPTITLE 46 #define GENLIST_PADDING_SIZE_DEFAULT 16 #define GENLIST_PADDING_SIZE_LEFT 26 #define GENLIST_PADDING_SIZE_RIGHT 26 -#define GENLIST_PADDING_SIZE_TOP_2LINE 22 -#define GENLIST_PADDING_SIZE_BOTTOM_2LINE 22 +// Dialogue group image has bottom padding (2piexl), Giant font can overlapped bottom line of image. +#define GENLIST_PADDING_SIZE_TOP 2 +#define GENLIST_PADDING_SIZE_BOTTOM 2 +// ----------------------------------------------------- +#define GENLIST_PADDING_SIZE_TOP_2LINE 0 +#define GENLIST_PADDING_SIZE_BOTTOM_2LINE 26 #define GENLIST_PADDING_SIZE_TOP_3LINE 17 #define GENLIST_PADDING_SIZE_BOTTOM_3LINE 17 #define GENLIST_PADDING_SIZE_NDEPTH 26 @@ -42,18 +52,24 @@ #define DIALOGUE_PADDING_SIZE_LEFT 16+20 #define DIALOGUE_PADDING_SIZE_RIGHT 16+20 -#define GENLIST_ICON_BIG_SIZE 74 -#define GENLIST_ICON_SMALL_SIZE 38 -#define GENLIST_ICON_STAR_SIZE 38 -#define GENLIST_ICON_THUMBNAIL1_SIZE 104 +#define GENLIST_ICON_SMALL_SIZE 45 +#define GENLIST_ICON_STAR_SIZE 45 +#define GENLIST_ICON_MEDIUM_SIZE 72 +#define GENLIST_ICON_LARGE_SIZE 99 + +#define GENLIST_ICON_MEDIUM_MASK_SIZE 84 +#define GENLIST_ICON_LARGE_MASK_SIZE 108 + #define GENLIST_BTN_01_HEIGHT 74 -#define GENLIST_BTN_02_SIZE 74 +#define GENLIST_BTN_02_SIZE 72 #define GENLIST_ICON_ONOFF_WIDTH 132 #define GENLIST_ICON_ONOFF_HEIGHT 70 #define GENLIST_ICON_CHECK_RADIO_SIZE 64 #define GENLIST_ICON_COLORBAR_SIZE 7 #define GENLIST_ICON_PASSWORD_SIZE 82 +#define GENLIST_ICON_ENTRY_SIZE 54 + #define GENLIST_TREESIZE_DEFAULT 26 //#define GENLIST_DIALOGUE_SEPARATOR_DEFAULT_HEIGHT 40 @@ -330,441 +346,808 @@ param\ } -#define GENLIST_DATA_ITEM_NORMAL \ +#define GENLIST_PROLOG \ data.item: "stacking" "above"; \ data.item: "selectraise" "on"; \ - data.item: "flips" "elm.flip.icon elm.flip.content"; \ - data.item: "treesize" GENLIST_TREESIZE_DEFAULT; + 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 elm.flip.eraser"; \ + images { \ + image : "00_list_group_bg.png" COMP; \ + image : "00_list_group_bg_press.png" COMP; \ + } + +#define GENLIST_PROLOG_DIALOGUE \ + GENLIST_PROLOG \ + data.item: "flips" "elm.flip.icon elm.flip.content elm.flip.eraser"; \ + images { \ + image : "00_list_group_bg.png" COMP; \ + image : "00_list_group_bg_press.png" COMP; \ + image : "00_list_group_bg_top.png" COMP; \ + image : "00_list_group_bg_top_press.png" COMP; \ + image : "00_list_group_bg_center.png" COMP; \ + image : "00_list_group_bg_center_press.png" COMP; \ + image : "00_list_group_bg_bottom.png" COMP; \ + image : "00_list_group_bg_bottom_press.png" COMP; \ + image : "00_list_group_bg_top_focus.png" COMP; \ + image : "00_list_group_bg_center_focus.png" COMP; \ + image : "00_list_group_bg_bottom_focus.png" COMP; \ + } + +#define GENLIST_NAME(NAME) \ + name: "elm/genlist/item/"NAME; \ + alias: "elm/genlist/item_odd/"NAME; \ + alias: "elm/genlist/item_compress/"NAME; \ + alias: "elm/genlist/item_compress_odd/"NAME; \ + alias: "elm/genlist/tree/"NAME; \ + alias: "elm/genlist/tree_odd/"NAME; \ + alias: "elm/genlist/tree_compress/"NAME; \ + alias: "elm/genlist/tree_compress_odd/"NAME; \ /*****************************************************************************/ /******************************* Dialogue group ******************************/ /*****************************************************************************/ #define GENLIST_DIALOGUE_INHERIT_BODY( _PARTS ) \ data.item: "treesize" 0; \ - GENLIST_IMAGES_DIALOGUE_BG_IMAGE \ parts { \ - GENLIST_PART_BG_IMAGE_DIALOGUE \ + GENLIST_PART_BG_NORMAL_OFF \ GENLIST_PART_BOTTOM_LINE_OFF \ + GENLIST_PART_BG_DIALOGUE \ GENLIST_PART_PADDING_LEFT_SIZE( DIALOGUE_PADDING_SIZE_LEFT ) \ - GENLIST_PART_PADDING_RIGHT_SIZE_EDIT( DIALOGUE_PADDING_SIZE_RIGHT ) \ + GENLIST_PART_PADDING_RIGHT_EDIT \ _PARTS \ GENLIST_PART_FLIP \ + GENLIST_PART_FOCUS_DIALOGUE \ } -//****************************************************************************// -// ****************************** BG Image **********************************// -//****************************************************************************// -#define GENLIST_IMAGE_GROUPINDEX \ - images { \ - image: "00_index list_bg.png" COMP; \ - } -#define GENLIST_PART_INDEX_BG_IMAGE \ - part { name: "bg_image"; \ - type: RECT; \ - scale: 1; \ - mouse_events: 0; \ - description { state: "default" 0.0; \ - color: GENLIST_GROUPINDEX_LIST_BG_COLOR; \ - } \ - description { state: "selected" 0.0; \ - inherit: "default" 0.0; \ - color: GENLIST_GROUPINDEX_LIST_PRESS_COLOR; \ - } \ - GENLIST_DESCRIPTION_FADEOUT \ - } - -#define GENLIST_PART_BG_IMAGE \ - part { name: "bg_image_clip"; \ - type: RECT; \ - scale: 1; \ - mouse_events: 0; \ - description { state: "default" 0.0; \ - color: 0 0 0 0; \ +#define GENLIST_INHERIT_THUMB_CIRCLE(SIZE_PREFIX, MASK_SIZE, PARENT) \ + images { \ + image: "Content_views/Icon_masking/"SIZE_PREFIX"/00_list_circle_icon_bg_normal.png" COMP; \ + image: "Content_views/Icon_masking/"SIZE_PREFIX"/00_list_circle_icon_bg_press.png" COMP; \ + image: "Content_views/Icon_masking/"SIZE_PREFIX"/00_list_circle_icon_bg_dim.png" COMP; \ + image: "Content_views/Icon_masking/"SIZE_PREFIX"/00_dialogue_circle_icon_bg_normal.png" COMP; \ + image: "Content_views/Icon_masking/"SIZE_PREFIX"/00_dialogue_circle_icon_bg_press.png" COMP; \ + } \ + parts { \ + GENLIST_PART_RECT("elm.thumb.clip", \ + description { state: "default"; \ } \ - description { state: "2depth" 0.0; \ + description { state: "flipped"; \ color: 0 0 0 0; \ } \ - } \ - part { name: "bg_image"; \ - type: RECT; \ - scale: 1; \ + ) \ + GENLIST_PART_IMAGE("elm.thumb", \ + clip_to: "elm.thumb.clip"; \ mouse_events: 0; \ - description { state: "default" 0.0; \ - color: GENLIST_LIST_BG_COLOR; \ - } \ + GENLIST_DESCRIPTION_ENVELOP(PARENT, \ + image.normal: "Content_views/Icon_masking/"SIZE_PREFIX"/00_list_circle_icon_bg_normal.png"; \ + min: MASK_SIZE MASK_SIZE; \ + max: MASK_SIZE MASK_SIZE; \ + fixed:1 1; \ + ) \ description { state: "selected" 0.0; \ - color: GENLIST_LIST_PRESS_COLOR; \ + inherit: "default" 0.0; \ + image.normal: "Content_views/Icon_masking/"SIZE_PREFIX"/00_list_circle_icon_bg_press.png"; \ } \ description { state: "disabled" 0.0; \ - color: GENLIST_LIST_DIM_COLOR; \ - } \ - GENLIST_DESCRIPTION_FADEOUT \ - } - -#define GENLIST_IMAGES_DIALOGUE_BG_IMAGE \ - images { \ - image : "00_list_group_bg.png" COMP; \ - image : "00_list_group_bg_top.png" COMP; \ - image : "00_list_group_bg_center.png" COMP; \ - image : "00_list_group_bg_bottom.png" COMP; \ - image : "00_list_group_bg_press.png" COMP; \ - image : "00_list_group_bg_top_press.png" COMP; \ - image : "00_list_group_bg_center_press.png" COMP; \ - image : "00_list_group_bg_bottom_press.png" COMP; \ - } - -#define GENLIST_PARAM_BG_IMAGE_DIALOGUE \ - rel1 { \ - to_x: "bg_image_left"; \ - relative: 1 0; \ - } \ - rel2 { \ - to_x: "bg_image_right"; \ - relative: 0 1; \ - } - -#define GENLIST_PART_BG_IMAGE_DIALOGUE \ - part { name: "bg_image_clip"; \ - type: RECT; \ - scale: 1; \ - mouse_events: 0; \ - description { state: "default" 0.0; \ - color: 255 255 255 255; \ - } \ - description { state: "2depth" 0.0; \ - color: 220 218 211 255; \ - } \ - } \ - part { name: "bg_image_left"; \ - type: SPACER; \ - scale: 1; \ - mouse_events: 0; \ - description { state: "default" 0.0; \ - min: 16 0; \ - max: 16 -1; \ - fixed: 1 0; \ - align: 0 0.5; \ - rel2.relative: 0 1; \ - } \ - } \ - part { name: "bg_image_right"; \ - type: SPACER; \ - scale: 1; \ - mouse_events: 0; \ - description { state: "default" 0.0; \ - min: 16 0; \ - max: 16 -1; \ - fixed: 1 0; \ - align: 1 0.5; \ - rel1.relative: 1 0; \ - } \ - description { state: "editmode" 0.0; \ inherit: "default" 0.0; \ - min: (GENLIST_PADDING_SIZE_DEFAULT*2+GENLIST_ICON_BIG_SIZE) 0; \ - max: (GENLIST_PADDING_SIZE_DEFAULT*2+GENLIST_ICON_BIG_SIZE) 0; \ - } \ - } \ - part { name: "bg_image"; \ - clip_to: "bg_image_clip"; \ - type: IMAGE; \ - scale: 1; \ - mouse_events: 0; \ - description { state: "default" 0.0; \ - color: 255 255 255 255; \ - GENLIST_PARAM_BG_IMAGE_DIALOGUE \ - image { \ - normal: "00_list_group_bg.png"; \ - border: 14 14 10 10; \ - border_scale: 1; \ - } \ - } \ - description { state: "selected" 0.0; \ - color: 255 255 255 255; \ - GENLIST_PARAM_BG_IMAGE_DIALOGUE \ - image { \ - normal: "00_list_group_bg_press.png"; \ - border: 14 14 10 10; \ - border_scale: 1; \ - } \ - } \ - description { state: "top" 0.0; \ - GENLIST_PARAM_BG_IMAGE_DIALOGUE \ - image { \ - normal: "00_list_group_bg_top.png"; \ - border: 14 14 10 2; \ - border_scale: 1; \ - } \ - } \ - description { state: "top_selected" 0.0; \ - GENLIST_PARAM_BG_IMAGE_DIALOGUE \ - image { \ - normal: "00_list_group_bg_top_press.png"; \ - border: 14 14 10 2; \ - border_scale: 1; \ - } \ + image.normal: "Content_views/Icon_masking/"SIZE_PREFIX"/00_list_circle_icon_bg_dim.png"; \ } \ - description { state: "center" 0.0; \ - GENLIST_PARAM_BG_IMAGE_DIALOGUE \ - image { \ - normal: "00_list_group_bg_center.png"; \ - border: 14 14 2 2; \ - border_scale: 1; \ - } \ + description { state: "reorder" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "Content_views/Icon_masking/"SIZE_PREFIX"/00_dialogue_circle_icon_bg_normal.png"; \ } \ - description { state: "center_selected" 0.0; \ - GENLIST_PARAM_BG_IMAGE_DIALOGUE \ - image { \ - normal: "00_list_group_bg_center_press.png"; \ - border: 14 14 2 2; \ - border_scale: 1; \ - } \ + description { state: "reorder_selected" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "Content_views/Icon_masking/"SIZE_PREFIX"/00_dialogue_circle_icon_bg_press.png"; \ } \ - description { state: "bottom" 0.0; \ - GENLIST_PARAM_BG_IMAGE_DIALOGUE \ - image { \ - normal: "00_list_group_bg_bottom.png"; \ - border: 14 14 2 10; \ - border_scale: 1; \ - } \ + description { state: "reorder_disabled" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "Content_views/Icon_masking/"SIZE_PREFIX"/00_list_circle_icon_bg_dim.png"; \ } \ - description { state: "bottom_selected" 0.0; \ - GENLIST_PARAM_BG_IMAGE_DIALOGUE \ - image { \ - normal: "00_list_group_bg_bottom_press.png"; \ - border: 14 14 2 10; \ - border_scale: 1; \ - } \ + description { state: "decorate" 0.0; \ + inherit: "default" 0.0; \ } \ - description { state: "disabled" 0.0; \ - inherit: "default"; \ - color: 255 255 255 255; \ + description { state: "decorate_reorder" 0.0; \ + inherit: "reorder" 0.0; \ } \ - GENLIST_DESCRIPTION_FADEOUT \ - } + ) \ + GENLIST_PART_FLIP \ + } -//****************************************************************************// -// ****************************** BASE ********************************// -//****************************************************************************// -#define GENLIST_PART_BASE \ - part { name: "base"; \ - type: RECT; \ - repeat_events: 1; \ - scale: 1; \ - description { state: "default" 0.0; \ - align: 0.5 0.5; \ - color: 0 0 0 0; \ +#define GENLIST_INHERIT_THUMB_SQUARE(SIZE_PREFIX, MASK_SIZE, PARENT) \ + images { \ + image: "Content_views/Icon_masking/"SIZE_PREFIX"/00_list_square_icon_bg_normal.png" COMP; \ + image: "Content_views/Icon_masking/"SIZE_PREFIX"/00_list_square_icon_bg_press.png" COMP; \ + image: "Content_views/Icon_masking/"SIZE_PREFIX"/00_list_square_icon_bg_dim.png" COMP; \ + image: "Content_views/Icon_masking/"SIZE_PREFIX"/00_dialogue_square_icon_bg_normal.png" COMP; \ + image: "Content_views/Icon_masking/"SIZE_PREFIX"/00_dialogue_square_icon_bg_press.png" COMP; \ + } \ + parts { \ + GENLIST_PART_RECT("elm.thumb.clip", \ + description { state: "default"; \ } \ - } \ - GENLIST_PART_PERSPECTIVE_POINT - -#define GENLIST_PART_BASE_REORDER \ - part { name: "base"; \ - type: RECT; \ - repeat_events: 1; \ - scale: 1; \ - description { state: "default" 0.0; \ - align: 0.5 0.5; \ + description { state: "flipped"; \ color: 0 0 0 0; \ - rel1 { \ - relative: 1 0; \ - to_x: "reorder.padding.left"; \ - } \ - rel2 { \ - relative: 0 1; \ - to_x: "reorder.padding.right"; \ - } \ } \ - } \ - part { name: "reorder.padding.left"; \ - type: SPACER; \ - scale: 1; \ + ) \ + GENLIST_PART_IMAGE("elm.thumb", \ + clip_to: "elm.thumb.clip"; \ mouse_events: 0; \ - description { state: "default" 0.0; \ - rel2.relative: 0 1; \ - align: 0 0.5; \ - } \ - description { state: "reorder" 0.0; \ + GENLIST_DESCRIPTION_ENVELOP(PARENT, \ + image.normal: "Content_views/Icon_masking/"SIZE_PREFIX"/00_list_square_icon_bg_normal.png"; \ + min: MASK_SIZE MASK_SIZE; \ + max: MASK_SIZE MASK_SIZE; \ + fixed:1 1; \ + ) \ + description { state: "selected" 0.0; \ inherit: "default" 0.0; \ - min: 16 0; \ - max: 16 -1; \ + image.normal: "Content_views/Icon_masking/"SIZE_PREFIX"/00_list_square_icon_bg_press.png"; \ } \ - } \ - part { name: "reorder.padding.right"; \ - type: SPACER; \ - scale: 1; \ - mouse_events: 0; \ - description { state: "default" 0.0; \ - rel1.relative: 1 0; \ - align: 1 0.5; \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "Content_views/Icon_masking/"SIZE_PREFIX"/00_list_square_icon_bg_dim.png"; \ } \ description { state: "reorder" 0.0; \ inherit: "default" 0.0; \ - min: 16 0; \ - max: 16 -1; \ - } \ - } \ - GENLIST_PART_PERSPECTIVE_POINT - -//****************************************************************************// -// ****************************** LINE ********************************// -//****************************************************************************// -#define GENLIST_PART_BOTTOM_LINE \ - part { name: "bottom_line"; \ - type: RECT; \ - scale: 1; \ - mouse_events: 0; \ - 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; \ + image.normal: "Content_views/Icon_masking/"SIZE_PREFIX"/00_dialogue_square_icon_bg_normal.png"; \ } \ - description { state: "reorder" 0.0; \ + description { state: "reorder_selected" 0.0; \ inherit: "default" 0.0; \ - visible: 0; \ + image.normal: "Content_views/Icon_masking/"SIZE_PREFIX"/00_dialogue_square_icon_bg_press.png"; \ } \ - description { state: "selected" 0.0; \ + description { state: "reorder_disabled" 0.0; \ inherit: "default" 0.0; \ - color: GENLIST_LIST_PRESS_COLOR; \ + image.normal: "Content_views/Icon_masking/"SIZE_PREFIX"/00_list_square_icon_bg_dim.png"; \ } \ - description { state: "disabled" 0.0; \ + description { state: "decorate" 0.0; \ inherit: "default" 0.0; \ - color: GENLIST_LIST_DIM_COLOR; \ } \ - GENLIST_DESCRIPTION_FADEOUT \ - } \ - part { name: "bottom_line2"; \ - type: RECT; \ - scale: 1; \ - mouse_events: 0; \ - 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: "elm.padding.left"; \ - rel1.relative: 1 0; \ - rel2.to_x: "elm.padding.right"; \ - rel2.relative: 0 1; \ + description { state: "decorate_reorder" 0.0; \ + inherit: "reorder" 0.0; \ + } \ + ) \ + GENLIST_PART_FLIP \ + } + + +#define GENLIST_INHERIT_THUMB_CIRCLE_DIALOGUE(SIZE_PREFIX, MASK_SIZE, PARENT) \ + images { \ + image: "Content_views/Icon_masking/"SIZE_PREFIX"/00_dialogue_circle_icon_bg_normal.png" COMP; \ + image: "Content_views/Icon_masking/"SIZE_PREFIX"/00_dialogue_circle_icon_bg_press.png" COMP; \ + image: "Content_views/Icon_masking/"SIZE_PREFIX"/00_dialogue_circle_icon_bg_dim.png" COMP; \ + } \ + parts { \ + GENLIST_PART_RECT("elm.thumb.clip", \ + description { state: "default"; \ + } \ + description { state: "flipped"; \ + color: 0 0 0 0; \ } \ + ) \ + GENLIST_PART_IMAGE("elm.thumb", \ + clip_to: "elm.thumb.clip"; \ + mouse_events: 0; \ + GENLIST_DESCRIPTION_ENVELOP(PARENT, \ + image.normal: "Content_views/Icon_masking/"SIZE_PREFIX"/00_dialogue_circle_icon_bg_normal.png"; \ + min: MASK_SIZE MASK_SIZE; \ + max: MASK_SIZE MASK_SIZE; \ + fixed:1 1; \ + ) \ description { state: "selected" 0.0; \ inherit: "default" 0.0; \ - color: GENLIST_LIST_PRESS_COLOR; \ + image.normal: "Content_views/Icon_masking/"SIZE_PREFIX"/00_dialogue_circle_icon_bg_press.png"; \ } \ description { state: "reorder" 0.0; \ inherit: "default" 0.0; \ - visible: 0; \ + image.normal: "Content_views/Icon_masking/"SIZE_PREFIX"/00_dialogue_circle_icon_bg_normal.png"; \ } \ - description { state: "disabled" 0.0; \ + description { state: "reorder_selected" 0.0; \ inherit: "default" 0.0; \ - color: GENLIST_LIST_DIM_COLOR; \ + image.normal: "Content_views/Icon_masking/"SIZE_PREFIX"/00_dialogue_circle_icon_bg_press.png"; \ } \ - GENLIST_DESCRIPTION_FADEOUT \ - } + description { state: "decorate" 0.0; \ + inherit: "default" 0.0; \ + } \ + description { state: "decorate_reorder" 0.0; \ + inherit: "reorder" 0.0; \ + } \ + ) \ + } -#define GENLIST_PART_BOTTOM_LINE_OFF \ - part { name: "bottom_line"; \ - type: RECT; \ - scale: 1; \ +#define GENLIST_INHERIT_THUMB_SQUARE_DIALOGUE(SIZE_PREFIX, MASK_SIZE, PARENT) \ + images { \ + image: "Content_views/Icon_masking/"SIZE_PREFIX"/00_dialogue_square_icon_bg_normal.png" COMP; \ + image: "Content_views/Icon_masking/"SIZE_PREFIX"/00_dialogue_square_icon_bg_press.png" COMP; \ + image: "Content_views/Icon_masking/"SIZE_PREFIX"/00_dialogue_square_icon_bg_dim.png" COMP; \ + } \ + parts { \ + GENLIST_PART_RECT("elm.thumb.clip", \ + description { state: "default"; \ + } \ + description { state: "flipped"; \ + color: 0 0 0 0; \ + } \ + ) \ + GENLIST_PART_IMAGE("elm.thumb", \ + clip_to: "elm.thumb.clip"; \ mouse_events: 0; \ - description { state: "default" 0.0; \ - visible: 0; \ + GENLIST_DESCRIPTION_ENVELOP(PARENT, \ + image.normal: "Content_views/Icon_masking/"SIZE_PREFIX"/00_dialogue_square_icon_bg_normal.png"; \ + min: MASK_SIZE MASK_SIZE; \ + max: MASK_SIZE MASK_SIZE; \ + fixed:1 1; \ + ) \ + description { state: "selected" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "Content_views/Icon_masking/"SIZE_PREFIX"/00_dialogue_square_icon_bg_press.png"; \ } \ description { state: "reorder" 0.0; \ inherit: "default" 0.0; \ - visible: 0; \ + image.normal: "Content_views/Icon_masking/"SIZE_PREFIX"/00_dialogue_square_icon_bg_normal.png"; \ } \ - description { state: "selected" 0.0; \ + description { state: "reorder_selected" 0.0; \ inherit: "default" 0.0; \ - visible: 0; \ + image.normal: "Content_views/Icon_masking/"SIZE_PREFIX"/00_dialogue_square_icon_bg_press.png"; \ } \ - description { state: "disabled" 0.0; \ + description { state: "decorate" 0.0; \ inherit: "default" 0.0; \ - visible: 0; \ } \ - GENLIST_DESCRIPTION_FADEOUT_RECT \ - } \ - part { name: "bottom_line2"; \ - type: RECT; \ - scale: 1; \ - mouse_events: 0; \ - description { state: "default" 0.0; \ - visible: 0; \ + description { state: "decorate_reorder" 0.0; \ + inherit: "reorder" 0.0; \ + } \ + ) \ + } + +#define GENLIST_INHERIT_THUMB_CIRCLE_MEDIUM(PARENT) \ + GENLIST_INHERIT_THUMB_CIRCLE("72x72", GENLIST_ICON_MEDIUM_MASK_SIZE, PARENT) + +#define GENLIST_INHERIT_THUMB_SQUARE_MEDIUM(PARENT) \ + GENLIST_INHERIT_THUMB_SQUARE("72x72", GENLIST_ICON_MEDIUM_MASK_SIZE, PARENT) + +#define GENLIST_INHERIT_THUMB_CIRCLE_LARGE(PARENT) \ + GENLIST_INHERIT_THUMB_CIRCLE("99x99", GENLIST_ICON_LARGE_MASK_SIZE, PARENT) + +#define GENLIST_INHERIT_THUMB_SQUARE_LARGE(PARENT) \ + GENLIST_INHERIT_THUMB_SQUARE("99x99", GENLIST_ICON_LARGE_MASK_SIZE, PARENT) + + +#define GENLIST_INHERIT_THUMB_CIRCLE_MEDIUM_DIALOGUE(PARENT) \ + GENLIST_INHERIT_THUMB_CIRCLE_DIALOGUE("72x72", GENLIST_ICON_MEDIUM_MASK_SIZE, PARENT) + +#define GENLIST_INHERIT_THUMB_SQUARE_MEDIUM_DIALOGUE(PARENT) \ + GENLIST_INHERIT_THUMB_SQUARE_DIALOGUE("72x72", GENLIST_ICON_MEDIUM_MASK_SIZE, PARENT) + +#define GENLIST_INHERIT_THUMB_CIRCLE_LARGE_DIALOGUE(PARENT) \ + GENLIST_INHERIT_THUMB_CIRCLE_DIALOGUE("99x99", GENLIST_ICON_LARGE_MASK_SIZE, PARENT) + +#define GENLIST_INHERIT_THUMB_SQUARE_LARGE_DIALOGUE(PARENT) \ + GENLIST_INHERIT_THUMB_SQUARE_DIALOGUE("99x99", GENLIST_ICON_LARGE_MASK_SIZE, PARENT) + +//****************************************************************************// +// ****************************** BG Image **********************************// +//****************************************************************************// +#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: "00_list_group_bg.png"; \ + border: 17 17 8 8; \ + border_scale: 1; \ + } \ + ) \ + description { state: "selected" 0.0; \ + inherit: "default"; \ + image { \ + normal: "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_BG_NORMAL_OFF \ + GENLIST_PART_RECT("bg_clip", \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + visible: 0; \ + } \ + 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", \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + visible: 0; \ + } \ + description { state: "selected" 0.0; \ + visible: 0; \ + } \ + description { state: "disabled" 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; \ + visible: 0; \ + } \ + description { state: "decorate_reorder" 0.0; \ + visible: 0; \ + } \ + description { state: "decorate" 0.0; \ + visible: 0; \ + } \ + description { state: "reorder_flip" 0.0; \ + visible: 0; \ + } \ + ) \ + GENLIST_PART_IMAGE("bg_reorder", \ + mouse_events: 0; \ + description {state: "default" 0.0;\ + visible: 0;\ + }\ + description { state: "selected" 0.0; {\ + visible: 0; \ + } \ + description { state: "flipped" 0.0; {\ + visible: 0; \ + } \ + ) + +#define GENLIST_PART_BG_DIALOGUE \ + GENLIST_PART_RECT("bg_dialogue_clip", \ + description { state: "default" 0.0; \ + color: 255 255 255 255; \ + } \ + description { state: "2depth" 0.0; \ + color: 220 218 211 255; \ + } \ + ) \ + GENLIST_PART_SPACER("bg_dialogue_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_dialogue_right", \ + description { state: "default" 0.0; \ + min: 16 0; \ + max: 16 -1; \ + fixed: 1 0; \ + align: 1.0 0.5; \ + rel1.relative: 1 0; \ + } \ + description { state: "editmode" 0.0; \ + inherit: "default" 0.0; \ + min: (GENLIST_PADDING_SIZE_DEFAULT*2+GENLIST_ICON_MEDIUM_SIZE) 0; \ + max: (GENLIST_PADDING_SIZE_DEFAULT*2+GENLIST_ICON_MEDIUM_SIZE) 0; \ + } \ + ) \ + GENLIST_PART_IMAGE("bg_dialogue", \ + insert_after: "base"; \ + clip_to: "bg_dialogue_clip"; \ + GENLIST_DESCRIPTION_LR("bg_dialogue_left", "bg_dialogue_right", \ + image { \ + normal: "00_list_group_bg.png"; \ + border: 17 17 8 8; \ + border_scale: 1; \ + } \ + ) \ + description { state: "selected" 0.0; \ + inherit: "default" 0.0; \ + image { \ + normal: "00_list_group_bg_press.png"; \ + border: 17 17 8 8; \ + border_scale: 1; \ + } \ + } \ + description { state: "top" 0.0; \ + inherit: "default" 0.0; \ + image { \ + normal: "00_list_group_bg_top.png"; \ + border: 17 17 8 8; \ + border_scale: 1; \ + } \ + } \ + description { state: "top_selected" 0.0; \ + inherit: "default" 0.0; \ + image { \ + normal: "00_list_group_bg_top_press.png"; \ + border: 17 17 8 8; \ + border_scale: 1; \ + } \ + } \ + description { state: "center" 0.0; \ + inherit: "default" 0.0; \ + image { \ + normal: "00_list_group_bg_center.png"; \ + border: 17 17 8 8; \ + border_scale: 1; \ + } \ + } \ + description { state: "center_selected" 0.0; \ + inherit: "default" 0.0; \ + image { \ + normal: "00_list_group_bg_center_press.png"; \ + border: 17 17 8 8; \ + border_scale: 1; \ + } \ + } \ + description { state: "bottom" 0.0; \ + inherit: "default" 0.0; \ + image { \ + normal: "00_list_group_bg_bottom.png"; \ + border: 17 17 8 8; \ + border_scale: 1; \ + } \ + } \ + description { state: "bottom_selected" 0.0; \ + inherit: "default" 0.0; \ + image { \ + normal: "00_list_group_bg_bottom_press.png"; \ + border: 17 17 8 8; \ + border_scale: 1; \ + } \ + } \ + ) + +//****************************************************************************// +// ****************************** BASE ********************************// +//****************************************************************************// +#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_FOCUS \ + GENLIST_PART_IMAGE("focus_part", \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + visible: 0; \ + image { \ + normal: "00_focus.png"; \ + border: 7 7 7 7; \ + } \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + ) + +#define GENLIST_PART_FOCUS_DIALOGUE \ + GENLIST_PART_IMAGE("focus_part", \ + mouse_events: 0; \ + GENLIST_DESCRIPTION_LR("bg_dialogue_left", "bg_dialogue_right", \ + visible: 0; \ + image { \ + normal: "00_focus.png"; \ + border: 7 7 7 7; \ + } \ + ) \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "top_focused" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + image { \ + normal: "00_list_group_bg_top_focus.png"; \ + border: 7 7 7 7; \ + } \ + } \ + description { state: "center_focused" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + image { \ + normal: "00_list_group_bg_center_focus.png"; \ + border: 7 7 7 7; \ + } \ + } \ + description { state: "bottom_focused" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + image { \ + normal: "00_list_group_bg_bottom_focus.png"; \ + border: 7 7 7 7; \ + } \ + } \ + ) + +//****************************************************************************// +// ****************************** LINE ********************************// +//****************************************************************************// +#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; \ - visible: 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-1; \ + 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: "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; \ + } \ + 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-1; \ + fixed: 0 1; \ + align: 0.5 1; \ + color: GENLIST_LIST_LINE2_COLOR; \ + rel1.to_x: "elm.padding.left"; \ + rel1.relative: 1 0; \ + rel2.to_x: "elm.padding.right"; \ + rel2.relative: 0 1; \ + rel1.offset: -1 -1; \ + } \ + 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; \ + } \ + description { state: "flipped" 0.0; \ + inherit: "default" 0.0; \ visible: 0; \ } \ - GENLIST_DESCRIPTION_FADEOUT_RECT \ - } + ) + +#define GENLIST_PART_BOTTOM_LINE_OFF \ + GENLIST_PART_RECT("bottom_line", \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + description { state: "selected" 0.0; \ + color: 0 0 0 0; \ + } \ + description { state: "disabled" 0.0; \ + color: 0 0 0 0; \ + } \ + description { state: "decorate" 0.0; \ + color: 0 0 0 0; \ + } \ + ) \ + GENLIST_PART_RECT("bottom_line2", \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + description { state: "selected" 0.0; \ + color: 0 0 0 0; \ + } \ + description { state: "disabled" 0.0; \ + color: 0 0 0 0; \ + } \ + description { state: "decorate" 0.0; \ + color: 0 0 0 0; \ + } \ + ) -#define GENLIST_PART_DIVIDER_MARGIN \ +#define GENLIST_PART_DIVIDER_PADDING \ GENLIST_PART_SPACER("elm.padding.divider.top", \ - GENLIST_DESCRIPTION_ENVELOP("base", \ + description { state: "default" 0.0; \ align: 0.5 0; \ min: 0 30; \ max: -1 30; \ fixed: 0 1; \ rel2.relative: 1 0; \ - ) \ + } \ ) \ GENLIST_PART_SPACER("elm.padding.divider.bottom", \ - GENLIST_DESCRIPTION_ENVELOP("base", \ + description { state: "default" 0.0; \ align: 0.5 1; \ min: 0 30; \ max: -1 30; \ fixed: 0 1; \ rel1.relative: 0 1; \ - ) \ + } \ ) \ #define GENLIST_PART_DIVIDER_L(LEFT) \ - GENLIST_PART_DIVIDER_MARGIN \ + GENLIST_PART_DIVIDER_PADDING \ GENLIST_PART_RECT("elm.divider1", \ mouse_events: 0; \ GENLIST_DESCRIPTION_LTB(LEFT, "elm.padding.divider.top", "elm.padding.divider.bottom", \ + align: 0 0.5; \ min: 1 0; \ max: 1 -1; \ fixed: 1 0; \ + rel2.offset: 0 0; \ color: GENLIST_LIST_DIVIDER1_COLOR; \ ) \ - GENLIST_DESCRIPTION_FADEOUT_RECT \ ) \ GENLIST_PART_RECT("elm.divider2", \ mouse_events: 0; \ GENLIST_DESCRIPTION_LTB("elm.divider1", "elm.padding.divider.top", "elm.padding.divider.bottom", \ + align: 0 0.5; \ min: 1 0; \ max: 1 -1; \ fixed: 1 0; \ + rel2.offset: 0 0; \ color: GENLIST_LIST_DIVIDER2_COLOR; \ ) \ - GENLIST_DESCRIPTION_FADEOUT_RECT \ ) #define GENLIST_PART_DIVIDER_R(RIGHT) \ - GENLIST_PART_DIVIDER_MARGIN \ + GENLIST_PART_DIVIDER_PADDING \ GENLIST_PART_RECT("elm.divider1", \ mouse_events: 0; \ GENLIST_DESCRIPTION_RTB("elm.divider2", "elm.padding.divider.top", "elm.padding.divider.bottom", \ min: 1 0; \ max: 1 -1; \ fixed: 1 0; \ + rel1.offset: -1 0;\ color: GENLIST_LIST_DIVIDER1_COLOR; \ ) \ - GENLIST_DESCRIPTION_FADEOUT_RECT \ ) \ GENLIST_PART_RECT("elm.divider2", \ mouse_events: 0; \ @@ -772,9 +1155,9 @@ min: 1 0; \ max: 1 -1; \ fixed: 1 0; \ + rel1.offset: -1 0;\ color: GENLIST_LIST_DIVIDER2_COLOR; \ ) \ - GENLIST_DESCRIPTION_FADEOUT_RECT \ ) #define GENLIST_PART_CENTER_LINE_LT(LEFT, TOP) \ @@ -802,7 +1185,6 @@ fixed: 0 1; \ color: GENLIST_LIST_DIVIDER1_COLOR; \ ) \ - GENLIST_DESCRIPTION_FADEOUT_RECT \ ) \ GENLIST_PART_RECT("center_line2", \ GENLIST_DESCRIPTION_LRT("elm.padding.divider.left", "elm.padding.divider.right", "center_line", \ @@ -811,7 +1193,6 @@ fixed: 0 1; \ color: GENLIST_LIST_DIVIDER2_COLOR; \ ) \ - GENLIST_DESCRIPTION_FADEOUT_RECT \ ) #define GENLIST_PART_COLORBAR \ @@ -834,14 +1215,52 @@ ) \ ) \ GENLIST_PART_ICON("elm.swallow.colorbar", \ - GENLIST_DESCRIPTION_LTB("bg_image", "elm.padding.colorbar.top", "elm.padding.colorbar.bottom", \ + GENLIST_DESCRIPTION_TB("elm.padding.colorbar.top", "elm.padding.colorbar.bottom", \ min: GENLIST_ICON_COLORBAR_SIZE 0; \ max: GENLIST_ICON_COLORBAR_SIZE -1; \ fixed: 1 0; \ + align: 0 0.5; \ rel1.relative: 0 1; \ rel2.relative: 0 0; \ ) \ - GENLIST_DESCRIPTION_FADEOUT \ + ) + +#define GENLIST_PART_COLORBAR_DIALOGUE \ + GENLIST_PART_SPACER("elm.padding.colorbar.top", \ + GENLIST_DESCRIPTION_ENVELOP("base", \ + align: 0.5 0; \ + fixed: 0 1; \ + min: 0 4; \ + max: -1 4; \ + rel2.relative: 1 0; \ + ) \ + ) \ + GENLIST_PART_SPACER("elm.padding.colorbar.bottom", \ + GENLIST_DESCRIPTION_ENVELOP("base", \ + align: 0.5 1; \ + fixed: 0 1; \ + min: 0 4; \ + max: -1 4; \ + rel1.relative: 0 1; \ + ) \ + ) \ + GENLIST_PART_SPACER("elm.padding.colorbar.left", \ + description{ state: "default" 0.0; \ + min: 19 0; \ + max: 19 -1; \ + fixed: 1 0; \ + align: 0 0.5; \ + rel1.to: "base"; \ + rel2.to: "base"; \ + rel2.relative: 0 1; \ + } \ + ) \ + GENLIST_PART_ICON("elm.swallow.colorbar", \ + GENLIST_DESCRIPTION_LTB("elm.padding.colorbar.left","elm.padding.colorbar.top", "elm.padding.colorbar.bottom", \ + min: GENLIST_ICON_COLORBAR_SIZE 0; \ + max: GENLIST_ICON_COLORBAR_SIZE -1; \ + fixed: 1 0; \ + ) \ ) //****************************************************************************// @@ -881,6 +1300,27 @@ } \ ) +#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", \ @@ -889,6 +1329,9 @@ 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_LEFT_SIZE( SIZE ) \ @@ -899,34 +1342,33 @@ max: SIZE -1; \ fixed: 1 0; \ ) \ + GENLIST_DESCRIPTION_DECORATE_PADDING \ + GENLIST_DESCRIPTION_REORDER_PADDING \ + GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \ ) #define GENLIST_PART_EDITBTN \ - part { name: "elm.icon.edit"; \ - type: SWALLOW; \ - scale: 1; \ - GENLIST_DESCRIPTION_R("elm.padding.edit.right", \ - fixed: 1 1; \ - visible: 0; \ - min: GENLIST_ICON_BIG_SIZE GENLIST_ICON_BIG_SIZE; \ - max: GENLIST_ICON_BIG_SIZE GENLIST_ICON_BIG_SIZE; \ - ) \ - description { state: "editmode" 0.0; \ - inherit: "default" 0.0; \ - visible: 1; \ - } \ - } \ - GENLIST_PART_SPACER("elm.padding.edit.right", \ - description { state: "default" 0.0; \ - fixed: 1 0; \ - align: 1.0 0.5; \ - rel1.to: "base"; \ - rel2.to: "base"; \ - rel1.relative: 1 0; \ - min: GENLIST_PADDING_SIZE_RIGHT 0; \ - max: GENLIST_PADDING_SIZE_RIGHT -1; \ - } \ - ) + GENLIST_PART_SPACER("elm.padding.edit.right", \ + description { state: "default" 0.0; \ + fixed: 1 0; \ + align: 1.0 0.5; \ + rel1.relative: 1 0; \ + min: GENLIST_PADDING_SIZE_RIGHT 0; \ + max: GENLIST_PADDING_SIZE_RIGHT -1; \ + } \ + ) \ + GENLIST_PART_ICON("elm.icon.edit", \ + GENLIST_DESCRIPTION_R("elm.padding.edit.right", \ + visible: 0; \ + ) \ + description { state: "editmode" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + fixed: 1 1; \ + min: GENLIST_ICON_MEDIUM_SIZE GENLIST_ICON_MEDIUM_SIZE; \ + max: GENLIST_ICON_MEDIUM_SIZE GENLIST_ICON_MEDIUM_SIZE; \ + } \ + ) #define GENLIST_PART_PADDING_RIGHT \ GENLIST_PART_SPACER("elm.padding.right", \ @@ -939,6 +1381,9 @@ rel2.to: "base"; \ rel1.relative: 1 0; \ } \ + GENLIST_DESCRIPTION_DECORATE_PADDING \ + GENLIST_DESCRIPTION_REORDER_PADDING \ + GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \ ) #define GENLIST_PART_PADDING_RIGHT_SIZE( SIZE ) \ @@ -952,52 +1397,60 @@ rel2.to: "base"; \ rel1.relative: 1 0; \ } \ + GENLIST_DESCRIPTION_DECORATE_PADDING \ + GENLIST_DESCRIPTION_REORDER_PADDING \ + GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \ ) +// FIXME: Use RECT instead of SPACER if this group is used on layout +// for blocking events #define GENLIST_PART_PADDING_RIGHT_EDIT \ GENLIST_PART_SPACER("elm.padding.right", \ + GENLIST_DESCRIPTION_R("elm.padding.right.edit", \ + min: DIALOGUE_PADDING_SIZE_RIGHT 0; \ + max: DIALOGUE_PADDING_SIZE_RIGHT -1; \ + fixed: 1 0; \ + ) \ + GENLIST_DESCRIPTION_DECORATE_PADDING \ + GENLIST_DESCRIPTION_REORDER_PADDING \ + GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \ + ) \ + GENLIST_PART_SPACER("elm.padding.right.edit", \ description { state: "default" 0.0; \ - min: GENLIST_PADDING_SIZE_RIGHT 0; \ - max: GENLIST_PADDING_SIZE_RIGHT -1; \ + min:0 0; \ + max: 0 -1; \ fixed: 1 0; \ align: 1.0 0.5; \ - rel1.to: "base"; \ - rel2.to: "base"; \ rel1.relative: 1 0; \ } \ description { state: "editmode" 0.0; \ inherit: "default" 0.0; \ - min: (DIALOGUE_PADDING_SIZE_RIGHT+GENLIST_ICON_BIG_SIZE+GENLIST_PADDING_SIZE_RIGHT) 0; \ - max: (DIALOGUE_PADDING_SIZE_RIGHT+GENLIST_ICON_BIG_SIZE+GENLIST_PADDING_SIZE_RIGHT) -1; \ + min: (GENLIST_PADDING_SIZE_DEFAULT+GENLIST_ICON_MEDIUM_SIZE) 0; \ + max: (GENLIST_PADDING_SIZE_DEFAULT+GENLIST_ICON_MEDIUM_SIZE) -1; \ } \ ) \ GENLIST_PART_EDITBTN -#define GENLIST_PART_PADDING_RIGHT_SIZE_EDIT( SIZE ) \ - GENLIST_PART_SPACER("elm.padding.right", \ - description { state: "default" 0.0; \ - min: SIZE 0; \ - max: SIZE -1; \ - fixed: 1 0; \ - align: 1.0 0.5; \ +#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"; \ - rel1.relative: 1 0; \ - } \ - description { state: "editmode" 0.0; \ - inherit: "default" 0.0; \ - min: (DIALOGUE_PADDING_SIZE_RIGHT+SIZE+GENLIST_ICON_BIG_SIZE) 0; \ - max: (DIALOGUE_PADDING_SIZE_RIGHT+SIZE+GENLIST_ICON_BIG_SIZE) -1; \ + rel2.relative: 1.0 0.0; \ + align: 0.5 0.0; \ } \ - ) \ - GENLIST_PART_EDITBTN + ) #define GENLIST_PART_PADDING_TOP_2LINE \ GENLIST_PART_SPACER("elm.padding.top", \ description { \ state: "default" 0.0; \ min: 0 GENLIST_PADDING_SIZE_TOP_2LINE; \ - max: -1 GENLIST_PADDING_SIZE_TOP_2LINE; \ + max: -1 GENLIST_PADDING_SIZE_TOP_2LINE-1; \ fixed: 0 1; \ rel1.to: "base"; \ rel2.to: "base"; \ @@ -1020,12 +1473,24 @@ } \ ) +#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_PART_PADDING_BOTTOM_2LINE \ GENLIST_PART_SPACER("elm.padding.bottom", \ description { state: "default" 0.0; \ min: 0 GENLIST_PADDING_SIZE_BOTTOM_2LINE; \ - max: -1 GENLIST_PADDING_SIZE_BOTTOM_2LINE; \ + max: -1 GENLIST_PADDING_SIZE_BOTTOM_2LINE-1; \ fixed: 0 1; \ rel1.to: "base"; \ rel2.to: "base"; \ @@ -1156,166 +1621,12 @@ } \ ) -#define GENLIST_PART_PERSPECTIVE_POINT \ - GENLIST_PART_RECT("point", \ - description { \ - state: "default" 0.0; \ - color: 0 0 0 0; \ - rel1 { relative: 0.0 0.0; } \ - rel2 { relative: 1.0 0.0; } \ - } \ - ) - -#define GENLIST_DESCRIPTION_ROTATE( param_x, param_y, param_z ) \ - description { state: "map_contracted" 0.0; \ - inherit: "default" 0.0; \ - map { \ - perspective: "point"; \ - on: 1; \ - smooth: 1; \ - perspective_on: 1; \ - backface_cull: 1; \ - rotation { \ - center: "point"; \ - x: param_x; \ - y: param_y; \ - z: param_z; \ - } \ - } \ - } \ - description { state: "map_expanded" 0.0; \ - inherit: "default" 0.0; \ - map { \ - perspective: "point"; \ - on: 1; \ - smooth: 1; \ - perspective_on: 1; \ - backface_cull: 1; \ - rotation { \ - center: "point"; \ - x: 0; \ - y: 0; \ - z: 0; \ - } \ - } \ - } \ - description { \ - state: "hide" 0.0; \ - inherit: "default" 0.0; \ - visible: 0; \ - } - -#define GENLIST_PROGRAM_ROTATE( TARGET ) \ - program { name: "map_expand_start"; \ - signal: "flip_item"; \ - action: STATE_SET "map_contracted" 0.0; \ - target: "bg_image"; \ - TARGET \ - after: "map_expanding"; \ - } \ - program { name: "map_expanding"; \ - action: STATE_SET "hide" 0.0; \ - transition: LINEAR 0.2; \ - target: "bg_image"; \ - TARGET \ - after: "map_expand_end"; \ - } \ - program { name: "map_expand_end"; \ - action: STATE_SET "default" 0.0; \ - target: "bg_image"; \ - TARGET \ - } \ - program { name: "map_contract_start"; \ - signal: "elm,state,contract_flip"; \ - action: STATE_SET "map_expanded" 0.0; \ - target: "bg_image"; \ - TARGET \ - after: "map_contracting"; \ - } \ - program { name: "map_contracting"; \ - action: STATE_SET "map_contracted" 0.0; \ - transition: LINEAR 0.3; \ - target: "bg_image"; \ - TARGET \ - after: "map_contract_end"; \ - } \ - program { name: "map_contract_end"; \ - action: STATE_SET "hide" 0.0; \ - target: "bg_image"; \ - TARGET \ - } - -// FIXME: swallow part cannot be fade out ??? -#define GENLIST_DESCRIPTION_FADEOUT_ICON \ - description { state: "fadeout" 0.0; \ - inherit: "default" 0.0; \ - visible: 0; \ - } \ - description { state: "fadein" 0.0; \ - inherit: "default" 0.0; \ - visible: 0; \ - } \ - -#define GENLIST_DESCRIPTION_FADEOUT_RECT \ - description { state: "fadeout" 0.0; \ - inherit: "default" 0.0; \ - color: 0 0 0 50; \ - visible: 0; \ - } \ - description { state: "fadein" 0.0; \ - inherit: "default" 0.0; \ - } \ - -#define GENLIST_DESCRIPTION_FADEOUT \ - description { state: "fadeout" 0.0; \ - inherit: "default" 0.0; \ - color: 255 255 255 50; \ - visible: 0; \ - } \ - description { state: "fadein" 0.0; \ - inherit: "default" 0.0; \ - } \ - -#define GENLIST_PROGRAM_EXPAND_FADE( TARGET ) \ - program { name: "expand"; \ - signal: "flip_item"; \ - action: STATE_SET "2depth" 0.0; \ - target: "bg_image_clip"; \ - after: "expand_start_fade"; \ - } \ - program { name: "expand_start_fade"; \ - action: STATE_SET "fadeout" 0.0; \ - after: "expand_end_fade"; \ - target: "bg_image"; \ - TARGET \ - } \ - program { name: "expand_end_fade"; \ - action: STATE_SET "default" 0.0; \ - transition: DECELERATE 0.3; \ - target: "bg_image"; \ - TARGET \ - } \ - program { name: "contract_fade"; \ - signal: "elm,state,contract_flip"; \ - action: STATE_SET "fadein" 0.0; \ - after: "contract_end_fade"; \ - target: "bg_image"; \ - TARGET \ - } \ - program { name: "contract_end_fade"; \ - action: STATE_SET "fadeout" 0.0; \ - transition: ACCELERATE 0.3; \ - target: "bg_image"; \ - TARGET \ - } - #define GENLIST_PROGRAM_EXPAND_ROOT( TARGET ) \ program { \ name: "go_expanded"; \ signal: "elm,state,expanded"; \ source: "elm"; \ - action: STATE_SET "active" 0.0; \ - target: "bg_image"; \ + action: STATE_SET "expand_opened" 0.0; \ TARGET \ } \ program { \ @@ -1323,105 +1634,77 @@ signal: "elm,state,contracted"; \ source: "elm"; \ action: STATE_SET "default" 0.0; \ - target: "bg_image"; \ TARGET \ } \ - program { \ - name: "show"; \ - signal: "elm,state,show"; \ - action: STATE_SET "default" 0.0; \ - target: "bg_image"; \ - TARGET \ - } \ - program { \ - name: "hide"; \ - signal: "elm,state,hide"; \ - action: STATE_SET "hide" 0.0; \ - target: "bg_image"; \ - TARGET \ - } - -#define GENLIST_PROGRAM_EXPANDABLE( SRC ) \ - program { \ - name: "expand"; \ - signal: "mouse,up,1"; \ - SRC \ - action: SIGNAL_EMIT "elm,action,expand,toggle" "elm"; \ - } \ // 2.2.7 Genlist_Edit mode (Rename) // FIXME: padding is not needed when swallow content is NULL. -// But how can edje kwno existence of swallow content? +// But how can edje know existence of swallow content? #define GENLIST_PART_FLIP \ - part { name: "elm.flip.event_block";\ - type: RECT;\ + GENLIST_PART_RECT("elm.flip.bg", \ mouse_events: 0; \ - repeat_events: 0;\ description { state: "default" 0.0;\ - visible: 0; \ + color: 0 0 0 0;\ } \ - description { state: "flip_enabled" 0.0; \ + description { state: "flipped" 0.0; \ inherit: "default" 0.0; \ - visible: 1; \ + rel2.offset: 0 -3; \ color: GENLIST_LIST_BG_COLOR;\ }\ - }\ - part { name: "elm.flip.padding.left"; \ - type: RECT; \ - scale: 1; \ + ) \ + GENLIST_PART_SPACER("elm.flip.padding.left", \ description { state: "default" 0.0; \ min: 26 0; \ max: 26 -1; \ fixed: 1 0; \ - visible: 0; \ align: 0 0.5; \ - rel1 { \ - relative: 0 0; \ - to: "base"; \ - } \ - rel2 { \ - relative: 0 1; \ - to: "base"; \ - } \ + rel2.relative: 0 1; \ } \ - } \ - part { name: "elm.flip.padding.right"; \ - type: RECT; \ - scale: 1; \ + ) \ + 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.flip.padding.left", "elm.flip.padding.eraser.left", \ + "elm.padding.top", "elm.padding.bottom", \ + visible: 0; \ + aspect: 1 1; \ + ) \ + description { state: "flipped" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + ) \ + GENLIST_PART_PADDING_R("elm.flip.padding.eraser.left", "elm.flip.eraser") \ + GENLIST_PART_ICON("elm.flip.eraser", \ + GENLIST_DESCRIPTION_RTB("elm.flip.padding.icon.left", \ + "elm.padding.top", "elm.padding.bottom", \ + fixed: 1 0; \ visible: 0; \ - align: 1 0.5; \ - rel1 { \ - relative: 1 0; \ - to: "base"; \ - } \ - rel2 { \ - relative: 1 1; \ - to: "base"; \ - } \ - } \ - } \ - part { name: "elm.flip.content"; \ - type: SWALLOW; \ - scale: 1; \ - GENLIST_DESCRIPTION_LR("elm.flip.padding.left", "elm.flip.padding.icon.left", \ - aspect: 1 1; visible: 0; ) \ - description { state: "flip_enabled" 0.0; \ + min: GENLIST_ICON_ENTRY_SIZE GENLIST_ICON_ENTRY_SIZE; \ + max: GENLIST_ICON_ENTRY_SIZE GENLIST_ICON_ENTRY_SIZE; \ + ) \ + description { state: "show" 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_R("elm.flip.padding.right", \ + GENLIST_DESCRIPTION_RTB("elm.flip.padding.right", \ + "elm.padding.top", "elm.padding.bottom", \ visible: 0; \ aspect: 1 1; \ align: 1 0.5; \ - max: 154 74;) \ - description { state: "flip_enabled" 0.0; \ + max: 154 74; \ + ) \ + description { state: "flipped" 0.0; \ inherit: "default" 0.0; \ visible: 1; \ } \ @@ -1435,78 +1718,97 @@ // signal: elm,state,%s,passive // a "check" item named %s went passive // default is passive -#define GENLIST_PROGRAM_DISABLED( TARGET ) \ - program { name: "enabled"; \ - signal: "elm,state,enabled"; \ +#define GENLIST_PROGRAM_DEFAULT( TARGET ) \ + program { name: "default"; \ + signal: "elm,state,default"; \ source: "elm"; \ action: STATE_SET "default" 0.0; \ - target: "bg_image"; \ TARGET \ } \ - program { name: "disabled"; \ - signal: "elm,state,disabled"; \ - source: "elm"; \ - action: STATE_SET "disabled" 0.0; \ - target: "bg_image"; \ - TARGET \ - } -#define GENLIST_PROGRAM_DISABLED_BOTTOMLINE( TARGET ) \ +#define GENLIST_PROGRAM_DISABLED( TARGET ) \ program { name: "enabled"; \ signal: "elm,state,enabled"; \ source: "elm"; \ action: STATE_SET "default" 0.0; \ - target: "bg_image"; \ - target: "bottom_line"; \ - target: "bottom_line2"; \ + target: "base"; \ TARGET \ } \ program { name: "disabled"; \ signal: "elm,state,disabled"; \ source: "elm"; \ action: STATE_SET "disabled" 0.0; \ - target: "bg_image"; \ - target: "bottom_line"; \ - target: "bottom_line2"; \ + target: "base"; \ TARGET \ } -#define GENLIST_PROGRAM_SELECT( TARGET ) \ - program { name: "selected"; \ - signal: "elm,state,selected"; \ - source: "elm"; \ - action: STATE_SET "selected" 0.0; \ - target: "bg_image"; \ - TARGET \ +#define GENLIST_PROGRAM_FOCUS \ + program { name: "focused"; \ + signal: "elm,state,focused"; \ + source: "elm"; \ + action: STATE_SET "focused" 0.0; \ + target: "focus_part"; \ + } \ + program { name: "unfocused"; \ + signal: "elm,state,unfocused"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "focus_part"; \ + } + +#define GENLIST_PROGRAM_FOCUS_DIALOGUE \ + program { name: "focused"; \ + signal: "elm,state,focused"; \ + source: "elm"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"bg_dialogue", st, 30, vl); \ + if (!strcmp(st, "top") || !strcmp(st, "top_selected")) \ + set_state(PART:"focus_part", "top_focused", 0.0); \ + else if (!strcmp(st, "center") || !strcmp(st, "center_selected")) \ + set_state(PART:"focus_part", "center_focused", 0.0); \ + else if (!strcmp(st, "bottom") || !strcmp(st, "bottom_selected")) \ + set_state(PART:"focus_part", "bottom_focused", 0.0); \ + else if (!strcmp(st, "default") || !strcmp(st, "selected")) \ + set_state(PART:"focus_part", "focused", 0.0); \ } \ - program { name: "unselected"; \ - signal: "elm,state,unselected"; \ - source: "elm"; \ - action: STATE_SET "default" 0.0; \ - target: "bg_image"; \ - TARGET \ - transition: LINEAR 0.1; \ - } + } \ + program { name: "unfocused"; \ + signal: "elm,state,unfocused"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "focus_part"; \ + } + +#define GENLIST_PROGRAM_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 "button-pressed" 1.0; \ + } -#define GENLIST_PROGRAM_SELECT_BOTTOMLINE( TARGET ) \ +#define GENLIST_PROGRAM_SELECT( TARGET ) \ program { name: "selected"; \ signal: "elm,state,selected"; \ source: "elm"; \ action: STATE_SET "selected" 0.0; \ - target: "bg_image"; \ - target: "bottom_line"; \ - target: "bottom_line2"; \ TARGET \ } \ program { name: "unselected"; \ signal: "elm,state,unselected"; \ source: "elm"; \ action: STATE_SET "default" 0.0; \ - target: "bg_image"; \ - target: "bottom_line"; \ - target: "bottom_line2"; \ TARGET \ - transition: LINEAR 0.1; \ } #define GENLIST_PROGRAM_SELECT_DIALOGUE( TARGET ) \ @@ -1516,17 +1818,17 @@ script { \ new st[31]; \ new Float:vl; \ - get_state(PART:"bg_image", st, 30, vl); \ + get_state(PART:"bg_dialogue", st, 30, vl); \ if (!strcmp(st, "top")) \ - set_state(PART:"bg_image", "top_selected", 0.0); \ + set_state(PART:"bg_dialogue", "top_selected", 0.0); \ else if (!strcmp(st, "center")) \ - set_state(PART:"bg_image", "center_selected", 0.0); \ + set_state(PART:"bg_dialogue", "center_selected", 0.0); \ else if (!strcmp(st, "bottom")) \ - set_state(PART:"bg_image", "bottom_selected", 0.0); \ - else \ - set_state(PART:"bg_image", "selected", 0.0); \ + set_state(PART:"bg_dialogue", "bottom_selected", 0.0); \ + else if (!strcmp(st, "default")) \ + set_state(PART:"bg_dialogue", "selected", 0.0); \ + run_program(PROGRAM:"target_selected"); \ } \ - after: "target_selected"; \ } \ program { name: "unselected"; \ signal: "elm,state,unselected"; \ @@ -1534,18 +1836,17 @@ script { \ new st[31]; \ new Float:vl; \ - get_state(PART:"bg_image", st, 30, vl); \ + get_state(PART:"bg_dialogue", st, 30, vl); \ if (!strcmp(st, "top_selected")) \ - set_state(PART:"bg_image", "top", 0.0); \ + set_state(PART:"bg_dialogue", "top", 0.0); \ else if (!strcmp(st, "center_selected")) \ - set_state(PART:"bg_image", "center", 0.0); \ + set_state(PART:"bg_dialogue", "center", 0.0); \ else if (!strcmp(st, "bottom_selected")) \ - set_state(PART:"bg_image", "bottom", 0.0); \ - else \ - set_state(PART:"bg_image", "default", 0.0); \ + set_state(PART:"bg_dialogue", "bottom", 0.0); \ + else if (!strcmp(st, "selected")) \ + set_state(PART:"bg_dialogue", "default", 0.0); \ + run_program(PROGRAM:"target_unselected"); \ } \ - transition: LINEAR 0.1; \ - after: "target_unselected"; \ } \ program { name: "target_selected"; \ action: STATE_SET "selected" 0.0; \ @@ -1555,187 +1856,463 @@ action: STATE_SET "default" 0.0; \ TARGET \ }\ + program { name: "bg_default"; \ + signal: "elm,state,default"; \ + source: "*"; \ + action: STATE_SET "default" 0.0; \ + target: "bg_dialogue"; \ + } \ program { name: "bg_top"; \ signal: "elm,state,top"; \ source: "*"; \ action: STATE_SET "top" 0.0; \ - target: "bg_image"; \ + target: "bg_dialogue"; \ } \ program { name: "bg_center"; \ signal: "elm,state,center"; \ source: "*"; \ action: STATE_SET "center" 0.0; \ - target: "bg_image"; \ + target: "bg_dialogue"; \ } \ program { name: "bg_bottom"; \ signal: "elm,state,bottom"; \ source: "*"; \ action: STATE_SET "bottom" 0.0; \ - target: "bg_image"; \ + target: "bg_dialogue"; \ + } + +#define GENLIST_PROGRAM_SELECT_ARROW \ + program { name: "selected_arrow"; \ + signal: "elm,state,selected"; \ + source: "elm"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"arrow", st, 30, vl); \ + if (!strcmp(st, "default")) { \ + set_state(PART:"arrow", "default_press", 0.0); \ + set_state(PART:"arrow_clip", "default_press", 0.0); \ + } \ + else if (!strcmp(st, "expand_opened")) { \ + set_state(PART:"arrow", "expand_opened_press", 0.0); \ + set_state(PART:"arrow_clip", "expand_opened_press", 0.0); \ + } \ + } \ } \ - program { name: "bg_default"; \ - signal: "elm,state,default"; \ - source: "*"; \ + program { name: "unselected_arrow"; \ + signal: "elm,state,unselected"; \ + source: "elm"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"arrow", st, 30, vl); \ + if (!strcmp(st, "default_press")) { \ + set_state(PART:"arrow", "default", 0.0); \ + set_state(PART:"arrow_clip", "default", 0.0); \ + } \ + else if (!strcmp(st, "expand_opened_press")) { \ + set_state(PART:"arrow", "expand_opened", 0.0); \ + set_state(PART:"arrow_clip", "expand_opened", 0.0); \ + } \ + } \ + } + +#define GENLIST_PROGRAM_DECORATE( TARGET ) \ + program { name: "decorate_enabled_effect"; \ + signal: "elm,state,decorate,enabled,effect";\ + source: "elm";\ + action: STATE_SET "decorate" 0.0;\ + TARGET \ + }\ + program { name: "decorate_disabled_effect";\ + signal: "elm,state,decorate,disabled,effect";\ + source: "elm";\ action: STATE_SET "default" 0.0; \ - target: "bg_image"; \ + TARGET \ + }\ + program { name: "decorate_enabled";\ + signal: "elm,state,decorate,enabled";\ + source: "elm";\ + action: STATE_SET "decorate" 0.0;\ + TARGET \ + }\ + program { name: "decorate_disabled";\ + signal: "elm,state,decorate,disabled";\ + source: "elm";\ + action: STATE_SET "default" 0.0;\ + TARGET \ } - #if 0 - program { name: "flip_enabled"; \ - signal: "elm,state,flip,enabled"; \ - source: "elm"; \ - action: STATE_SET "flip_enabled" 0.0; \ - after: "flip_enabled_next"; \ +#define GENLIST_PROGRAM_REORDER( TARGET ) \ + program { name: "reorder_enabled"; \ + signal: "elm,state,reorder,mode_set"; \ + source: "elm"; \ + action: STATE_SET "reorder" 0.0; \ + TARGET \ } \ - after: "flip_disabled_next"; - program { name: "flip_disabled_next"; \ - source: "elm"; \ - action: STATE_SET "default" 0.0; \ - target: "disclip"; \ + program { name: "reorder_disabled"; \ + signal: "elm,state,reorder,mode_unset"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + TARGET \ + } + +#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 \ } - #endif #define GENLIST_PROGRAM_FLIP \ program { name: "flip_enabled"; \ signal: "elm,state,flip,enabled"; \ source: "elm"; \ - action: STATE_SET "flip_enabled" 0.0; \ - target: "elm.flip.event_block"; \ - after: "flip_enabled_next"; \ - } \ - program { name: "flip_enabled_next"; \ - action: STATE_SET "flip_enabled" 0.0; \ 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"; \ - action: STATE_SET "default" 0.0; \ transition: DECELERATE 0.5; \ - target: "elm.flip.event_block"; \ + 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"; \ + } \ + program { \ + signal: "elm,state,eraser,show"; \ + action: STATE_SET "show" 0.0; \ + target: "elm.flip.eraser"; \ + } \ + program { \ + signal: "elm,state,eraser,hide"; \ + action: STATE_SET "default" 0.0; \ + target: "elm.flip.eraser"; \ } #define GENLIST_PROGRAM_FLIP_TARGET( TARGET ) \ - program { name: "flip_enabled"; \ + program { name: "flip_enabled_target"; \ signal: "elm,state,flip,enabled"; \ source: "elm"; \ - action: STATE_SET "flip_enabled" 0.0; \ - transition: DECELERATE 0.5; \ - TARGET; \ + action: STATE_SET "flipped" 0.0; \ + TARGET \ } \ - program { name: "flip_disabled"; \ + program { name: "flip_disabled_target"; \ signal: "elm,state,flip,disabled"; \ source: "elm"; \ action: STATE_SET "default" 0.0; \ - transition: DECELERATE 0.5; \ TARGET \ } -#define GENLIST_PROGRAM_EDITMODE \ - program { name: "edit_enabled"; \ - signal: "elm,state,edit,enabled"; \ - source: "*"; \ - action: STATE_SET "editmode" 0.0; \ - target: "elm.padding.right"; \ - target: "elm.icon.edit"; \ - target: "bg_image_right"; \ +#define GENLIST_PROGRAM_FLIP_EFFECT_TARGET( TARGET ) \ + program { name: "flip_enabled_effect"; \ + signal: "elm,state,flip,enabled"; \ + source: "elm"; \ + transition: DECELERATE 0.5; \ + action: STATE_SET "flipped" 0.0; \ + TARGET \ } \ - program { name: "edit_disabled"; \ - signal: "elm,state,edit,disabled"; \ - source: "*"; \ - action: STATE_SET "editmode" 0.0; \ - target: "elm.padding.right"; \ - target: "elm.icon.edit"; \ - target: "bg_image_right"; \ + program { name: "flip_disabled_effect"; \ + signal: "elm,state,flip,disabled"; \ + source: "elm"; \ + transition: DECELERATE 0.5; \ + action: STATE_SET "default" 0.0; \ + TARGET \ } -#define GENLIST_PROGRAMS_INDEX( TARGET ) \ - programs { \ - GENLIST_PROGRAM_DISABLED( TARGET ) \ - } +#define GENLIST_PROGRAM_EDITMODE \ + program { name: "edit_enabled"; \ + signal: "elm,state,edit,enabled"; \ + source: "*"; \ + action: STATE_SET "editmode" 0.0; \ + target: "elm.padding.right.edit"; \ + target: "elm.icon.edit"; \ + target: "bg_dialogue_right"; \ + } \ + program { name: "edit_disabled"; \ + signal: "elm,state,edit,disabled"; \ + source: "*"; \ + action: STATE_SET "default" 0.0; \ + target: "elm.padding.right.edit"; \ + target: "elm.icon.edit"; \ + target: "bg_dialogue_right"; \ + } + +/***************************************************************************/ +/***************************************************************************/ #define GENLIST_PROGRAMS_NORMAL( TARGET ) \ - programs { \ - GENLIST_PROGRAM_DISABLED_BOTTOMLINE( TARGET ) \ - GENLIST_PROGRAM_SELECT_BOTTOMLINE( TARGET ) \ - GENLIST_PROGRAM_EXPAND_FADE( target: "bottom_line"; target: "bottom_line2"; TARGET ) \ - GENLIST_PROGRAM_FLIP \ - } + programs { \ + GENLIST_PROGRAM_DEFAULT( TARGET \ + 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: "bottom_line"; \ + target: "bottom_line2"; \ + target: "bg_reorder"; \ + ) \ + GENLIST_PROGRAM_FOCUS \ + GENLIST_PROGRAM_SELECT( TARGET \ + target: "bg"; \ + target: "bottom_line"; \ + target: "bottom_line2"; \ + target: "bg_reorder"; \ + ) \ + GENLIST_PROGRAM_SOUND("bg") \ + GENLIST_PROGRAM_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 \ + } // FIXME: inheritance !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1 // if GENLIST_PROGRAM_EXPAND is here, expanda effect is something wrong. // because after can be duplicated when program inheriting. #define GENLIST_PROGRAMS_DIALOGUE( TARGET ) \ - programs { \ - GENLIST_PROGRAM_DISABLED( TARGET ) \ - GENLIST_PROGRAM_SELECT_DIALOGUE( TARGET ) \ - GENLIST_PROGRAM_FLIP \ - GENLIST_PROGRAM_EDITMODE \ - } + programs { \ + GENLIST_PROGRAM_DEFAULT( TARGET \ + target: "bg_dialogue"; \ + target: "bg_dialogue_clip"; \ + target: "elm.padding.left"; \ + target: "elm.padding.right"; \ + ) \ + GENLIST_PROGRAM_DISABLED( TARGET ) \ + GENLIST_PROGRAM_FOCUS_DIALOGUE \ + GENLIST_PROGRAM_SELECT_DIALOGUE( TARGET ) \ + program { name: "bg_color_change"; \ + signal: "bg_color_change"; \ + source: "elm"; \ + action: STATE_SET "2depth" 0.0; \ + target: "bg_dialogue_clip"; \ + } \ + GENLIST_PROGRAM_SOUND("bg_dialogue") \ + GENLIST_PROGRAM_DECORATE_REORDER( "normal", TARGET \ + target: "elm.padding.left"; \ + target: "elm.padding.right"; \ + ) \ + GENLIST_PROGRAM_FLIP \ + GENLIST_PROGRAM_EDITMODE \ + } -#define GENLIST_PROGRAMS_MULTILINE( TARGET ) \ - programs { \ - GENLIST_PROGRAM_DISABLED( TARGET ) \ - GENLIST_PROGRAM_SELECT_DIALOGUE( TARGET ) \ - GENLIST_PROGRAM_FLIP \ - } +#define GENLIST_PROGRAMS_DECORATE_EFFECT( TARGET ) \ + program { name: "decorate_enabled_effect_ef"; \ + signal: "elm,state,decorate,enabled,effect";\ + source: "elm";\ + transition: DECELERATE 0.5;\ + action: STATE_SET "decorate" 0.0;\ + TARGET \ + }\ + program { name: "decorate_disabled_effect_ef";\ + signal: "elm,state,decorate,disabled,effect";\ + source: "elm";\ + transition: ACCELERATE 0.5;\ + action: STATE_SET "default" 0.0;\ + TARGET \ + } \ + program { name: "decorate_enabled_ef";\ + signal: "elm,state,decorate,enabled";\ + source: "elm";\ + action: STATE_SET "decorate" 0.0;\ + TARGET \ + }\ + program { name: "decorate_disabled_ef";\ + signal: "elm,state,decorate,disabled";\ + source: "elm";\ + action: STATE_SET "default" 0.0;\ + TARGET \ + } + +#define GENLIST_PROGRAMS_ENTRY \ + program { \ + signal: "elm,state,eraser,show"; \ + action: STATE_SET "show" 0.0; \ + target: "elm.icon.eraser"; \ + } \ + program { \ + signal: "elm,state,eraser,hide"; \ + action: STATE_SET "default" 0.0; \ + target: "elm.icon.eraser"; \ + } \ + program { \ + signal: "elm,state,rename,show"; \ + action: STATE_SET "default" 0.0; \ + target: "elm.image.rename"; \ + } \ + program { \ + signal: "elm,state,rename,hide"; \ + action: STATE_SET "hide" 0.0; \ + target: "elm.image.rename"; \ + } -#define GENLIST_PROGRAMS_READ_TEXT1( TARGET ) \ +#define GENLIST_PROGRAMS_THUMB \ + GENLIST_PROGRAM_DECORATE_REORDER( "thumb", target: "elm.thumb"; ) \ + GENLIST_PROGRAM_FLIP_TARGET( target: "elm.thumb.clip"; ) \ + program { name: "enabled_thumb"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "base"; \ + target: "elm.thumb"; \ + } \ + program { name: "disabled_thumb"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "base"; \ + target: "elm.thumb"; \ + } \ + program { name: "selected_thumb"; \ + signal: "elm,state,selected"; \ + source: "elm"; \ script { \ - public readed = 0; \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.thumb", st, 30, vl); \ + if (!strcmp(st, "reorder") || !strcmp(st, "decorate_reorder")) \ + set_state(PART:"elm.thumb", "reorder_selected", 0.0); \ + else \ + set_state(PART:"elm.thumb", "selected", 0.0); \ } \ - programs { \ - GENLIST_PROGRAM_DISABLED_BOTTOMLINE( TARGET ) \ - GENLIST_PROGRAM_FLIP \ - program { name: "selected"; \ - signal: "elm,state,selected"; \ - source: "elm"; \ - action: STATE_SET "selected" 0.0; \ - target: "bg_image"; \ - target: "bottom_line"; \ - target: "bottom_line2"; \ - TARGET \ - } \ - program { name: "go_passive_target"; \ - signal: "elm,state,unselected"; \ - source: "elm"; \ - action: STATE_SET "default" 0.0; \ - TARGET \ - after: "go_passive_text1"; \ - } \ - program { name: "go_passive_text1"; \ - transition: LINEAR 0.1; \ - script { \ - set_state(PART:"bg_image", "default", 0.0); \ - set_state(PART:"bottom_line", "default", 0.0); \ - set_state(PART:"bottom_line2", "default", 0.0); \ - if (get_int(readed) == 1) \ - set_state(PART:"elm.text.1", "read", 0.0); \ - else \ - set_state(PART:"elm.text.1", "default", 0.0); \ - } \ - } \ - program { name: "go_read"; \ - signal: "elm,state,read"; \ - source: "*"; \ - script { \ - set_int(readed, 1); \ - set_state(PART:"elm.text.1", "read", 0.0); \ - } \ - } \ - program { name: "go_unread"; \ - signal: "elm,state,unread"; \ - source: "*"; \ - script { \ - set_int(readed, 0); \ - set_state(PART:"elm.text.1", "default", 0.0); \ - } \ - } \ - } + } \ + program { name: "unselected_thumb"; \ + signal: "elm,state,unselected"; \ + source: "elm"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.thumb", st, 30, vl); \ + if (!strcmp(st, "reorder_selected")) \ + set_state(PART:"elm.thumb", "reorder", 0.0); \ + else \ + set_state(PART:"elm.thumb", "default", 0.0); \ + } \ + } //****************************************************************************// // ******************************* Icon Part ******************************// @@ -1745,12 +2322,11 @@ scale: 1; \ type: SWALLOW; \ DESCRIPION \ - GENLIST_DESCRIPTION_FADEOUT_ICON \ } #define GENLIST_PARAM_ICON_BIG \ - min: GENLIST_ICON_BIG_SIZE GENLIST_ICON_BIG_SIZE; \ - max: GENLIST_ICON_BIG_SIZE GENLIST_ICON_BIG_SIZE; + min: GENLIST_ICON_MEDIUM_SIZE GENLIST_ICON_MEDIUM_SIZE; \ + max: GENLIST_ICON_MEDIUM_SIZE GENLIST_ICON_MEDIUM_SIZE; #define GENLIST_PARAM_ICON_SMALL \ min: GENLIST_ICON_SMALL_SIZE GENLIST_ICON_SMALL_SIZE; \ @@ -1758,7 +2334,7 @@ #define GENLIST_PARAM_ICON_BTN_01 \ min: 0 GENLIST_BTN_01_HEIGHT; \ - max: 0 GENLIST_BTN_01_HEIGHT; + max: -1 GENLIST_BTN_01_HEIGHT; #define GENLIST_PARAM_ICON_BTN_02 \ min: GENLIST_BTN_02_SIZE GENLIST_BTN_02_SIZE; \ @@ -1769,8 +2345,8 @@ max: GENLIST_ICON_ONOFF_WIDTH GENLIST_ICON_ONOFF_HEIGHT; #define GENLIST_PARAM_ICON_THUMBNAIL1\ - min: GENLIST_ICON_THUMBNAIL1_SIZE GENLIST_ICON_THUMBNAIL1_SIZE; \ - max: GENLIST_ICON_THUMBNAIL1_SIZE GENLIST_ICON_THUMBNAIL1_SIZE; + min: GENLIST_ICON_LARGE_SIZE GENLIST_ICON_LARGE_SIZE; \ + max: GENLIST_ICON_LARGE_SIZE GENLIST_ICON_LARGE_SIZE; #define GENLIST_PARAM_ICON_CHECK_RADIO \ min: GENLIST_ICON_CHECK_RADIO_SIZE GENLIST_ICON_CHECK_RADIO_SIZE; \ @@ -1782,7 +2358,7 @@ #define GENLIST_PART_ICON_BIG_R(NAME, RIGHT) \ GENLIST_PART_ICON(NAME, \ - GENLIST_DESCRIPTION_R(RIGHT, \ + GENLIST_DESCRIPTION_RTB(RIGHT, "elm.padding.top", "elm.padding.bottom", \ fixed: 1 1; \ GENLIST_PARAM_ICON_BIG \ ) \ @@ -1790,24 +2366,25 @@ #define GENLIST_PART_ICON_BIG_L(NAME, LEFT) \ GENLIST_PART_ICON(NAME, \ - GENLIST_DESCRIPTION_L(LEFT, \ - fixed: 1 1; \ + GENLIST_DESCRIPTION_LTB(LEFT, "elm.padding.top", "elm.padding.bottom", \ GENLIST_PARAM_ICON_BIG \ + fixed: 1 1; \ ) \ ) #define GENLIST_PART_ICON_SMALL_L(NAME, LEFT) \ GENLIST_PART_ICON(NAME, \ - GENLIST_DESCRIPTION_L(LEFT, \ + GENLIST_DESCRIPTION_LTB(LEFT, "elm.padding.top", "elm.padding.bottom", \ GENLIST_PARAM_ICON_SMALL \ + fixed: 1 1; \ ) \ ) #define GENLIST_PART_ICON_SMALL_LB(NAME, LEFT, BOTTOM) \ GENLIST_PART_ICON(NAME, \ GENLIST_DESCRIPTION_LB(LEFT, BOTTOM, \ - fixed: 1 1; \ GENLIST_PARAM_ICON_SMALL \ + fixed: 1 1; \ ) \ ) @@ -1815,6 +2392,7 @@ GENLIST_PART_ICON(NAME, \ GENLIST_DESCRIPTION_LTB(LEFT, TOP, BOTTOM, \ GENLIST_PARAM_ICON_SMALL \ + fixed: 1 1; \ ) \ ) @@ -1822,59 +2400,76 @@ GENLIST_PART_ICON(NAME, \ GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \ GENLIST_PARAM_ICON_SMALL \ + fixed: 1 1; \ ) \ ) -#define GENLIST_PART_ICON_BTN_01_R(NAME, RIGHT) \ +#define GENLIST_PART_ICON_BTN_01_RTB(NAME, RIGHT, TOP, BOTTOM) \ GENLIST_PART_ICON(NAME, \ - GENLIST_DESCRIPTION_R(RIGHT, \ + GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM,\ GENLIST_PARAM_ICON_BTN_01 \ + fixed: 1 1; \ ) \ ) -#define GENLIST_PART_ICON_BTN_02_R(NAME, RIGHT) \ +#define GENLIST_PART_ICON_BTN_02_RTB(NAME, RIGHT, TOP, BOTTOM) \ GENLIST_PART_ICON(NAME, \ - GENLIST_DESCRIPTION_R(RIGHT, \ + GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM,\ GENLIST_PARAM_ICON_BTN_02 \ + fixed: 1 1; \ ) \ ) #define GENLIST_PART_ICON_BTN_ONOFF_R(NAME, RIGHT) \ GENLIST_PART_ICON(NAME, \ - GENLIST_DESCRIPTION_R(RIGHT, \ + GENLIST_DESCRIPTION_RTB(RIGHT, "elm.padding.top", "elm.padding.bottom", \ GENLIST_PARAM_ICON_ONOFF_WIDTH \ + fixed: 1 1; \ ) \ ) #define GENLIST_PART_ICON_BTN_ONOFF_L(NAME, LEFT) \ GENLIST_PART_ICON(NAME, \ - GENLIST_DESCRIPTION_L(LEFT, \ + GENLIST_DESCRIPTION_LTB(LEFT, "elm.padding.top", "elm.padding.bottom", \ GENLIST_PARAM_ICON_ONOFF_WIDTH \ + fixed: 1 1; \ ) \ ) #define GENLIST_PART_ICON_THUMBNAIL1_R(NAME, RIGHT) \ GENLIST_PART_ICON(NAME, \ - GENLIST_DESCRIPTION_R(RIGHT, \ + GENLIST_DESCRIPTION_RTB(RIGHT, "elm.padding.top", "elm.padding.bottom", \ GENLIST_PARAM_ICON_THUMBNAIL1 \ + fixed: 1 1; \ ) \ ) #define GENLIST_PART_ICON_CHECK_RADIO_L(NAME, LEFT) \ GENLIST_PART_ICON(NAME, \ - GENLIST_DESCRIPTION_L(LEFT, \ + GENLIST_DESCRIPTION_LTB(LEFT, "elm.padding.top", "elm.padding.bottom", \ GENLIST_PARAM_ICON_CHECK_RADIO \ + fixed: 1 1; \ + ) \ + ) + +#define GENLIST_PART_ICON_STAR_RTB(NAME, RIGHT, TOP, BOTTOM) \ + GENLIST_PART_ICON(NAME, \ + GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \ + GENLIST_PARAM_ICON_STAR \ + fixed: 1 1; \ ) \ ) -#define GENLIST_PART_ICON_STAR_RTB(NAME, RIGHT, TOP, BOTTOM) \ + +#define GENLIST_PART_ICON_CIRCLE_RTB(NAME, RIGHT, TOP, BOTTOM) \ GENLIST_PART_ICON(NAME, \ GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \ - GENLIST_PARAM_ICON_STAR \ + GENLIST_PARAM_ICON_BIG \ fixed: 1 1; \ ) \ ) + /*****************************************************************************/ /******************************* Genlist IMAGE ********************************/ /*****************************************************************************/ @@ -1883,37 +2478,18 @@ scale: 1; \ type: IMAGE; \ DESCRIPION \ - GENLIST_DESCRIPTION_FADEOUT \ } #define GENLIST_PARAM_PASSWORD_IMAGE \ min: GENLIST_ICON_PASSWORD_SIZE GENLIST_ICON_PASSWORD_SIZE; \ max: GENLIST_ICON_PASSWORD_SIZE GENLIST_ICON_PASSWORD_SIZE; \ image.normal: "00_search_edit_field_bg_02.png"; \ - image.border: 4 4 4 4; \ + image.border: 12 13 12 13; \ image.border_scale: 1; /*****************************************************************************/ /******************************* Genlist Bubble ********************************/ /*****************************************************************************/ -#define GENLIST_PARAM_BUBBLE \ - image { \ - normal: "00_list_bubble_bg.png"; \ - border: 8 8 0 0; \ - } \ - rel1.offset: -10 0; \ - rel2.offset: 10 0; - -#define GENLIST_PART_BUBBLE(TEXT_NAME) \ - GENLIST_PART_IMAGE("elm.bubble", \ - GENLIST_DESCRIPTION_ENVELOP(TEXT_NAME, \ - GENLIST_PARAM_BUBBLE \ - min: 48 38; \ - max: -1 38; \ - fixed: 0 1;) \ - GENLIST_DESCRIPTION_FADEOUT \ - ) - #define GENLIST_IMAGES_EXPANDABLE_BTN \ images { \ image: "00_button_expand_closed.png" COMP; \ @@ -1924,22 +2500,43 @@ GENLIST_PART_ICON("touch_arrow", \ ignore_flags: ON_HOLD; \ GENLIST_DESCRIPTION_ENVELOP("arrow", ) \ - GENLIST_DESCRIPTION_FADEOUT \ + ) \ + GENLIST_PART_RECT("arrow_clip", \ + GENLIST_DESCRIPTION_ENVELOP("arrow", \ + color: 101 101 101 255; \ + ) \ + description { state: "disabled" 0.0; \ + color: 101 101 101 76; \ + } \ + description { state: "expand_opened_press" 0.0; \ + color: 248 246 239 255; \ + } \ + description { state: "default_press" 0.0; \ + color: 248 246 239 255; \ + } \ ) \ GENLIST_PART_IMAGE("arrow", \ + clip_to: "arrow_clip"; \ ignore_flags: ON_HOLD; \ mouse_events: 0; \ GENLIST_DESCRIPTION_R("elm.padding.right", \ fixed: 1 1; \ - min: 74 74; \ - max: 74 74; \ + min: 45 45; \ + max: 45 45; \ image.normal: "00_button_expand_closed.png"; \ ) \ - description { state: "active" 0.0; \ + description { state: "default_press" 0.0; \ + inherit: "default" 0.0; \ + image.normal: "00_button_expand_closed_press.png"; \ + } \ + description { state: "expand_opened" 0.0; \ inherit: "default" 0.0; \ image.normal: "00_button_expand_opened.png"; \ } \ - GENLIST_DESCRIPTION_FADEOUT \ + description { state: "expand_opened_press" 0.0; \ + inherit: "expand_opened" 0.0; \ + image.normal: "00_button_expand_opened_press.png"; \ + } \ ) /*****************************************************************************/ /******************************* Genlist RECT ********************************/ @@ -1957,71 +2554,51 @@ scale: 1; \ type: RECT; \ DESCRIPION \ - GENLIST_DESCRIPTION_FADEOUT_RECT \ } -#define GENLIST_PART_INDEX_LINE(LEFT, RIGHT, TOP, BOTTOM) \ - GENLIST_PART_RECT("index_line", \ - GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \ - color: GENLIST_GROUPINDEX_LINE_COLOR; \ - min: 0 4; \ - max: -1 4;) \ - description { state: "selected" 0.0; \ - inherit: "default" 0.0; \ - color: GENLIST_GROUPINDEX_LINE_FOCUS_COLOR; \ - } \ - ) - /*****************************************************************************/ /******************************* Genlist TEXT ********************************/ /*****************************************************************************/ +// FIXME: because, when naviframe item is pushed, +// naviframe freeze all events so text events cannot be repeated. :-( +// So all texts should have it's own sound program, not repeat to BG #define GENLIST_PART_TEXT(NAME, DESCRIPION) \ part { name: NAME; \ scale: 1; \ - mouse_events: 0; \ type: TEXT; \ DESCRIPION \ - GENLIST_DESCRIPTION_FADEOUT \ } #define GENLIST_PART_TEXTBLOCK(NAME, DESCRIPION) \ part { name: NAME; \ scale: 1; \ - mouse_events: 0; \ type: TEXTBLOCK; \ DESCRIPION \ - GENLIST_DESCRIPTION_FADEOUT \ } /*************************** parameters **********************************/ #define GENLIST_PARAM_TEXT_LIMIT_RB \ rel1.to_x: "base"; /* This limits text growing. */\ - rel1.relative: 0.5 0; /* This limits text growing. */\ + rel1.relative: 0.35 0; /* This limits text growing. */\ text.max: 1 0; /* This limits text growing. */ #define GENLIST_PARAM_TEXT_LIMIT_RT \ rel1.to_x: "base"; /* This limits text growing. */\ - rel1.relative: 0.5 1; /* This limits text growing. */\ + rel1.relative: 0.35 1; /* This limits text growing. */\ text.max: 1 0; /* This limits text growing. */ -// Group Index -#define GENLIST_PARAM_INDEX_LIST \ - color: GENLIST_GROUPINDEX_LIST_COLOR; \ - text { \ - align: 0 0.5; \ - min: 0 1; \ - font: "Tizen:style=Bold"; \ - size: GENLIST_GROUPINDEX_LIST_SIZE; \ - text_class: "list_item"; \ - } +#define GENLIST_PARAM_TEXT_LIMIT_RTB \ + rel1.to_x: "base"; /* This limits text growing. */\ + rel1.relative: 0.35 1; /* This limits text growing. */\ + text.max: 1 0; /* This limits text growing. */ // Group Title #define GENLIST_PARAM_DIALOGUE_GROUP_TITLE \ color: GENLIST_DIALOGUE_GROUP_TITLE_COLOR; \ text { \ align: 0.0 0.5; \ - min: 0 1; \ font: "Tizen:style=Bold"; \ + min: 0 1; \ size: GENLIST_DIALOGUE_GROUP_TITLE_SIZE; \ text_class: "list_item"; \ } @@ -2037,13 +2614,24 @@ text_class: "list_item"; \ } +// Progress main text +#define GENLIST_PARAM_PROGRESS_MAIN \ + color: GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR; \ + text { \ + align: 0 0.5; \ + min: 0 1; \ + font: "Tizen:style=Regular"; \ + size: GENLIST_PROGRESS_MAIN_TEXT_SIZE; \ + text_class: "list_item"; \ + } + // list main text #define GENLIST_PARAM_LISTITEM \ color: GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR; \ text { \ align: 0 0.5; \ min: 0 1; \ - font: "Tizen:style=Regular"; \ + font: "Tizen:style=Bold"; \ size: GENLIST_LIST_MAIN_TEXT_SIZE; \ text_class: "list_item"; \ } @@ -2066,7 +2654,7 @@ text { \ align: 0 0.5; \ min: 0 1; \ - font: "Tizen:style=Medium"; \ + font: "Tizen:style=Bold"; \ size: GENLIST_LIST_SUB_TEXT_SIZE; \ text_class: "tizen"; \ } @@ -2076,7 +2664,7 @@ text { \ align: 0 0.5; \ min: 0 1; \ - font: "Tizen:style=Medium"; \ + font: "Tizen:style=Bold"; \ size: GENLIST_LIST_SUB_TEXT_SIZE; \ text_class: "tizen"; \ } @@ -2099,6 +2687,18 @@ style: "genlist_style_list_sub_text_settings"; \ } +// list subtext 02 +#define GENLIST_PARAM_SUBITEM_02 \ + color: GENLIST_LIST_SUB_TEXT_02_COLOR; \ + text { \ + align: 0 0.5; \ + min: 0 1; \ + font: "Tizen:style=Bold"; \ + size: GENLIST_LIST_SUB_TEXT_02_SIZE; \ + text_class: "tizen"; \ + } + +// Dialogue group - Apps #define GENLIST_PARAM_APPS_NAME\ color: GENLIST_APPS_NAME_COLOR; \ text { \ @@ -2160,13 +2760,6 @@ } /*************************** Descriptions **********************************/ -// group index -#define GENLIST_DESCRIPTION_INDEX_LIST \ - description { state: "selected" 0.0; \ - inherit: "default" 0.0; \ - color: GENLIST_GROUPINDEX_LIST_FOCUS_COLOR; \ - } - // list main text #define GENLIST_DESCRIPTION_LISTITEM_OTHERS \ description { state: "disabled" 0.0; \ @@ -2183,7 +2776,7 @@ } \ description { state: "selected" 0.0; \ inherit: "default" 0.0; \ - color: GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR; \ + color: GENLIST_LIST_TEXT_FOCUS_COLOR; \ } #define GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \ @@ -2212,7 +2805,7 @@ } \ description { state: "selected" 0.0; \ inherit: "default" 0.0; \ - color: GENLIST_LIST_SUB_TEXT_FOCUS_COLOR; \ + color: GENLIST_LIST_TEXT_FOCUS_COLOR; \ } #define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \ @@ -2242,7 +2835,7 @@ } \ description { state: "selected" 0.0; \ inherit: "default" 0.0; \ - color: GENLIST_LIST_SUB_TEXT_FOCUS_COLOR; \ + color: GENLIST_LIST_TEXT_FOCUS_COLOR; \ } #define GENLIST_DESCRIPTION_SUBITEM_SETTINGS_OTHERS_TB \ @@ -2303,6 +2896,7 @@ GENLIST_PART_TEXTBLOCK(NAME, \ GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \ min: 0 HEIGHT; \ + fixed: 1 0; \ GENLIST_PARAM_LISTITEM_TB \ PARAM \ ) \ @@ -2311,8 +2905,19 @@ #define GENLIST_PART_LISTITEM_LR(NAME, HEIGHT, LEFT, RIGHT, PARAM) \ GENLIST_PART_TEXT(NAME, \ - GENLIST_DESCRIPTION_LR(LEFT, RIGHT, \ + GENLIST_DESCRIPTION(LEFT, RIGHT, "elm.padding.top", "elm.padding.bottom", \ + min: 0 HEIGHT; \ + GENLIST_PARAM_LISTITEM \ + PARAM \ + ) \ + GENLIST_DESCRIPTION_LISTITEM_OTHERS \ + ) + +#define GENLIST_PART_LISTITEM_LRT(NAME, HEIGHT, LEFT, RIGHT, TOP, PARAM) \ + GENLIST_PART_TEXT(NAME, \ + GENLIST_DESCRIPTION_LRT(LEFT, RIGHT, TOP, \ min: 0 HEIGHT; \ + fixed: 0 1; \ GENLIST_PARAM_LISTITEM \ PARAM \ ) \ @@ -2323,6 +2928,7 @@ GENLIST_PART_TEXTBLOCK(NAME, \ GENLIST_DESCRIPTION_LRT(LEFT, RIGHT, TOP, \ min: 0 HEIGHT; \ + fixed: 0 1; \ GENLIST_PARAM_LISTITEM_TB \ PARAM \ ) \ @@ -2331,8 +2937,9 @@ #define GENLIST_PART_LISTITEM_LR_TB(NAME, HEIGHT, LEFT, RIGHT, PARAM) \ GENLIST_PART_TEXTBLOCK(NAME, \ - GENLIST_DESCRIPTION_LR(LEFT, RIGHT, \ + GENLIST_DESCRIPTION(LEFT, RIGHT, "elm.padding.top", "elm.padding.bottom", \ min: 0 HEIGHT; \ + fixed: 1 0; \ GENLIST_PARAM_LISTITEM_TB \ PARAM \ ) \ @@ -2342,6 +2949,7 @@ #define GENLIST_PART_SUBITEM_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \ GENLIST_PART_TEXT(NAME, \ GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \ + min: 0 HEIGHT; \ GENLIST_PARAM_SUBITEM_DEFAULT \ PARAM \ ) \ @@ -2354,16 +2962,11 @@ GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \ ) -#define GENLIST_PART_SUBITEM_DEFAULT_TB(NAME, DESCRIPTION) \ - GENLIST_PART_TEXTBLOCK(NAME, \ - DESCRIPTION \ - GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \ - ) - #define GENLIST_PART_SUBITEM_R(NAME, HEIGHT, RIGHT) \ GENLIST_PART_TEXT(NAME, \ - GENLIST_DESCRIPTION_R(RIGHT, \ + GENLIST_DESCRIPTION_RTB(RIGHT, "elm.padding.top", "elm.padding.bottom", \ min: 0 HEIGHT; \ + fixed: 1 0; \ GENLIST_PARAM_TEXT_LIMIT_RB \ GENLIST_PARAM_SUBITEM_DEFAULT \ ) \ @@ -2395,6 +2998,7 @@ #define GENLIST_PART_SUBITEM_TB_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM) \ GENLIST_PART_TEXTBLOCK(NAME, \ GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \ + min: 0 HEIGHT; \ GENLIST_PARAM_SUBITEM_DEFAULT_TB \ ) \ GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \ @@ -2402,7 +3006,7 @@ #define GENLIST_PART_SUBITEM_R_FIXED(NAME, WIDTH, HEIGHT, RIGHT) \ GENLIST_PART_TEXT(NAME, \ - GENLIST_DESCRIPTION_R(RIGHT, \ + GENLIST_DESCRIPTION_RTB(RIGHT, "elm.padding.top", "elm.padding.bottom", \ min: WIDTH HEIGHT; \ fixed: 1 1; \ GENLIST_PARAM_SUBITEM_DEFAULT \ @@ -2422,7 +3026,7 @@ #define GENLIST_PART_SUBITEM_L_FIXED(NAME, WIDTH, HEIGHT, LEFT) \ GENLIST_PART_TEXT(NAME, \ - GENLIST_DESCRIPTION_L(LEFT, \ + GENLIST_DESCRIPTION_LTB(LEFT, "elm.padding.top", "elm.padding.bottom", \ min: WIDTH HEIGHT; \ fixed: 1 1; \ GENLIST_PARAM_SUBITEM_DEFAULT \ @@ -2432,7 +3036,7 @@ #define GENLIST_PART_SUBITEM_LR(NAME, HEIGHT, LEFT, RIGHT, PARAM) \ GENLIST_PART_TEXT(NAME, \ - GENLIST_DESCRIPTION_LR(LEFT, RIGHT, \ + GENLIST_DESCRIPTION(LEFT, RIGHT, "elm.padding.top", "elm.padding.bottom", \ min: 0 HEIGHT; \ GENLIST_PARAM_SUBITEM_DEFAULT \ PARAM \ @@ -2462,19 +3066,8 @@ GENLIST_PART_TEXT(NAME, \ GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \ min: 0 HEIGHT; \ - fixed: 1 1; /*FIXME: why text need this, but textblock doesn't */ \ - GENLIST_PARAM_SUBITEM_DEFAULT \ - ) \ - GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \ - ) - -#define GENLIST_PART_SUBITEM_LRB_LIMIT(NAME, HEIGHT, LEFT, RIGHT, BOTTOM) \ - GENLIST_PART_TEXT(NAME, \ - GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \ - min: 0 HEIGHT; \ - fixed: 1 1; /*FIXME: why text need this, but textblock doesn't */ \ GENLIST_PARAM_SUBITEM_DEFAULT \ - fixed: 1 1; align: 0 1; text.max: 1 0; // This limits text growing. \ + fixed: 0 1; \ ) \ GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \ ) @@ -2494,8 +3087,8 @@ GENLIST_PART_TEXTBLOCK(NAME, \ GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \ min: 0 HEIGHT; \ - fixed: 1 1; /*FIXME: why text need this, but textblock doesn't */ \ GENLIST_PARAM_SUBITEM_DEFAULT_TB \ + fixed: 0 1; \ ) \ GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \ ) @@ -2505,6 +3098,7 @@ GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \ min: 0 HEIGHT; \ GENLIST_PARAM_SUBITEM_SETTINGS_TB \ + fixed: 0 1; \ ) \ GENLIST_DESCRIPTION_SUBITEM_SETTINGS_OTHERS_TB \ ) @@ -2513,12 +3107,22 @@ GENLIST_PART_TEXT(NAME, \ GENLIST_DESCRIPTION_LRT(LEFT, RIGHT, TOP, \ min: 0 HEIGHT; \ - fixed: 1 1; /*FIXME: why text need this, but textblock doesn't */ \ + fixed: 0 1; \ GENLIST_PARAM_SUBITEM_DEFAULT \ ) \ GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \ ) +#define GENLIST_PART_SUBITEM_SETTINGS_LRT(NAME, HEIGHT, LEFT, RIGHT, TOP) \ + GENLIST_PART_TEXT(NAME, \ + GENLIST_DESCRIPTION_LRT(LEFT, RIGHT, TOP, \ + min: 0 HEIGHT; \ + fixed: 0 1; \ + GENLIST_PARAM_SUBITEM_SETTINGS \ + ) \ + GENLIST_DESCRIPTION_SUBITEM_SETTINGS_OTHERS \ + ) + #define GENLIST_PART_SUBITEM_LTB(NAME, HEIGHT, LEFT, TOP, BOTTOM) \ GENLIST_PART_TEXT(NAME, \ GENLIST_DESCRIPTION_LTB(LEFT, TOP, BOTTOM, \ @@ -2535,6 +3139,7 @@ min: 0 HEIGHT; \ GENLIST_PARAM_TEXT_LIMIT_RT \ GENLIST_PARAM_SUBITEM_DEFAULT \ + fixed: 1 0; \ ) \ GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \ ) @@ -2545,10 +3150,22 @@ min: 0 HEIGHT; \ GENLIST_PARAM_TEXT_LIMIT_RT \ GENLIST_PARAM_SUBITEM_DEFAULT_TB \ + fixed: 1 0; \ ) \ GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \ ) +#define GENLIST_PART_SUBITEM_02_RTB(NAME, HEIGHT, RIGHT, TOP, BOTTOM) \ + GENLIST_PART_TEXT(NAME, \ + GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \ + min: 0 HEIGHT; \ + GENLIST_PARAM_TEXT_LIMIT_RT \ + GENLIST_PARAM_SUBITEM_02 \ + fixed: 1 0; \ + ) \ + GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \ + ) + #define GENLIST_PARAM_LIST_BUBBLE_TEXT \ color: GENLIST_LIST_BUBBLE_TEXT_COLOR; \ text { \ @@ -2559,260 +3176,36 @@ text_class: "tizen"; \ } +// FIXME: Need to find why rel2.offset: 9 -1 will not fix the alignment of bubble text ? #define GENLIST_PART_LIST_BUBBLE_TEXT_RTB(NAME, HEIGHT, RIGHT, TOP, BOTTOM) \ - GENLIST_PART_TEXT(NAME, \ - GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \ - min: 0 HEIGHT; \ - GENLIST_PARAM_TEXT_LIMIT_RT \ - GENLIST_PARAM_LIST_BUBBLE_TEXT \ - ) \ - ) - -#if 0 -#define GENLIST_PART_BASE__( param_item_height ) \ - part { name: "base"; \ - type: RECT; \ - repeat_events: 1; \ - scale: 1; \ - description { state: "default" 0.0; \ - min: 0 param_item_height; \ - color: LAYOUT_GROUP_LIST_BG_COLOR_INC; \ - } \ - } - -#define GENLIST_PART_BG \ - part { name: "bg"; \ - type: RECT; \ + GENLIST_PART_IMAGE("elm.bubble", \ mouse_events: 0; \ - description { state: "default" 0.0; \ - color: GENLIST_PART_DIALOGUE_GROUP_BG_COLOR; \ - } \ - description { state: "hide" 0.0; \ - inherit: "default" 0.0; \ - rel1 { relative: 0.025 0.0; } \ - rel2 { relative: 1.025 1.0; } \ - } \ - description { state: "hide" 0.1; \ - inherit: "default" 0.0; \ - rel1 { relative: 0.13 0.0; } \ - rel2 { relative: 1.13 1.0; } \ - } \ - description { state: "hide" 0.2; \ - inherit: "default" 0.0; \ - rel1 { relative: 0.5 0.0; } \ - rel2 { relative: 1.5 1.0; } \ - } \ - description { state: "hide" 0.3; \ + GENLIST_DESCRIPTION_ENVELOP(NAME, \ + image { \ + normal: "00_list_bubble_bg.png"; \ + border: 8 8 0 0; \ + } \ + rel1.offset: -10 0; \ + rel2.offset: 8 -1; \ + min: 48 38; \ + max: -1 38; \ + fixed: 0 1; \ + color: GENLIST_LIST_BUBBLE_COLOR; \ + ) \ + description { state: "selected" 0.0; \ inherit: "default" 0.0; \ - rel1 { relative: 1.0 0.0; } \ - rel2 { relative: 2.0 1.0; } \ + color: GENLIST_LIST_BUBBLE_PRESS_COLOR; \ } \ - } - -/******************************************************************************/ -/** ETC -/******************************************************************************/ -// FIXME: UX do not define selected state. But I thinkt that it is neededs :( - -#define GENLIST_PROOGRAM_EXPAND(SRC, TARGET) \ - program { \ - name: "expand"; \ - signal: "mouse,clicked,1"; \ - source: SRC; \ - action: SIGNAL_EMIT "elm,action,expand,toggle" "elm"; \ - } \ - program { \ - name: "go_expanded"; \ - signal: "elm,state,expanded"; \ - source: "elm"; \ - action: STATE_SET "active" 0.0; \ - TARGET \ - } \ - program { \ - name: "go_contracted"; \ - signal: "elm,state,contracted"; \ - source: "elm"; \ - action: STATE_SET "default" 0.0; \ - TARGET \ - } - -#define GENLIST_PART_BASE_LIST_H( HEIGHT) \ - part { name: "base"; \ - type: RECT; \ - repeat_events: 1; \ - scale: 1; \ - description { state: "default" 0.0; \ - align: 0.5 0.5; \ - color: 0 0 0 0; \ - rel2.relative: 1 0; \ - rel2.to: "bottom_line"; \ + ) \ + GENLIST_PART_TEXT(NAME, \ + GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \ min: 0 HEIGHT; \ - } \ - } \ - GENLIST_PART_BOTTOM_LINE - -#define GENLIST_PART_DIALOGUE_ITEM \ - part { name: "elm.rect.dialogue"; \ - type: RECT; \ - scale: 1; \ - description { state: "default" 0.0; \ - min: 10 0; \ - fixed: 1 0; \ - color: GENLIST_DIALOGUE_GROUP_LEFT_BG_COLOR_INC; \ - rel2.relative: 0.0 1.0; \ - align: 0.0 0.0; \ - } \ - } - -#define GENLIST_PART_DIALOGUE_RIGHT_LINE \ - part { name: "elm.rect.dialogue.right.line"; \ - type: RECT; \ - scale: 1; \ - description { state: "default" 0.0; \ - min: 1 0; \ - fixed: 1 0; \ - rel1 { \ - relative: 1.0 0.0; \ - offset: -1 0; \ - } \ - align: 1.0 0.0; \ - color: GENLIST_LIST_LINE1_COLOR; \ - } \ - } - -#define GENLIST_PROGRAM_FLIP_1TEXT \ - program { name: "flip_enabled"; \ - signal: "elm,state,flip,enabled"; \ - source: "elm"; \ - action: STATE_SET "flip_enabled" 0.0; \ - target: "elm.text"; \ - target: "elm.flip.content"; \ - } \ - program { name: "flip_disabled"; \ - signal: "elm,state,flip,disabled"; \ - source: "elm"; \ - action: STATE_SET "default" 0.0; \ - target: "elm.text"; \ - target: "elm.flip.content"; \ - } - -#define GENLIST_PROGRAM_FLIP_2TEXT \ - program { name: "flip_enabled"; \ - signal: "elm,state,flip,enabled"; \ - source: "elm"; \ - action: STATE_SET "flip_enabled" 0.0; \ - target: "elm.text.1"; \ - target: "elm.text.2"; \ - target: "elm.flip.content"; \ - } \ - program { name: "flip_disabled"; \ - signal: "elm,state,flip,disabled"; \ - source: "elm"; \ - action: STATE_SET "default" 0.0; \ - target: "elm.text.1"; \ - target: "elm.text.2"; \ - target: "elm.flip.content"; \ - } - -#define GENLIST_PROGRAM_FLIP_2TEXT_1ICON \ - program { name: "flip_enabled"; \ - signal: "elm,state,flip,enabled"; \ - source: "elm"; \ - action: STATE_SET "flip_enabled" 0.0; \ - target: "elm.text.1"; \ - target: "elm.text.2"; \ - target: "elm.icon"; \ - target: "elm.flip.content"; \ - } \ - program { name: "flip_disabled"; \ - signal: "elm,state,flip,disabled"; \ - source: "elm"; \ - action: STATE_SET "default" 0.0; \ - target: "elm.text.1"; \ - target: "elm.text.2"; \ - target: "elm.icon"; \ - target: "elm.flip.content"; \ - } - -#define GENLIST_PROGRAM_FLIP_2TEXT_2ICON \ - program { name: "flip_enabled"; \ - signal: "elm,state,flip,enabled"; \ - source: "elm"; \ - action: STATE_SET "flip_enabled" 0.0; \ - target: "elm.text.1"; \ - target: "elm.text.2"; \ - target: "elm.icon.1"; \ - target: "elm.icon.2"; \ - target: "elm.flip.content"; \ - } \ - program { name: "flip_disabled"; \ - signal: "elm,state,flip,disabled"; \ - source: "elm"; \ - action: STATE_SET "default" 0.0; \ - target: "elm.text.1"; \ - target: "elm.text.2"; \ - target: "elm.icon.1"; \ - target: "elm.icon.2"; \ - target: "elm.flip.content"; \ - } - -#define GENLIST_PROGRAM_FLIP_3TEXT_2ICON \ - program { name: "flip_enabled"; \ - signal: "elm,state,flip,enabled"; \ - source: "elm"; \ - action: STATE_SET "flip_enabled" 0.0; \ - target: "elm.text.1"; \ - target: "elm.text.2"; \ - target: "elm.text.3"; \ - target: "elm.icon.1"; \ - target: "elm.icon.2"; \ - target: "elm.flip.content"; \ - } \ - program { name: "flip_disabled"; \ - signal: "elm,state,flip,disabled"; \ - source: "elm"; \ - action: STATE_SET "default" 0.0; \ - target: "elm.text.1"; \ - target: "elm.text.2"; \ - target: "elm.text.3"; \ - target: "elm.icon.1"; \ - target: "elm.icon.2"; \ - target: "elm.flip.content"; \ - } - - -#define GENLIST_DESCRIPTION_INVISIBLE_SELECTED \ - description { state: "selected" 1.0; \ - inherit: "default" 0.0; \ - visible: 0; \ - } - -#define GENLIST_DESCRIPTION_FLIP_ENABLED \ - description { state: "flip_enabled" 0.0; \ + GENLIST_PARAM_TEXT_LIMIT_RT \ + rel2.offset: -10 -1; /* This maintain the text alignment with bubble text. */\ + GENLIST_PARAM_LIST_BUBBLE_TEXT \ + ) \ + description { state: "selected" 0.0; \ inherit: "default" 0.0; \ - visible: 0; \ - } - -#define GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_1TEXT \ - script { \ - new st[31]; \ - new Float:vl; \ - get_state(PART:"elm.text", st, 30, vl); \ - set_state(PART:"bg_image", "selected", 0.0); \ - if (!strcmp(st, "flip_enabled")) \ - set_state(PART:"elm.text", "selected", 1.0); \ - else \ - set_state(PART:"elm.text", "selected", 0.0); \ - } - - -/* genlist multisense macro - start */ -#define GENLIST_PROGRAM_AFTER_PLAY_BUTTON_PRESS \ - after: "play_button_press"; - -#define GENLIST_PROGRAM_PLAY_BUTTON_PRESS \ - program { name: "play_button_press"; \ - action: PLAY_SAMPLE "button-pressed" 1.0; \ - } -#endif - + color: GENLIST_LIST_BUBBLE_TEXT_FOCUS_COLOR; \ + } \ + ) diff --git a/theme/widgets/genlist/genlist_styles.edc b/theme/widgets/genlist/genlist_styles.edc new file mode 100755 index 0000000..ea06920 --- /dev/null +++ b/theme/widgets/genlist/genlist_styles.edc @@ -0,0 +1,158 @@ +/* +* Copyright (c) 2000-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. +* +*/ + +// ------------------------------------------------------------------- +// 1 line ------------------------------------------------------- +// ------------------------------------------------------------------- +// 2.2.2.1 + // 2.2.2.1 + + // 2.2.4.3 + group { GENLIST_NAME("ivug/multiline/2text/default") + GENLIST_PROLOG_NORMAL + data.item: "texts" "elm.text.1 elm.text.2"; + + parts { + GENLIST_PART_BASE + GENLIST_PART_BG_NORMAL + GENLIST_PART_BOTTOM_LINE + GENLIST_PART_PADDING_LEFT + GENLIST_PART_PADDING_RIGHT + GENLIST_PART_PADDING_TOP_2LINE + GENLIST_PART_PADDING_BOTTOM_2LINE + + GENLIST_PART_TEXT("elm.text.1", + GENLIST_DESCRIPTION_LRT("elm.padding.left", "elm.padding.right", "elm.padding.top", + GENLIST_PARAM_LISTITEM + min: 0 GENLIST_HEIGHT_2LINE_MAIN; + fixed: 0 1; + ) + GENLIST_DESCRIPTION_LISTITEM_OTHERS + ) +// GENLIST_PART_PADDING_T_SIZE("elm.padding.text1.bottom", "elm.text.1", 16) + GENLIST_PART_TEXTBLOCK("elm.text.2", + GENLIST_DESCRIPTION("elm.padding.left", "elm.padding.right", "elm.text.1", "elm.padding.bottom", + GENLIST_PARAM_SUBITEM_DEFAULT_TB_WRAP + min: 0 GENLIST_HEIGHT_MULTILINE_SUB; + ) + GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP + ) + GENLIST_PART_FLIP + GENLIST_PART_FOCUS + } + GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; ) + //GENLIST_PROGRAM_SOUND("elm.text.1") + //GENLIST_PROGRAM_SOUND("elm.text.2") + } + + // 2.2.4.4 + group { GENLIST_NAME("ivug/multiline/2text.5icon/default") + // FIXME: deprecated name, wiil be removed + alias: "elm/genlist/item/multiline/2text.1icon/default"; + alias: "elm/genlist/item_odd/multiline/2ext.1icon/default"; + alias: "elm/genlist/item_compress/multiline/2text.1icon/default"; + alias: "elm/genlist/item_compress_odd/multiline/2text.1icon/default"; + + GENLIST_PROLOG_NORMAL + data.item: "texts" "elm.text.1 elm.text.2"; + data.item: "contents" "elm.icon.1 elm.icon.2 elm.icon.3 elm.icon.4 elm.icon.5"; + + parts { + GENLIST_PART_BASE + GENLIST_PART_BG_NORMAL + GENLIST_PART_BOTTOM_LINE + GENLIST_PART_PADDING_LEFT + GENLIST_PART_PADDING_RIGHT + GENLIST_PART_PADDING_TOP_SIZE( 0 ) + GENLIST_PART_PADDING_BOTTOM_SIZE( 26 ) + + GENLIST_PART_LISTITEM("elm.text.1", + GENLIST_DESCRIPTION_LRT("elm.padding.left", "elm.padding.icon5.left", "elm.padding.top", + GENLIST_PARAM_LISTITEM + min: 0 GENLIST_HEIGHT_2LINE_MAIN; ) + GENLIST_DESCRIPTION_LISTITEM_OTHERS + ) + GENLIST_PART_PADDING_R("elm.padding.icon5.left", "elm.icon.5") + GENLIST_PART_ICON_CIRCLE_RTB("elm.icon.5", + "elm.icon.4", "elm.padding.top", "elm.text.2") + GENLIST_PART_ICON_CIRCLE_RTB("elm.icon.4", + "elm.icon.3", "elm.padding.top", "elm.text.2") + GENLIST_PART_ICON_CIRCLE_RTB("elm.icon.3", + "elm.icon.2", "elm.padding.top", "elm.text.2") + GENLIST_PART_ICON_CIRCLE_RTB("elm.icon.2", + "elm.icon.1", "elm.padding.top", "elm.text.2") + GENLIST_PART_ICON_CIRCLE_RTB("elm.icon.1", + "elm.padding.right", "elm.padding.top", "elm.padding.bottom") + + +// GENLIST_PART_PADDING_T_SIZE("elm.padding.text1.bottom", "elm.text.1", 16) + GENLIST_PART_TEXTBLOCK("elm.text.2", + GENLIST_DESCRIPTION("elm.padding.left", "elm.icon.1", "elm.text.1", "elm.padding.bottom", + GENLIST_PARAM_SUBITEM_DEFAULT_TB_WRAP + min: 0 GENLIST_HEIGHT_MULTILINE_SUB; ) + GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP + ) + GENLIST_PART_FLIP + GENLIST_PART_FOCUS + } + GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; ) + //GENLIST_PROGRAM_SOUND("elm.text.1") + //GENLIST_PROGRAM_SOUND("elm.text.2") + } + + // 2.4.4.1 group title + group { GENLIST_NAME("dialogue/ivug/grouptitle/default") + alias: "elm/layout/dialogue/grouptitle"; + + // FIXME: deprecated name, will be removed + alias : "elm/genlist/item/dialogue/title/default"; + alias: "elm/genlist/item_odd/dialogue/title/default"; + alias: "elm/genlist/item_compress/dialogue/title/default"; + alias: "elm/genlist/item_compress_odd/dialogue/title/default"; + alias: "elm/layout/dialogue/title"; + + GENLIST_PROLOG + data.item: "texts" "elm.text"; + data.item: "contents" "elm.icon"; + parts { + GENLIST_PART_BASE + GENLIST_PART_BG_NORMAL + GENLIST_PART_PADDING_LEFT_SIZE( DIALOGUE_PADDING_SIZE_LEFT ) + GENLIST_PART_PADDING_TOP_SIZE( 0 ) + GENLIST_PART_PADDING_BOTTOM_SIZE( 12 ) + GENLIST_PART_PADDING_RIGHT_SIZE( 12 ) + + GENLIST_PART_TEXT("elm.text", + GENLIST_DESCRIPTION("elm.padding.left", "elm.icon", + "elm.padding.top", "elm.padding.bottom", + GENLIST_PARAM_DIALOGUE_GROUP_TITLE + min: 0 GENLIST_HEIGHT_GROUPTITLE; + ) + ) + + GENLIST_PART_ICON("elm.icon", + GENLIST_DESCRIPTION_RTB("elm.padding.right", + "elm.padding.top", "elm.padding.bottom", + max: 32 32; + fixed: 1 0; + ) + ) + GENLIST_PART_FLIP + } + GENLIST_PROGRAM_DISABLED( target: "elm.text"; target: "elm.icon"; ) + } + diff --git a/theme/widgets/genlist/genlist_textblock_styles.edc b/theme/widgets/genlist/genlist_textblock_styles.edc new file mode 100755 index 0000000..1893ca9 --- /dev/null +++ b/theme/widgets/genlist/genlist_textblock_styles.edc @@ -0,0 +1,137 @@ +/* +* Copyright (c) 2000-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. +* +*/ + +/* + * vim:ts=3 +*/ + +#define STYLE_TAG \ + tag: "br" "\n";\ + tag: "ps" "ps";\ + tag: "tab" "\t";\ + tag: "b" "+ font=Tizen:style=Bold"; + +#define STYLE_TAG_MATCH \ + tag: "match" GENLIST_PART_MATCH_TAG_COLOR; + +// FIXME: Why this is needed? just don't use match color, right? damn textblock bug... +#define STYLE_TAG_MATCH_FOCUS \ + tag: "match" GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE; + +styles { + // ********************** groupindex text + style { name: "genlist_style_groupindex_text"; + base: "font=Tizen:style=Regular font_size="GENLIST_GROUPINDEX_LIST_SIZE" color="GENLIST_GROUPINDEX_LIST_COLOR_STYLE" text_class=list_item ellipsis=1.0"; + STYLE_TAG + STYLE_TAG_MATCH + } + style { name: "genlist_style_groupindex_text_focus"; + base: "font=Tizen:style=Regular font_size="GENLIST_GROUPINDEX_LIST_SIZE" color="GENLIST_GROUPINDEX_LIST_FOCUS_COLOR_STYLE" text_class=list_item ellipsis=1.0"; + STYLE_TAG + STYLE_TAG_MATCH + } + // ********************** dialgoue group help text + style { name: "genlist_style_dialogue_group_help_text"; + base: "font=Tizen:style=Regular font_size="GENLIST_DIALOGUE_GROUP_HELP_TEXT_SIZE" color="GENLIST_DIALOGUE_GROUP_HELP_TEXT_COLOR_STYLE" text_class=list_item wrap=mixed"; + STYLE_TAG + STYLE_TAG_MATCH + } + // ********************** list main text + 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 ellipsis=1.0"; + 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 ellipsis=1.0"; + STYLE_TAG + STYLE_TAG_MATCH + } + style { name: "genlist_style_list_main_text_read"; + base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_READ_COLOR_STYLE" text_class=list_item ellipsis=1.0"; + STYLE_TAG + STYLE_TAG_MATCH + } + style { name: "genlist_style_list_main_text_read_dim"; + base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR_STYLE" text_class=list_item ellipsis=1.0"; + 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 ellipsis=1.0"; + STYLE_TAG + STYLE_TAG_MATCH_FOCUS + } + // ********************** list main text (multiline) + style { name: "genlist_style_list_main_text_unread_wrap"; + base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE" text_class=tizen wrap=mixed"; + STYLE_TAG + STYLE_TAG_MATCH + } + style { name: "genlist_style_list_main_text_unread_dim_wrap"; + base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE" text_class=tizen wrap=mixed"; + STYLE_TAG + STYLE_TAG_MATCH + } + style { name: "genlist_style_list_main_text_focus_wrap"; + base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE" text_class=tizen wrap=mixed"; + STYLE_TAG + STYLE_TAG_MATCH_FOCUS + } + // ********************** list sub text + style { name: "genlist_style_list_sub_text_default"; + base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR_STYLE" text_class=tizen ellipsis=1.0"; + STYLE_TAG + STYLE_TAG_MATCH + } + style { name: "genlist_style_list_sub_text_default_dim"; + base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR_STYLE" text_class=tizen ellipsis=1.0"; + STYLE_TAG + STYLE_TAG_MATCH_FOCUS + } + style { name: "genlist_style_list_sub_text_settings"; + base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR_STYLE" text_class=tizen ellipsis=1.0"; + STYLE_TAG + STYLE_TAG_MATCH + } + style { name: "genlist_style_list_sub_text_settings_dim"; + base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_SETTINGS_DIM_COLOR_STYLE" text_class=tizen ellipsis=1.0"; + STYLE_TAG + STYLE_TAG_MATCH + } + style { name: "genlist_style_list_sub_text_focus"; + base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE" text_class=tizen ellipsis=1.0"; + STYLE_TAG + STYLE_TAG_MATCH_FOCUS + } + // ********************** list sub text (multiline) + style { name: "genlist_style_list_sub_text_default_wrap"; + base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR_STYLE" text_class=tizen wrap=mixed"; + STYLE_TAG + STYLE_TAG_MATCH + } + style { name: "genlist_style_list_sub_text_default_dim_wrap"; + base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR_STYLE" text_class=tizen wrap=mixed"; + STYLE_TAG + STYLE_TAG_MATCH + } + style { name: "genlist_style_list_sub_text_focus_wrap"; + base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE" text_class=tizen wrap=mixed"; + STYLE_TAG + STYLE_TAG_MATCH + } +} diff --git a/theme/widgets/genlist/ivug-genlist.edc b/theme/widgets/genlist/ivug-genlist.edc new file mode 100755 index 0000000..68ef262 --- /dev/null +++ b/theme/widgets/genlist/ivug-genlist.edc @@ -0,0 +1,82 @@ +/* +* Copyright (c) 2000-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 "genlist_macro.edc" +#include "genlist_textblock_styles.edc" +#include "genlist_styles.edc" +#include "genlist_group_index.edc" + + group { name: "elm/focus_highlight/top/default"; + images { + image: "00_focus.png" COMP; + } + data { + item: "animate" "off"; + } + parts { + part { name: "base"; + type: RECT; + repeat_events: 1; + description { state: "default" 0.0; + rel1.relative: 0.0 0.0; + rel2.relative: 1.0 1.0; + visible: 0; + } + } + part { name: "shine"; + type: IMAGE; + mouse_events: 0; + repeat_events: 1; + ignore_flags: ON_HOLD; + description { state: "default" 0.0; + visible: 0; + image { + normal: "00_focus.png"; + border: 7 7 7 7; + } + } + description { state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + } + programs { + program { name: "show"; + signal: "elm,action,focus,show"; + source: "elm"; + action: STATE_SET "show" 0.0; + target: "shine"; + after: "show_end"; + } + program { name: "show_end"; + action: SIGNAL_EMIT "elm,action,focus,show,end" ""; + } + program { name: "hide"; + signal: "elm,action,focus,hide"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "shine"; + after: "hide_end"; + } + program { name: "hide_end"; + action: SIGNAL_EMIT "elm,action,focus,hide,end" ""; + } + } + } + + diff --git a/theme/widgets/ivug-button.edc b/theme/widgets/ivug-button.edc new file mode 100755 index 0000000..c306b2f --- /dev/null +++ b/theme/widgets/ivug-button.edc @@ -0,0 +1,264 @@ +/* +* Copyright (c) 2000-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 GENERAL_PROGRAMS(part_name, source_name) \ + program { \ + name: "mouse_down_"part_name; \ + signal: "mouse,down,1"; \ + source: part_name"_event"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:part_name, st, 30, vl); \ + if (strcmp(st, "default") == 0) { \ + set_state(PART:part_name, "press", 0.0); \ + } \ + emit( part_name"_press", source_name ); \ + } \ + } \ + program { \ + name: "mouse_up_"part_name; \ + signal: "mouse,up,1"; \ + source: part_name"_event"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:part_name, st, 30, vl); \ + if (strcmp(st, "press") == 0) { \ + set_state(PART:part_name, "default", 0.0); \ + } \ + emit( part_name"_release", source_name ); \ + } \ + } \ + program { \ + name: "mouse_clicked_"part_name; \ + signal: "mouse,clicked,1"; \ + source: part_name"_event"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:part_name, st, 30, vl); \ + if (strcmp(st, "default") == 0) \ + emit( part_name"_click", source_name ); \ + } \ + } \ + program { \ + name: "mouse_out_"part_name; \ + signal: "mouse,out"; \ + source: part_name"_event"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:part_name, st, 30, vl); \ + emit( part_name"_out", source_name ); \ + } \ + } \ + program { \ + name: part_name",normal"; \ + source: "prog"; \ + signal: part_name",normal"; \ + script: { \ + set_state(PART:part_name, "default", 0.0); \ + set_state(PART:part_name"_event", "default", 0.0); \ + } \ + } \ + program { \ + name: part_name",press"; \ + source: "prog"; \ + signal: part_name",press"; \ + script: { \ + set_state(PART:part_name, "press", 0.0); \ + } \ + } \ + program { \ + name: part_name",dim"; \ + source: "prog"; \ + signal: part_name",dim"; \ + script: { \ + set_state(PART:part_name, "dim", 0.0); \ + } \ + } + +#define BTN_PAD (11) + +#define GENERAL_BUTTON(part_name, img_normal, img_press, img_dim) \ + part { \ + name: part_name"_event"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 0; \ + description { \ + state: "default" 0.0; \ + color: 0 0 0 0; \ + rel1 { relative: 0.0 0.0; offset: 0-BTN_PAD 0-BTN_PAD; } \ + rel2 { relative: 1.0 1.0; offset: -1+BTN_PAD -1+BTN_PAD; } \ + visible: 1; \ + } \ + } \ + part { \ + name: part_name; \ + type: IMAGE; \ + mouse_events: 0; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: 0.0 0.0; } \ + rel2 { relative: 1.0 1.0; }\ + image { normal: img_normal; } \ + } \ + description { \ + state: "press" 0.0; \ + inherit: "default" 0.0; \ + image { normal: img_press; }\ + } \ + description { \ + state: "dim" 0.0; \ + inherit: "default" 0.0; \ + image { normal: img_dim; }\ + } \ + } + + + +/* + Edit/Play/Share/NearBy/Delete +*/ + + images { + image: "T01-1_icon_Edit.png" COMP; + image: "T01-1_icon_Edit_dim.png" COMP; + image: "T01-1_icon_Edit_press.png" COMP; + image: "T01_1_icon_Share.png" COMP; + image: "T01_1_icon_Share_dim.png" COMP; + image: "T01_1_icon_Share_press.png" COMP; + image: "T01_1_icon_nearby_Delete.png" COMP; + image: "T01_1_icon_nearby_Delete_dim.png" COMP; + image: "T01_1_icon_nearby_Delete_press.png" COMP; + image: "T01_1_icon_nearby_device.png" COMP; + image: "T01_1_icon_nearby_device_dim.png" COMP; + image: "T01_1_icon_nearby_device_press.png" COMP; + image: "T01_1_icon_play.png" COMP; + image: "T01_1_icon_play_dim.png" COMP; + image: "T01_1_icon_play_press.png" COMP; + image: "T01-1_icon_save.png" COMP; + image: "T01-1_icon_save_press.png" COMP; + image: "T01-1_icon_connection_info.png" COMP; + image: "T01-1_details_icon_close.png" COMP; + image: "T01-1_icon_burst_shot_edit.png" COMP; + image: "T01-1_icon_burst_shot_edit_dim.png" COMP; + image: "T01-1_icon_burst_shot_edit_press.png" COMP; + } + + group { + name: "ivug.btn.burstedit"; + + parts { + GENERAL_BUTTON("image", "T01-1_icon_burst_shot_edit.png", "T01-1_icon_burst_shot_edit_press.png", "T01-1_icon_burst_shot_edit_dim.png") + } + programs { + GENERAL_PROGRAMS("image", "ivug.btn.burstedit") + } + } + + group { + name: "ivug.btn.edit"; + + parts { + GENERAL_BUTTON("image", "T01-1_icon_Edit.png", "T01-1_icon_Edit_press.png", "T01-1_icon_Edit_dim.png") + } + programs { + GENERAL_PROGRAMS("image", "ivug.btn.edit") + } + } + + group { + name: "ivug.btn.share"; + + parts { + GENERAL_BUTTON("image", "T01_1_icon_Share.png", "T01_1_icon_Share_press.png", "T01_1_icon_Share_dim.png") + } + programs { + GENERAL_PROGRAMS("image", "ivug.btn.share") + } + } + + group { + name: "ivug.btn.nearby"; + + parts { + GENERAL_BUTTON("image", "T01_1_icon_nearby_device.png", "T01_1_icon_nearby_device_press.png", "T01_1_icon_nearby_device_dim.png") + } + programs { + GENERAL_PROGRAMS("image", "ivug.btn.nearby") + } + } + + group { + name: "ivug.btn.play"; + + parts { + GENERAL_BUTTON("image", "T01_1_icon_play.png", "T01_1_icon_play_press.png", "T01_1_icon_play_dim.png") + } + programs { + GENERAL_PROGRAMS("image", "ivug.btn.play") + } + } + + group { + name: "ivug.btn.delete"; + + parts { + GENERAL_BUTTON("image", "T01_1_icon_nearby_Delete.png", "T01_1_icon_nearby_Delete_press.png", "T01_1_icon_nearby_Delete_dim.png") + } + programs { + GENERAL_PROGRAMS("image", "ivug.btn.delete") + } + } + + group { + name: "ivug.btn.save"; + + parts { + GENERAL_BUTTON("image", "T01-1_icon_save.png", "T01-1_icon_save_press.png", "T01-1_icon_save.png") + } + programs { + GENERAL_PROGRAMS("image", "ivug.btn.save") + } + } + + group { + name: "ivug.btn.info"; + + parts { + GENERAL_BUTTON("image", "T01-1_icon_connection_info.png", "T01-1_icon_connection_info.png", "T01-1_icon_connection_info.png") + } + programs { + GENERAL_PROGRAMS("image", "ivug.btn.info") + } + } + + group { + name: "ivug.btn.close"; + + parts { + GENERAL_BUTTON("image", "T01-1_details_icon_close.png", "T01-1_details_icon_close.png", "T01-1_details_icon_close.png") + } + programs { + GENERAL_PROGRAMS("image", "ivug.btn.close") + } + } + + diff --git a/theme/widgets/ivug-ctxpopup.edc b/theme/widgets/ivug-ctxpopup.edc new file mode 100755 index 0000000..5da7d39 --- /dev/null +++ b/theme/widgets/ivug-ctxpopup.edc @@ -0,0 +1,880 @@ +/* +* Copyright (c) 2000-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 CTXPOPUP_SHADOW_PADDING 10 +#define CTXPOPUP_FRAME_CORNER_SIZE 4 4 +#define CTXPOPUP_FONT_COLOR 0 0 0 255 +#define CTXPOPUP_CLICKED_FONT_COLOR 255 255 255 255 +#define CTXPOPUP_LIST_PADDING 10 +#define CTXPOPUP_LIST_SHADOW_PADDING 3 + +/////////////////////////////////////////////////////////////////////////////// + +group { + name: "elm/ctxpopup/layout/default"; + alias: "elm/ctxpopup/layout/copypaste"; + max: (CTXPOPUP_WIDTH_MAX_INC+CTXPOPUP_SHADOW_LEFT_PADDING+CTXPOPUP_SHADOW_RIGHT_PADDING) ((CTXPOPUP_ITEM_HEIGHT_MIN_INC*7)+CTXPOPUP_SHADOW_TOP_PADDING+CTXPOPUP_SHADOW_BOTTOM_PADDING+(CTXPOPUP_SEPARATOR_PXLINE_SIZE_INC*14)); + parts { + part { + name:"top_padding"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + min: 0 CTXPOPUP_MOVE_PAD_INC; + visible: 0; + fixed: 0 1; + align: 0.5 0.0; + rel1.relative: 0.0 0.0; + rel2.relative: 1.0 0.0; + } + description { + state: "show_up" 0.0; + inherit: "default" 0.0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + min: 0 0; + } + } + part { + name:"bottom_padding"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + min: 0 CTXPOPUP_MOVE_PAD_INC; + visible: 0; + fixed: 0 1; + align: 0.5 1.0; + rel1.relative: 0.0 1.0; + rel2.relative: 1.0 1.0; + } + description { + state: "show_down" 0.0; + inherit: "default" 0.0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + min: 0 0; + } + } + part { + name:"left_padding"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + min: CTXPOPUP_MOVE_PAD_INC 0; + visible: 0; + fixed: 1 0; + align: 0.0 0.5; + rel1.relative: 0.0 0.0; + rel2.relative: 0.0 1.0; + } + description { + state: "show_left" 0.0; + inherit: "default" 0.0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + min: 0 0; + } + } + part { + name:"right_padding"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + min: CTXPOPUP_MOVE_PAD_INC 0; + visible: 0; + fixed: 1 0; + align: 1 0.5; + rel1.relative: 1.0 0.0; + rel2.relative: 1.0 1.0; + } + description { + state: "show_right" 0.0; + inherit: "default" 0.0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + min: 0 0; + } + } + part { + name: "swallow"; + type: SWALLOW; + clip_to: "layout_clip"; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + } + description { + state: "show_up" 0.0; + rel1 {to_x:"left_padding"; to_y:"top_padding"; relative: 1.0 1.0;} + rel2 {to_x:"right_padding"; to_y:"top_padding"; relative: 0.0 1.0;} + align: 0.5 0.0; + } + description { + state: "show_down" 0.0; + rel1 {to_x:"left_padding"; to_y:"bottom_padding"; relative: 1.0 0.0;} + rel2 {to_x:"right_padding"; to_y:"bottom_padding"; relative: 0.0 0.0;} + align: 0.5 1.0; + } + description { + state: "show_left" 0.0; + rel1 {to_x:"left_padding"; to_y:"top_padding"; relative: 1.0 1.0;} + rel2 {to_x:"left_padding"; to_y:"bottom_padding"; relative: 1.0 0.0;} + align: 0.0 0.5; + } + description { + state: "show_right" 0.0; + rel1 {to_x:"right_padding"; to_y:"top_padding"; relative: 0.0 1.0;} + rel2 {to_x:"right_padding"; to_y:"bottom_padding"; relative: 0.0 0.0;} + align: 1.0 0.5; + } + } + part { + name: "event_blocker"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + color: 0 0 0 0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { + name: "layout_clip"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + color: 255 255 255 0; + rel1 {to: "swallow"; relative: -0.2 -0.2; } + rel2 {to: "swallow"; relative: 1.2 1.2;} + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + } + } + } + programs { + program { + name: "showup"; + signal: "elm,state,show,up"; + source: "elm"; + script { + new st[31]; + new Float:vl; + get_state(PART:"swallow", st, 30, vl); + if (strcmp(st, "show_up")) { + set_state(PART:"swallow", "show_up", 0.0); + set_state(PART:"top_padding", "show_up", 0.0); + } + } + after: "showupend"; + } + program { + name: "showdown"; + signal: "elm,state,show,down"; + source: "elm"; + script { + new st[31]; + new Float:vl; + get_state(PART:"swallow", st, 30, vl); + if (strcmp(st, "show_down")) { + set_state(PART:"swallow", "show_down", 0.0); + set_state(PART:"bottom_padding", "show_down", 0.0); + } + } + after: "showdownend"; + } + program { + name: "showleft"; + signal: "elm,state,show,left"; + source: "elm"; + script { + new st[31]; + new Float:vl; + get_state(PART:"swallow", st, 30, vl); + if (strcmp(st, "show_left")) { + set_state(PART:"swallow", "show_left", 0.0); + set_state(PART:"left_padding", "show_left", 0.0); + } + } + after: "showleftend"; + } + program { + name: "showright"; + signal: "elm,state,show,right"; + source: "elm"; + script { + new st[31]; + new Float:vl; + get_state(PART:"swallow", st, 30, vl); + if (strcmp(st, "show_right")) { + set_state(PART:"swallow", "show_right", 0.0); + set_state(PART:"right_padding", "show_right", 0.0); + } + } + after: "showrightend"; + } + program { + name: "show_clip_blocker"; + signal: "elm,state,show,*"; + source: "elm"; + action: STATE_SET "visible" 0.0; + transition: SIN_FAC 0.33 1.1; + target: "layout_clip"; + target: "event_blocker"; + } + program { + name: "showupend"; + action: STATE_SET "visible" 0.0; + transition: SIN_FAC 0.33 1.1; + target: "top_padding"; + } + program { + name: "showdownend"; + action: STATE_SET "visible" 0.0; + transition: SIN_FAC 0.33 1.1; + target: "bottom_padding"; + } + program { + name: "showleftend"; + action: STATE_SET "visible" 0.0; + transition: SIN_FAC 0.33 1.1; + target: "left_padding"; + } + program { + name: "showrightend"; + action: STATE_SET "visible" 0.0; + transition: SIN_FAC 0.33 1.1; + target: "right_padding"; + } + program { + name: "hideup"; + signal: "elm,state,hide,up"; + source: "elm"; + action: STATE_SET "show_up" 0.0; + target: "swallow"; + target: "top_padding"; + transition: SIN_FAC 0.33 1.1; + after: "be_default"; + } + program { + name: "hidedown"; + signal: "elm,state,hide,down"; + source: "elm"; + action: STATE_SET "show_down" 0.0; + target: "swallow"; + target: "bottom_padding"; + transition: SIN_FAC 0.33 1.1; + after: "be_default"; + } + program { + name: "hideleft"; + signal: "elm,state,hide,left"; + source: "elm"; + action: STATE_SET "show_left" 0.0; + target: "swallow"; + target: "left_padding"; + transition: SIN_FAC 0.33 1.1; + after: "be_default"; + } + program { + name: "hideright"; + signal: "elm,state,hide,right"; + source: "elm"; + action: STATE_SET "show_right" 0.0; + target: "swallow"; + target: "right_padding"; + transition: SIN_FAC 0.33 1.1; + after: "be_default"; + } + program { + name: "hide_clip"; + signal: "elm,state,hide,*"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "layout_clip"; + transition: SIN_FAC 0.33 1.1; + after: "be_default"; + } + program { + name: "hide_event_blocker"; + signal: "elm,state,hide,*"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "event_blocker"; + } + program { + name: "be_default"; + action: STATE_SET "default" 0.0; + target: "swallow"; + target: "top_padding"; + target: "bottom_padding"; + target: "left_padding"; + target: "right_padding"; + after: "hidefinished"; + } + program { + name: "hidefinished"; + action: SIGNAL_EMIT "elm,action,hide,finished" ""; + } + } +} +/////////////////////////////////////////////////////////////////////////////// +group { + name: "elm/ctxpopup/layout/landscape/default"; + inherit: "elm/ctxpopup/layout/default"; + max: (CTXPOPUP_WIDTH_MAX_INC+CTXPOPUP_SHADOW_LEFT_PADDING+CTXPOPUP_SHADOW_RIGHT_PADDING) ((CTXPOPUP_ITEM_HEIGHT_MIN_INC*5)+CTXPOPUP_SHADOW_TOP_PADDING+CTXPOPUP_SHADOW_BOTTOM_PADDING+(CTXPOPUP_SEPARATOR_PXLINE_SIZE_INC*10)); +} + + +group { + name: "elm/ctxpopup/bg/default"; + parts { + part { + name: "bg"; + type: RECT; + mouse_events: 1; + description { + state: "default" 0.0; + visible: 0; + } + description { + state: "visible" 0.0; + color: 0 0 0 0; + min: 1280 1280; + align: 0.0 0.0; + visible: 1; + } + } + } + programs { + program { + name: "clicked_event"; + signal: "mouse,clicked,1"; + source: "bg"; + action: SIGNAL_EMIT "elm,action,click" ""; + } + program { + name: "show"; + signal: "elm,state,show"; + source: "elm"; + action: STATE_SET "visible" 0.0; + target: "bg"; + } + program { + name: "hide"; + signal: "elm,state,hide"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "bg"; + } + } +} + +group { + name: "elm/ctxpopup/arrow/default"; + images { + image: "00_popup_bubble_tail_left.png" COMP; + image: "00_popup_bubble_tail_right.png" COMP; + image: "00_popup_bubble_tail_top.png" COMP; + image: "00_popup_bubble_tail_bottom.png" COMP; + } + parts { + part { + name: "ctxpopup_arrow"; + type: IMAGE; + scale: 1; + description { + state: "default" 0.0; + min: CTXPOPUP_ARROW_SIZE_INC; + max: CTXPOPUP_ARROW_SIZE_INC; + fixed: 1 1; + visible: 0; + align: 0.5 0.5; + } + description { + state: "left" 0.0; + min: CTXPOPUP_ARROW_SIZE_INC; + max: CTXPOPUP_ARROW_SIZE_INC; + fixed: 1 1; + align: 1.0 0.5; + image { + normal: "00_popup_bubble_tail_left.png"; + } + } + description { + state: "right" 0.0; + min: CTXPOPUP_ARROW_SIZE_INC; + max: CTXPOPUP_ARROW_SIZE_INC; + fixed: 1 1; + align: 0.0 0.5; + image { + normal: "00_popup_bubble_tail_right.png"; + } + } + description { + state: "top" 0.0; + min: CTXPOPUP_ARROW_SIZE_INC; + max: CTXPOPUP_ARROW_SIZE_INC; + fixed: 1 1; + align: 0.5 1.0; + image { + normal: "00_popup_bubble_tail_top.png"; + } + } + description { + state: "bottom" 0.0; + min: CTXPOPUP_ARROW_SIZE_INC; + max: CTXPOPUP_ARROW_SIZE_INC; + fixed: 1 1; + align: 0.5 0.0; + image { + normal: "00_popup_bubble_tail_bottom.png"; + } + } + } + } + programs { + program { + name: "enable_left_arrow"; + signal: "elm,state,left"; + source: "elm"; + action: STATE_SET "left" 0.0; + target: "ctxpopup_arrow"; + } + program { + name: "enable_right_arrow"; + signal: "elm,state,right"; + source: "elm"; + action: STATE_SET "right" 0.0; + target: "ctxpopup_arrow"; + } + program { + name: "enable_top_arrow"; + signal: "elm,state,top"; + source: "elm"; + action: STATE_SET "top" 0.0; + target: "ctxpopup_arrow"; + } + program { + name: "enable_bottom_arrow"; + signal: "elm,state,bottom"; + source: "elm"; + action: STATE_SET "bottom" 0.0; + target: "ctxpopup_arrow"; + } + } +} +/////////////////////////////////////////////////////////////////////////////// +group { + name: "elm/ctxpopup/text_style_item/default"; + + images { + image: "00_more_popup_press.png" COMP; + } + + data.item: "item_max_size" CTXPOPUP_TEXT_MAX_INC; + + parts { + part { + name: "event_blocker"; + type: RECT; + mouse_events: 1; + description { + state: "default" 0.0; + color: 0 0 0 0; + } + } + part { + name: "bg"; + mouse_events: 0; + type: IMAGE; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + min: (CTXPOPUP_WIDTH_MIN_INC-CTXPOPUP_CONTENT_PADDING_WIDTH*2-CTXPOPUP_PRESS_PADDING*2) 1; + max: (CTXPOPUP_WIDTH_MAX_INC-CTXPOPUP_CONTENT_PADDING_WIDTH*2-CTXPOPUP_PRESS_PADDING*2) (CTXPOPUP_ITEM_HEIGHT_MAX_INC-CTXPOPUP_PRESS_PADDING*2); + rel1 {to_x: "bg_press_left_padding"; to_y: "bg_press_top_padding"; relative: 1.0 1.0;} + rel2 {to_x: "bg_press_right_padding"; to_y: "bg_press_bottom_padding"; relative: 0.0 0.0;} + image { + normal: "00_more_popup_press.png"; + border: CTXPOPUP_BUBBLE_BG_PRESSED_IMAGE_BORDER; + border_scale: 1; + } + } + description { + state: "clicked" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { + name: "bg_press_left_padding"; + mouse_events: 0; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + min: CTXPOPUP_PRESS_PADDING CTXPOPUP_ITEM_HEIGHT_MIN_INC; + max: CTXPOPUP_PRESS_PADDING CTXPOPUP_ITEM_HEIGHT_MAX_INC; + rel1 {to: "bg_press_top_padding"; relative: 0.0 0.0;} + align: 0 0.5; + } + } + part { + name: "bg_press_right_padding"; + mouse_events: 0; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + min: CTXPOPUP_PRESS_PADDING CTXPOPUP_ITEM_HEIGHT_MIN_INC; + max: CTXPOPUP_PRESS_PADDING CTXPOPUP_ITEM_HEIGHT_MAX_INC; + rel2 {to: "bg_press_bottom_padding"; relative: 1.0 1.0;} + align: 1 0.5; + } + } + part { + name: "bg_press_top_padding"; + mouse_events: 0; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + min: (CTXPOPUP_WIDTH_MIN_INC-CTXPOPUP_CONTENT_PADDING_WIDTH*2) CTXPOPUP_PRESS_PADDING2; + max: (CTXPOPUP_WIDTH_MAX_INC-CTXPOPUP_CONTENT_PADDING_WIDTH*2) CTXPOPUP_PRESS_PADDING2; + rel1 {to: "separator2"; relative: 0.0 1.0;} + align: 0.5 0; + } + } + part { + name: "bg_press_bottom_padding"; + mouse_events: 0; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + min: (CTXPOPUP_WIDTH_MIN_INC-CTXPOPUP_CONTENT_PADDING_WIDTH*2) CTXPOPUP_PRESS_PADDING2; + max: (CTXPOPUP_WIDTH_MAX_INC-CTXPOPUP_CONTENT_PADDING_WIDTH*2) CTXPOPUP_PRESS_PADDING2; + align: 0.5 1; + } + } + part { + name: "separator1"; + mouse_events: 0; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + color: CTXPOPUP_SEPARATOR_COLOR_INC; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 1.0; } + align: 0.5 0; + min: 0 CTXPOPUP_SEPARATOR_PXLINE_SIZE_INC; + max: 999999 CTXPOPUP_SEPARATOR_PXLINE_SIZE_INC; + visible: 0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { + name: "separator2"; + mouse_events: 0; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + color: CTXPOPUP_SEPARATOR2_COLOR_INC; + rel1 { relative: 0.0 1.0; to: "separator1";} + rel2 { relative: 1.0 1.0; to: "separator1"; offset: 0 0; } + align: 0.5 0; + fixed: 0 1; + min: 0 CTXPOPUP_SEPARATOR_PXLINE_SIZE_INC; + max: 999999 CTXPOPUP_SEPARATOR_PXLINE_SIZE_INC; + visible: 0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { + name: "left_padding"; + type: RECT; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + min: (CTXPOPUP_ITEM_TEXT_PADDING_INC-CTXPOPUP_CONTENT_PADDING_WIDTH) CTXPOPUP_ITEM_HEIGHT_MIN_INC; + max: (CTXPOPUP_ITEM_TEXT_PADDING_INC-CTXPOPUP_CONTENT_PADDING_WIDTH) CTXPOPUP_ITEM_HEIGHT_MAX_INC; + align: 0 0; + fixed: 1 1; + visible: 0; + } + } + part { + name: "elm.text"; + type: TEXT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + min: 1 (CTXPOPUP_ITEM_HEIGHT_MIN_INC-CTXPOPUP_PRESS_PADDING*2); + max: CTXPOPUP_TEXT_MAX_INC (CTXPOPUP_ITEM_HEIGHT_MAX_INC-CTXPOPUP_PRESS_PADDING*2); + align: 0.5 0.5; + rel1 {relative: 1.0 0.0; to_x: "left_padding"; to_y: "bg";} + rel2 {relative: 0.0 1.0; to_x: "right_padding"; to_y: "bg";} + color: CTXPOPUP_LIST_MAIN_TEXT_COLOR_INC; + text { + font: "Tizen:style=Regular"; + size: CTXPOPUP_LIST_MAIN_TEXT_SIZE_INC; + size_range: CTXPOPUP_LIST_MAIN_TEXT_SIZE_INC CTXPOPUP_LIST_MAIN_TEXT_MAX_SIZE_INC; + align: 0 0.5; + min: 1 1; + text_class: "list_item"; + } + } + description { + state: "clicked" 0.0; + inherit: "default" 0.0; + color: CTXPOPUP_LIST_MAIN_TEXT_PRESS_COLOR_INC; + text.min: 0 1; + } + description { + state: "disabled" 0.0; + inherit: "default" 0.0; + color: CTXPOPUP_LIST_MAIN_TEXT_DIM_COLOR_INC; + } + description { + state: "ellipsis" 0.0; + inherit: "default" 0.0; + min: CTXPOPUP_TEXT_MAX_INC CTXPOPUP_ITEM_HEIGHT_MIN_INC; + text.min: 0 1; + } + description { + state: "ellipsis_disabled" 0.0; + inherit: "ellipsis" 0.0; + color: CTXPOPUP_LIST_MAIN_TEXT_DIM_COLOR_INC; + } + } + part { + name: "right_padding"; + type: RECT; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + visible: 0; + min: (CTXPOPUP_ITEM_TEXT_PADDING_INC-CTXPOPUP_CONTENT_PADDING_WIDTH) CTXPOPUP_ITEM_HEIGHT_MIN_INC; + max: (CTXPOPUP_ITEM_TEXT_PADDING_INC-CTXPOPUP_CONTENT_PADDING_WIDTH) CTXPOPUP_ITEM_HEIGHT_MAX_INC; + fixed: 1 1; + align: 1.0 1.0; + } + } + part { + name: "over1"; + type: RECT; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + color: 0 0 0 0; + } + } + part { + name: "over2"; + type: RECT; + mouse_events: 1; + repeat_events: 1; + dragable { + x: 1 1 0; + y: 1 1 0; + } + description { + state: "default" 0.0; + rel1.to:"bg"; + rel2.to:"bg"; + color: 0 0 0 0; + } + } + part { + name: "disclip"; + type: RECT; + description { + state: "default" 0.0; + visible: 0; + } + description { + state: "disabled" 0.0; + visible: 1; + color: CTXPOPUP_ITEM_DISABLED_COLOR; + } + } + } + programs { + program { + name: "text_default"; + signal: "elm,state,text,default"; + source: "elm"; + script { + new st[31]; + new Float:vl; + get_state(PART:"elm.text", st, 30, vl); + if (!strcmp(st, "disabled") || !strcmp(st, "ellipsis_disabled")) + set_state(PART:"elm.text", "disabled", 0.0); + else + set_state(PART:"elm.text", "default", 0.0); + } + } + program { + name: "text_ellipsis"; + signal: "elm,state,text,ellipsis"; + source: "elm"; + script { + new st[31]; + new Float:vl; + get_state(PART:"elm.text", st, 30, vl); + if (!strcmp(st, "disabled") || !strcmp(st, "elipsis_disabled")) + set_state(PART:"elm.text", "ellipsis_disabled", 0.0); + else + set_state(PART:"elm.text", "ellipsis", 0.0); + } + } + program { + name: "item_unclick"; + signal: "mouse,clicked,1"; + source: "over1"; + action: SIGNAL_EMIT "elm,action,click" ""; + after: "touch_snd"; + } + program { + name: "touch_snd"; + action: PLAY_SAMPLE "touch_sound" 1.0; + } + program { + name: "disable"; + signal: "elm,state,disabled"; + source: "elm"; + script { + new st[31]; + new Float:vl; + get_state(PART:"elm.text", st, 30, vl); + if ((!strcmp(st, "ellipsis")) || (!strcmp(st, "ellipsis_disabled"))) + set_state(PART:"elm.text", "ellipsis_disabled", 0.0); + else + set_state(PART:"elm.text", "disabled", 0.0); + + set_state(PART:"disclip", "disabled", 0.0); + } + } + program { + name: "enable"; + signal: "elm,state,enabled"; + source: "elm"; + script { + new st[31]; + new Float:vl; + get_state(PART:"elm.text", st, 30, vl); + if ((!strcmp(st, "ellipsis")) || (!strcmp(st, "ellipsis_disabled"))) + set_state(PART:"elm.text", "ellipsis", 0.0); + else + set_state(PART:"elm.text", "default", 0.0); + + set_state(PART:"disclip", "default", 0.0); + } + } + program { + name: "default"; + signal: "elm,state,default"; + source: "elm"; + script { + set_state(PART:"separator1", "default", 0.0); + set_state(PART:"separator2", "default", 0.0); + } + } + program { + name: "separator"; + signal: "elm,state,separator"; + source: "elm"; + script { + set_state(PART:"separator1", "visible", 0.0); + set_state(PART:"separator2", "visible", 0.0); + } + } + program { + name: "item_click2"; + signal: "mouse,down,1"; + source: "over2"; + script { + set_state(PART:"elm.text", "clicked", 0.0); + set_state(PART:"bg", "clicked", 0.0); + } + } + program { + name: "drag"; + signal: "drag"; + source: "over2"; + script { + new Float:dx, Float:dy; + get_drag(PART:"over2", dx, dy); + if ((abs(dx) > 20) || (abs(dy) > 20)) { + set_drag(PART:"over2", 0.0, 0.0); + set_state(PART:"bg", "default", 0.0); + } + set_drag(PART:"over2", 0.0, 0.0); + } + } + program { + name: "item_unclick2"; + signal: "mouse,up,1"; + source: "over2"; + script { + set_drag(PART:"over2", 0.0, 0.0); + set_state(PART:"bg", "default", 0.0); + } + } + } +} diff --git a/theme/widgets/ivug-gengrid.edc b/theme/widgets/ivug-gengrid.edc new file mode 100755 index 0000000..f280516 --- /dev/null +++ b/theme/widgets/ivug-gengrid.edc @@ -0,0 +1,300 @@ +/* +* Copyright (c) 2000-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 GENGRID_PART_BACKGROUND_COLOR_INC 0 0 0 0 + + +#define GENGRID_DEFAULT_LEFT_TOP_PADDING_INC 0 0 +#define GENGRID_DEFAULT_RIGHT_BOTTOM_PADDING_INC 0 0 + +#define GENGRID_DEFAULT_ITEM_BG_LEFT_TOP_PADDING_INC 0 0 +#define GENGRID_DEFAULT_ITEM_BG_RIGHT_BOTTOM_PADDING_INC 0 0 + +#define GENGRID_DEFAULT_ITEM_REAL_BG_RIGHT_PADDING_INC 0 0 + +#define GENGRID_PART_REORDER_DEFAULT_BG_COLOR_INC 0 0 0 0 + +#define GENGRID_DEFAULT_LEFT_TOP_FOCUS_PADDING_INC 0 0 +#define GENGRID_DEFAULT_RIGHT_BOTTOM_FOCUS_PADDING_INC 0 0 + + +// "elm/gengrid/item/default_grid/default" + group { name: "elm/gengrid/item/thumbgrid/default"; + data.item: "contents" "elm.swallow.icon elm.swallow.end"; + images { + image : "00_thumbs_line_bg.png" COMP; + image : "T01-1_thumbnail_focus.PNG" COMP; + image : "00_thumbs_loading_bg.png" COMP; + } + parts { + part { name: "bg"; + type: RECT; + description { state: "default" 0.0; + color: GENGRID_PART_BACKGROUND_COLOR_INC; + } + } + part { name: "left_top_padding"; + type: RECT; + scale : 1; + description { state: "default" 0.0; + min: GENGRID_DEFAULT_LEFT_TOP_PADDING_INC; + align: 0.0 0.0; + visible: 0; + fixed: 1 1; + rel1.to: "bg"; + rel2 { + relative: 0.0 0.0; + to: "bg"; + } + } + } + part { name: "right_bottom_padding"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + min: GENGRID_DEFAULT_RIGHT_BOTTOM_PADDING_INC; + align: 1.0 1.0; + visible: 0; + fixed: 1 1; + rel1 { + relative: 1.0 1.0; + to: "bg"; + } + rel2.to: "bg"; + } + } + part { name: "item_bg"; + type: IMAGE; + description { state: "default" 0.0; + rel1 { + relative: 1.0 1.0; + to: "left_top_padding"; + } + rel2 { + relative: 0.0 0.0; + to: "right_bottom_padding"; + } + image.normal: "00_thumbs_line_bg.png"; + image.border: 1 1 1 1; + } + } + part { name: "item_bg_left_top_padding"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + min: GENGRID_DEFAULT_ITEM_BG_LEFT_TOP_PADDING_INC; + align: 0.0 0.0; + visible: 0; + fixed: 1 1; + rel1.to: "item_bg"; + rel2 { + relative: 0.0 0.0; + to: "item_bg"; + } + } + } + part { name: "item_bg_right_bottom_padding"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + min: GENGRID_DEFAULT_ITEM_BG_RIGHT_BOTTOM_PADDING_INC; + align: 1.0 1.0; + visible: 0; + fixed: 1 1; + rel1 { + relative: 1.0 1.0; + to: "item_bg"; + } + rel2.to: "item_bg"; + } + } + part { name: "item_real_bg"; + description { state: "default" 0.0; + visible: 0; + rel1 { + relative: 1.0 1.0; + to: "item_bg_left_top_padding"; + } + rel2 { + relative: 0.0 0.0; + to: "item_bg_right_bottom_padding"; + } + image.normal: "00_thumbs_loading_bg.png"; + } + } + part { name: "item_real_bg_left_top_padding"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + min: GENGRID_DEFAULT_ITEM_REAL_BG_RIGHT_PADDING_INC; + align: 0.0 0.0; + visible: 0; + fixed: 1 1; + rel1.to: "item_real_bg"; + rel2 { + relative: 0.0 0.0; + to: "item_real_bg"; + } + } + } + part { name: "item_real_bg_right_bottom_padding"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + min: GENGRID_DEFAULT_ITEM_REAL_BG_RIGHT_PADDING_INC; + align: 1.0 1.0; + fixed: 1 1; + visible: 0; + rel1 { + relative: 1.0 1.0; + to: "item_real_bg"; + } + rel2.to: "item_real_bg"; + } + } + part { name: "elm.swallow.icon"; + type: SWALLOW; + description { state: "default" 0.0; + rel1 { + relative: 1.0 1.0; + to: "item_real_bg_left_top_padding"; + } + rel2 { + relative: 0.0 0.0; + to: "item_real_bg_right_bottom_padding"; + } + } + } + part { name: "elm.swallow.end"; + type: SWALLOW; + description { state: "default" 0.0; + rel1.to: "elm.swallow.icon"; + rel2.to: "elm.swallow.icon"; + } + } + part { name: "reorder_bg"; + type: RECT; + repeat_events: 1; + description { state: "default" 0.0; + color: GENGRID_PART_BG_COLOR_INC; + rel1.to: "item_bg"; + rel2.to: "item_bg"; + } + description { state: "enabled" 0.0; + inherit: "default" 0.0; + color: GENGRID_PART_REORDER_DEFAULT_BG_COLOR_INC; + } + } + part { name: "focus_bg_left_top_padding"; + type: RECT; + scale : 1; + description { state: "default" 0.0; + min: GENGRID_DEFAULT_LEFT_TOP_FOCUS_PADDING_INC; + align: 0.0 0.0; + visible: 0; + fixed: 1 1; + rel1.to: "bg"; + rel2 { + relative: 0.0 0.0; + to: "bg"; + } + } + } + part { name: "focus_bg_right_bottom_padding"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + min: GENGRID_DEFAULT_RIGHT_BOTTOM_FOCUS_PADDING_INC; + align: 1.0 1.0; + visible: 0; + fixed: 1 1; + rel1 { + relative: 1.0 1.0; + to: "bg"; + } + rel2.to: "bg"; + } + } + part { name: "focus_bg"; + type: IMAGE; + description { state: "default" 0.0; + visible: 0; + rel1 { + relative: 1.0 1.0; + to: "focus_bg_left_top_padding"; + } + rel2 { + relative: 0.0 0.0; + to: "focus_bg_right_bottom_padding"; + } + image.normal: "T01-1_thumbnail_focus.PNG"; + image.border: 9 9 9 9; + } + description { state: "enabled" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + } + programs { + program { name: "go_mouse_down"; + signal: "mouse,down,1"; + source: "reorder_bg"; + action: STATE_SET "enabled" 0.0; + target: "focus_bg"; + transition: ACCELERATE 0.2; + } + program { name: "go_mouse_up"; + signal: "mouse,up,1"; + source: "reorder_bg"; + action: STATE_SET "default" 0.0; + target: "focus_bg"; + transition: DECELERATE 0.2; + } + program { name: "go_reorder_disabled"; + signal: "elm,state,reorder,disabled"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "reorder_bg"; + target: "focus_bg"; + transition: ACCELERATE 0.3; + } + program { name: "go_reorder_enabled"; + signal: "elm,state,reorder,enabled"; + source: "elm"; + action: STATE_SET "enabled" 0.0; + target: "reorder_bg"; + target: "focus_bg"; + transition: DECELERATE 0.3; + } + program { name: "focus_in"; + signal: "elm,state,focused"; + source: "elm"; + action: STATE_SET "enabled" 0.0; + target: "focus_bg"; + } + program { name: "focus_out"; + signal: "elm,state,unfocused"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "focus_bg"; + } + } + } + + diff --git a/theme/widgets/ivug-naviframe.edc b/theme/widgets/ivug-naviframe.edc new file mode 100755 index 0000000..00c8c08 --- /dev/null +++ b/theme/widgets/ivug-naviframe.edc @@ -0,0 +1,1927 @@ +/* +* Copyright (c) 2000-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. +* +*/ + +/* +* Refer to themes/groups/naviframe.edc +* +* 1. "elm/naviframe/item/basic/ivug-main/default" +* 2. "elm/naviframe/item/basic/ivug-main/noindicator" +*/ + + +#define NAVIFRAME_VIEW_TRANS_TIME 0.3 +#define NAVIFRAME_TITLE_TRANS_TIME 0.5 +#define NAVIFRAME_TITLE_SLIDE_TEXT_GAP 60 +#define NAVIFRAME_SUBTITLE_SLIDE_TEXT_GAP 40 +#define NAVIFRAME_TITLE_SLIDE_MAX_COUNT 3 +#define NAVIFRAME_TITLE_SLIDE_SPEED_WEIGHT 0.5 + +/////////////////////////////////////////////////////////////////////////// +// Naviframe +/////////////////////////////////////////////////////////////////////////// + + group { name: "elm/naviframe/item/basic/ivug-main/default"; + images { + image: "00_title_bg.png" COMP; + image: "00_badge_bg.png" COMP; + image: "00_effect_title_text_dim_left.png" COMP; + image: "00_effect_title_text_dim_right.png" COMP; + } + script { + public tbar_bg = 0; //Toolbar BG Show call count + public tbar_close = 0; //Toolbar lastest Open/Close status + public title_badge_visible = 0; //Title badge visible/hidden status + public landscape = 0; //Landscape mode status + public subtitle = 0; //Subtitle on/off status + + public title_duration = 0; + public subtitle_duration = 0; + public title_slide_stop; + public subtitle_slide_stop; + public title_slide_start_timer; + public subtitle_slide_start_timer; + public title_slide_anim_id; + public subtitle_slide_anim_id; + public title_text_w; + public subtitle_text_w; + public org_title_text_w; + public org_subtitle_text_w; + public title_slide_count = 0; + public subtitle_slide_count = 0; + + public get_width(val) { + new x, y, w, h; + new buf[128]; + new st[31]; + new Float:vl; + + // Title Text + if (val == 0) { + get_geometry(PART:"elm.text.title", x, y, w, h); + set_int(org_title_text_w, w); + get_text(PART:"elm.text.title", buf, 127); + set_text(PART:"elm.text.full_title", buf); + get_state(PART:"elm.text.title", st, 30, vl); + set_state(PART:"elm.text.full_title", st, 0.0); + get_geometry(PART:"elm.text.full_title", x, y, w, h); + set_int(title_text_w, w); + } + // Subtitle Text + else { + get_geometry(PART:"elm.text.subtitle", x, y, w, h); + set_int(org_subtitle_text_w, w); + get_text(PART:"elm.text.subtitle", buf, 127); + set_text(PART:"elm.text.full_subtitle", buf); + get_state(PART:"elm.text.subtitle", st, 30, vl); + set_state(PART:"elm.text.full_subtitle", st, 0.0); + get_geometry(PART:"elm.text.full_subtitle", x, y, w, h); + set_int(subtitle_text_w, w); + } + } + + public slide_to_end_anim(val, Float:pos) { + // Title Text + if (val == 0) { + if (get_int(title_slide_stop)) return; + + if (!get_int(subtitle)) { + set_tween_state(PART:"elm.text.slide_begin_title", pos, "title_slide_begin", 0.0, "title_slide_end", 0.0); + set_tween_state(PART:"elm.text.slide_end_title", pos, "title_slide_begin", 0.0, "title_slide_end", 0.0); + } + else { + if (!get_int(landscape)) { + set_tween_state(PART:"elm.text.slide_begin_title", pos, "maintitle_slide_begin", 0.0, "maintitle_slide_end", 0.0); + set_tween_state(PART:"elm.text.slide_end_title", pos, "maintitle_slide_begin", 0.0, "maintitle_slide_end", 0.0); + } + else { + set_tween_state(PART:"elm.text.slide_begin_title", pos, "maintitle_slide_begin_landscape", 0.0, "maintitle_slide_end_landscape", 0.0); + set_tween_state(PART:"elm.text.slide_end_title", pos, "maintitle_slide_begin_landscape", 0.0, "maintitle_slide_end_landscape", 0.0); + } + } + + if (pos >= 1.0) { + if (get_int(title_slide_count) < NAVIFRAME_TITLE_SLIDE_MAX_COUNT) + set_int(title_slide_start_timer, timer(1.0, "start_slide", 0)); + else + stop_slide(0); + } + } + // Subtitle Text + else { + if (get_int(subtitle_slide_stop)) return; + + if (!get_int(landscape)) { + set_tween_state(PART:"elm.text.slide_begin_subtitle", pos, "slide_begin", 0.0, "slide_end", 0.0); + set_tween_state(PART:"elm.text.slide_end_subtitle", pos, "slide_begin", 0.0, "slide_end", 0.0); + } + else { + set_tween_state(PART:"elm.text.slide_begin_subtitle", pos, "slide_begin_landscape", 0.0, "slide_end_landscape", 0.0); + set_tween_state(PART:"elm.text.slide_end_subtitle", pos, "slide_begin_landscape", 0.0, "slide_end_landscape", 0.0); + } + + if (pos >= 1.0) { + if (get_int(subtitle_slide_count) < NAVIFRAME_TITLE_SLIDE_MAX_COUNT) + set_int(subtitle_slide_start_timer ,timer(1.0, "start_slide", 1)); + else + stop_slide(1); + } + } + } + + public slide_to_end(val) { + // Title Text + if (val == 0) { + if (get_int(title_slide_stop)) return; + set_int(title_slide_anim_id, anim(get_float(title_duration), "slide_to_end_anim", 0)); + } + // Subtitle Text + else { + if (get_int(subtitle_slide_stop)) return; + set_int(subtitle_slide_anim_id, anim(get_float(subtitle_duration), "slide_to_end_anim", 1)); + } + } + + public start_slide(val) { + new Float:len; + new buf[128]; + new st[31]; + new Float:vl; + get_state(PART:"title_bg", st, 30, vl); + if (!strcmp(st, "hide")) + return; + + // Title Text + if (val == 0) { + set_int(title_slide_count, get_int(title_slide_count) + 1); + + if (get_int(title_slide_count) == 1) { + get_width(0); + + if (get_int(title_text_w) <= get_int(org_title_text_w)) { + set_int(title_slide_count, 0); + return; + } + + set_state(PART:"title_text_slide_effect_left", "visible", 0.0); + set_state(PART:"title_text_slide_effect_right", "visible", 0.0); + + len = get_int(title_text_w) + NAVIFRAME_TITLE_SLIDE_TEXT_GAP; + set_float(title_duration, len / NAVIFRAME_TITLE_FONT_SIZE_INC * NAVIFRAME_TITLE_SLIDE_SPEED_WEIGHT); + + set_int(title_slide_stop, 0); + + get_text(PART:"elm.text.title", buf, 127); + set_text(PART:"elm.text.slide_begin_title", buf); + set_text(PART:"elm.text.slide_end_title", buf); + } + + if (!get_int(subtitle)) { + set_state(PART:"elm.text.slide_begin_title", "title_slide_begin", 0.0); + set_state(PART:"elm.text.slide_end_title", "title_slide_begin", 0.0); + } + else { + set_state(PART:"elm.text.slide_begin_title", "maintitle_slide_begin", 0.0); + set_state(PART:"elm.text.slide_end_title", "maintitle_slide_begin", 0.0); + } + + if (get_int(title_slide_count) == 1) { + set_state(PART:"title_text_clip", "slide", 0.0); + set_state(PART:"slide_title_text_clip", "slide", 0.0); + } + + slide_to_end(0); + } + // Subtitle Text + else { + set_int(subtitle_slide_count, get_int(subtitle_slide_count) + 1); + + if (get_int(subtitle_slide_count) == 1) { + get_width(1); + + if (get_int(subtitle_text_w) <= get_int(org_subtitle_text_w)) { + set_int(subtitle_slide_count, 0); + return; + } + + set_state(PART:"subtitle_text_slide_effect_left", "visible", 0.0); + set_state(PART:"subtitle_text_slide_effect_right", "visible", 0.0); + + len = get_int(subtitle_text_w) + NAVIFRAME_SUBTITLE_SLIDE_TEXT_GAP; + if (!get_int(landscape)) + set_float(subtitle_duration, len / NAVIFRAME_SUBTITLE_FONT_SIZE_INC * NAVIFRAME_TITLE_SLIDE_SPEED_WEIGHT); + else + set_float(subtitle_duration, len / NAVIFRAME_LANDSCAPE_SUBTITLE_FONT_SIZE_INC * NAVIFRAME_TITLE_SLIDE_SPEED_WEIGHT); + + set_int(subtitle_slide_stop, 0); + + get_text(PART:"elm.text.subtitle", buf, 127); + set_text(PART:"elm.text.slide_begin_subtitle", buf); + set_text(PART:"elm.text.slide_end_subtitle", buf); + } + + if (!get_int(landscape)) { + set_state(PART:"elm.text.slide_begin_subtitle", "slide_begin", 0.0); + set_state(PART:"elm.text.slide_end_subtitle", "slide_begin", 0.0); + } + else { + set_state(PART:"elm.text.slide_begin_subtitle", "slide_begin_landscape", 0.0); + set_state(PART:"elm.text.slide_end_subtitle", "slide_begin_landscape", 0.0); + } + + if (get_int(subtitle_slide_count) == 1) { + set_state(PART:"subtitle_text_clip", "slide", 0.0); + set_state(PART:"slide_subtitle_text_clip", "slide", 0.0); + } + + slide_to_end(1); + } + } + + public stop_slide(val) { + new slide_start_timer; + new slide_anim_id; + + // Title Text + if (val == 0) { + set_int(title_slide_stop, 1); + set_int(title_slide_count, 0); + + slide_start_timer = get_int(title_slide_start_timer); + if (slide_start_timer) { + cancel_timer(slide_start_timer); + set_int(title_slide_start_timer, 0); + } + slide_anim_id = get_int(title_slide_anim_id); + if (slide_anim_id) { + cancel_anim(slide_anim_id); + set_int(title_slide_anim_id, 0); + } + + set_text(PART:"elm.text.slide_begin_title", ""); + set_text(PART:"elm.text.slide_end_title", ""); + set_state(PART:"elm.text.slide_begin_title", "default", 0.0); + set_state(PART:"elm.text.slide_end_title", "default", 0.0); + set_state(PART:"title_text_clip", "default", 0.0); + set_state(PART:"slide_title_text_clip", "default", 0.0); + set_state(PART:"title_text_slide_effect_left", "default", 0.0); + set_state(PART:"title_text_slide_effect_right", "default", 0.0); + } + // Subtitle Text + else { + set_int(subtitle_slide_stop, 1); + set_int(subtitle_slide_count, 0); + + slide_start_timer = get_int(subtitle_slide_start_timer); + if (slide_start_timer) { + cancel_timer(slide_start_timer); + set_int(subtitle_slide_start_timer, 0); + } + slide_anim_id = get_int(subtitle_slide_anim_id); + if (slide_anim_id) { + cancel_anim(slide_anim_id); + set_int(subtitle_slide_anim_id, 0); + } + + set_text(PART:"elm.text.slide_begin_subtitle", ""); + set_text(PART:"elm.text.slide_end_subtitle", ""); + set_state(PART:"elm.text.slide_begin_subtitle", "default", 0.0); + set_state(PART:"elm.text.slide_end_subtitle", "default", 0.0); + set_state(PART:"subtitle_text_clip", "default", 0.0); + set_state(PART:"slide_subtitle_text_clip", "default", 0.0); + set_state(PART:"subtitle_text_slide_effect_left", "default", 0.0); + set_state(PART:"subtitle_text_slide_effect_right", "default", 0.0); + } + } + } + + parts { + part { name: "clipper"; + type: RECT; + description { state: "default" 0.0; + visible: 1; + } + description { state: "left" 0.0; + visible: 0; + } + } + part { name: "base"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + visible: 0; + } + description { state: "left" 0.0; + inherit: "default" 0.0; + rel1.relative: -1.0 0.0; + rel2.relative: 0.0 1.0; + } + description { state: "right" 0.0; + inherit: "default" 0.0; + rel1.relative: 1.0 0.0; + rel2.relative: 2.0 1.0; + } + } + part { name: "title_bg"; + type: IMAGE; + scale: 1; + clip_to: "title_clip"; + description { state: "default" 0.0; +// min: 0 NAVIFRAME_TITLE_H_INC; // ROOKIE : +// max: -1 NAVIFRAME_TITLE_H_INC; // ROOKIE : + min: 0 0; + max: -1 0; + + align: 0.0 0.0; + fixed: 0 1; + visible: 0; // ROOKIE : ALWAYS InVISIBLE + rel1 { relative: 0.0 0.0; to: "base"; } + rel2 { relative: 1.0 0.0; to: "base"; } + image { + normal: "00_title_bg.png"; + border: NAVIFRAME_TITLE_BG_IMAGE_BORDER_INC; + border_scale: 1; + } + } + description { state: "landscape" 0.0; + inherit: "default" 0.0; +// min: 0 NAVIFRAME_LANDSCAPE_TITLE_H_INC; // ROOKIE : +// max: -1 NAVIFRAME_LANDSCAPE_TITLE_H_INC; // ROOKIE : + min: 0 0; + max: -1 0; + + } + description { state: "hide_trans" 0.0; + inherit: "default" 0.0; + align: 0.0 1.0; + } + description { state: "hide_trans_landscape" 0.0; + inherit: "landscape" 0.0; + align: 0.0 1.0; + } + description { state: "hide" 0.0; + inherit: "default" 0.0; + min: 0 0; + max: -1 0; + } + } + part { name: "title_clip"; + type: RECT; + mouse_events: 0; + clip_to: "clipper"; + description { state: "default" 0.0; + rel1 { to_y: "title_bg"; } + rel2 { to_y: "title_bg"; } + } + } + part { name: "title_right_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: NAVIFRAME_PADDING_INC; + fixed: 1 1; + align: 1.0 0.0; + rel1 { relative: 1.0 0.0; to: "divider2"; } + rel2 { relative: 1.0 1.0; to: "divider2"; } + } + description { state: "title_left_btn_set" 0.0; + inherit: "default" 0.0; + rel1 { relative: 1.0 0.0; to: "divider1"; } + rel2 { relative: 1.0 1.0; to: "divider1"; } + } + } + part { name: "title_left_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: NAVIFRAME_PADDING_INC; + fixed: 1 1; + align: 0.0 0.0; + rel1 { relative: 0.0 0.0; to: "title_bg"; } + rel2 { relative: 0.0 1.0; to: "title_bg"; } + } + description { state: "icon" 0.0; + inherit: "default" 0.0; + min: NAVIFRAME_ICON_PADDING_INC; + } + } + part { name: "elm.swallow.content"; + type: SWALLOW; + scale: 1; + repeat_events: 0; + clip_to: "content_clip"; + description { state: "default" 0.0; + align: 0.0 0.0; + rel1.relative: 0.0 1.0; + rel1.to_x: "base"; + rel1.to_y: "title_bg"; + rel2.relative: 1.0 0.0; + rel2.to_x: "base"; + rel2.to_y: "toolbar"; + } + } + part { name: "content_clip"; + type: RECT; + mouse_events: 0; + clip_to: "clipper"; + description { state: "default" 0.0; + rel1.to_y: "elm.swallow.content"; + rel2.to_y: "elm.swallow.content"; + } + } + part { name: "badge_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 0 0; + fixed: 1 0; + align: 1.0 0.0; + rel1 { relative: 0.0 0.0; to: "title_right_padding"; } + rel2 { relative: 0.0 1.0; to: "title_right_padding"; } + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + min: NAVIFRAME_BADGE_PADDING_INC; + } + } + part { name: "title_text_bg"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 0 NAVIFRAME_TITLE_TEXT_BG_H_INC; + max: -1 NAVIFRAME_TITLE_TEXT_BG_H_INC; + fixed: 0 1; + rel1 { relative: 1.0 0.0; to_x: "title_left_padding"; to_y: "title_bg"; } + rel2 { relative: 0.0 1.0; to_x: "title_right_padding"; to_y: "title_bg"; } + } + description { state: "landscape" 0.0; + inherit: "default" 0.0; + min: 0 NAVIFRAME_LANDSCAPE_TITLE_TEXT_BG_H_INC; + max: -1 NAVIFRAME_LANDSCAPE_TITLE_TEXT_BG_H_INC; + } + } + part { name: "maintitle_text_bg"; + type: SPACER; + description { state: "default" 0.0; + rel1 { relative: 0.0 0.0; to: "title_text_bg"; } + rel2 { relative: 0.0 1.0; to_x: "badge_padding"; to_y: "title_text_bg"; } + } + description { state: "subtitle_is_set" 0.0; + inherit: "default" 0.0; + rel1 { relative: 0.0 0.0; to: "title_text_bg"; } + rel2 { relative: 0.0 0.0; to_x: "badge_padding"; to_y: "subtitle_top_padding"; } + } + } + part { name: "title_text_clip"; + type: RECT; + mouse_events: 0; + clip_to: "title_clip"; + description { state: "default" 0.0; + rel1.to: "maintitle_text_bg"; + rel2.to: "maintitle_text_bg"; + } + description { state: "slide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { name: "elm.text.title"; + type: TEXT; + effect: FAR_SHADOW BOTTOM; + scale: 1; + clip_to: "title_text_clip"; + description { state: "default" 0.0; + text { font: "Tizen:style=Bold"; + size: NAVIFRAME_TITLE_FONT_SIZE_INC; + size_range: NAVIFRAME_TITLE_FONT_MIN_SIZE_INC NAVIFRAME_TITLE_FONT_SIZE_INC; + fit: 1 0; + min: 0 0; + max: 1 0; + align: 0.0 0.5; + text_class: "tizen"; + } + color: NAVIFRAME_TITLE_TEXT_COLOR_INC; + color3: NAVIFRAME_TITLE_TEXT_SHADOW_COLOR_INC; + align: 0.0 0.5; + rel1.to: "maintitle_text_bg"; + rel2.to: "maintitle_text_bg"; + } + description { state: "subtitle_is_set" 0.0; + text { font: "Tizen:style=Bold"; + size: NAVIFRAME_TITLE_SMALL_FONT_SIZE_INC; + min: 0 0; + max: 1 0; + align: 0.0 0.5; + text_class: "tizen"; + } + color: NAVIFRAME_TITLE_TEXT_COLOR_INC; + color3: NAVIFRAME_TITLE_TEXT_SHADOW_COLOR_INC; + align: 0.0 0.5; + rel1.to: "maintitle_text_bg"; + rel2.to: "maintitle_text_bg"; + } + description { state: "subtitle_is_set_landscape" 0.0; + inherit: "subtitle_is_set" 0.0; + text.size: NAVIFRAME_LANDSCAPE_TITLE_SMALL_FONT_SIZE_INC; + } + } + part { name: "slide_title_text_clip"; + type: RECT; + mouse_events: 0; + clip_to: "title_clip"; + description { state: "default" 0.0; + visible: 0; + rel1.to: "elm.text.title"; + rel2.to: "elm.text.title"; + } + description { state: "slide" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { name: "slide_text_gap1"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + fixed: 1 0; + min: NAVIFRAME_TITLE_SLIDE_TEXT_GAP 0; + max: NAVIFRAME_TITLE_SLIDE_TEXT_GAP -1; + align: 1.0 0.5; + rel1 { relative: 0.0 0.0; to: "maintitle_text_bg"; } + rel2 { relative: 0.0 1.0; to: "maintitle_text_bg"; } + } + } + part { name: "elm.text.slide_begin_title"; + type: TEXT; + effect: FAR_SHADOW BOTTOM; + scale: 1; + clip_to: "slide_title_text_clip"; + description { state: "default" 0.0; + text { font: "Tizen:style=Bold"; + size: NAVIFRAME_TITLE_FONT_MIN_SIZE_INC; + min: 1 0; + max: 1 0; + align: 0.0 0.5; + text_class: "tizen"; + } + color: NAVIFRAME_TITLE_TEXT_COLOR_INC; + color3: NAVIFRAME_TITLE_TEXT_SHADOW_COLOR_INC; + fixed: 1 0; + align: 0.0 0.5; + rel1.to: "maintitle_text_bg"; + rel2.to: "maintitle_text_bg"; + } + description { state: "title_slide_begin" 0.0; + inherit: "default" 0.0; + rel1.relative: 0.0 0.0; + rel2.relative: 0.0 1.0; + } + description { state: "title_slide_end" 0.0; + inherit: "default" 0.0; + text.align: 1.0 0.5; + align: 1.0 0.5; + rel1 { relative: 0.0 0.0; to: "slide_text_gap1"; } + rel2 { relative: 0.0 1.0; to: "slide_text_gap1"; } + } + description { state: "maintitle_slide_begin" 0.0; + text { font: "Tizen:style=Bold"; + size: NAVIFRAME_TITLE_SMALL_FONT_SIZE_INC; + min: 1 0; + max: 1 0; + align: 0.0 0.5; + text_class: "tizen"; + } + color: NAVIFRAME_TITLE_TEXT_COLOR_INC; + color3: NAVIFRAME_TITLE_TEXT_SHADOW_COLOR_INC; + fixed: 1 0; + align: 0.0 0.5; + rel1 { relative: 0.0 0.0; to: "maintitle_text_bg"; } + rel2 { relative: 0.0 1.0; to: "maintitle_text_bg"; } + } + description { state: "maintitle_slide_end" 0.0; + inherit: "maintitle_slide_begin" 0.0; + text.align: 1.0 0.5; + align: 1.0 0.5; + rel1 { relative: 0.0 0.0; to: "slide_text_gap1"; } + rel2 { relative: 0.0 1.0; to: "slide_text_gap1"; } + } + description { state: "maintitle_slide_begin_landscape" 0.0; + inherit: "maintitle_slide_begin" 0.0; + text.size: NAVIFRAME_LANDSCAPE_TITLE_SMALL_FONT_SIZE_INC; + } + description { state: "maintitle_slide_end_landscape" 0.0; + inherit: "maintitle_slide_end" 0.0; + text.size: NAVIFRAME_LANDSCAPE_TITLE_SMALL_FONT_SIZE_INC; + } + } + part { name: "title_text_slide_effect_left_bg"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: NAVIFRAME_PADDING_INC; + align: 1.0 0.5; + fixed: 1 1; + rel1 { relative: 0.0 0.0; to: "elm.text.title"; } + rel2 { relative: 0.0 1.0; to: "elm.text.title"; } + } + } + part { name: "title_text_slide_effect_left"; + type: IMAGE; + scale: 1; + mouse_events: 0; + clip_to: "title_clip"; + description { state: "default" 0.0; + min: NAVIFRAME_TITLE_TEXT_SLIDE_EFFECT_IMAGE_SIZE_INC; + align: 0.0 0.5; + fixed: 1 1; + visible: 0; + rel1 { relative: 0.0 0.0; to: "title_text_slide_effect_left_bg"; } + rel2 { relative: 0.0 1.0; to: "title_text_slide_effect_left_bg"; } + image { + normal: "00_effect_title_text_dim_left.png"; + border: NAVIFRAME_TITLE_TEXT_SLIDE_EFFECT_IMAGE_BORDER_INC; + border_scale: 1; + } + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { name: "elm.text.full_title"; + type: TEXT; + scale: 1; + clip_to: "slide_title_text_clip"; + description { state: "default" 0.0; + visible: 0; + text { font: "Tizen:style=Bold"; + size: NAVIFRAME_TITLE_FONT_SIZE_INC; + size_range: NAVIFRAME_TITLE_FONT_MIN_SIZE_INC NAVIFRAME_TITLE_FONT_SIZE_INC; + fit: 1 0; + min: 1 0; + max: 1 0; + align: 0.0 0.5; + text_class: "tizen"; + } + fixed: 1 0; + align: 0.0 0.5; + rel1.to: "maintitle_text_bg"; + rel2.to: "maintitle_text_bg"; + } + description { state: "subtitle_is_set" 0.0; + visible: 0; + text { font: "Tizen:style=Bold"; + size: NAVIFRAME_TITLE_SMALL_FONT_SIZE_INC; + min: 1 0; + max: 1 0; + align: 0.0 0.5; + text_class: "tizen"; + } + fixed: 1 0; + align: 0.0 0.5; + rel1.to: "maintitle_text_bg"; + rel2.to: "maintitle_text_bg"; + } + description { state: "subtitle_is_set_landscape" 0.0; + inherit: "subtitle_is_set" 0.0; + text.size: NAVIFRAME_LANDSCAPE_TITLE_SMALL_FONT_SIZE_INC; + } + } + part { name: "slide_text_gap2"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + fixed: 1 0; + min: NAVIFRAME_TITLE_SLIDE_TEXT_GAP 0; + max: NAVIFRAME_TITLE_SLIDE_TEXT_GAP -1; + align: 0.0 0.5; + rel1 { relative: 1.0 0.0; to: "elm.text.full_title"; } + rel2 { relative: 1.0 1.0; to: "elm.text.full_title"; } + } + } + part { name: "elm.text.slide_end_title"; + type: TEXT; + effect: FAR_SHADOW BOTTOM; + scale: 1; + clip_to: "slide_title_text_clip"; + description { state: "default" 0.0; + text { font: "Tizen:style=Bold"; + size: NAVIFRAME_TITLE_FONT_MIN_SIZE_INC; + min: 1 0; + max: 1 0; + align: 0.0 0.5; + text_class: "tizen"; + } + color: NAVIFRAME_TITLE_TEXT_COLOR_INC; + color3: NAVIFRAME_TITLE_TEXT_SHADOW_COLOR_INC; + fixed: 1 0; + align: 0.0 0.5; + rel1.to: "maintitle_text_bg"; + rel2.to: "maintitle_text_bg"; + } + description { state: "title_slide_begin" 0.0; + inherit: "default" 0.0; + rel1 { relative: 1.0 0.0; to: "slide_text_gap2"; } + rel2 { relative: 1.0 1.0; to: "slide_text_gap2"; } + } + description { state: "title_slide_end" 0.0; + inherit: "default" 0.0; + rel1.relative: 0.0 0.0; + rel2.relative: 0.0 1.0; + } + description { state: "maintitle_slide_begin" 0.0; + text { font: "Tizen:style=Bold"; + size: NAVIFRAME_TITLE_SMALL_FONT_SIZE_INC; + min: 1 0; + max: 1 0; + align: 0.0 0.5; + text_class: "tizen"; + } + color: NAVIFRAME_TITLE_TEXT_COLOR_INC; + color3: NAVIFRAME_TITLE_TEXT_SHADOW_COLOR_INC; + fixed: 1 0; + align: 0.0 0.5; + rel1 { relative: 1.0 0.0; to: "slide_text_gap2"; } + rel2 { relative: 1.0 1.0; to: "slide_text_gap2"; } + } + description { state: "maintitle_slide_end" 0.0; + inherit: "maintitle_slide_begin" 0.0; + rel1 { relative: 0.0 0.0; to: "maintitle_text_bg"; } + rel2 { relative: 0.0 1.0; to: "maintitle_text_bg"; } + } + description { state: "maintitle_slide_begin_landscape" 0.0; + inherit: "maintitle_slide_begin" 0.0; + text.size: NAVIFRAME_LANDSCAPE_TITLE_SMALL_FONT_SIZE_INC; + } + description { state: "maintitle_slide_end_landscape" 0.0; + inherit: "maintitle_slide_end" 0.0; + text.size: NAVIFRAME_LANDSCAPE_TITLE_SMALL_FONT_SIZE_INC; + } + } + part { name: "title_text_slide_effect_right_bg"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: NAVIFRAME_PADDING_INC; + align: 0.0 0.5; + fixed: 1 1; + rel1 { relative: 1.0 0.0; to: "elm.text.title"; } + rel2 { relative: 1.0 1.0; to: "elm.text.title"; } + } + } + part { name: "title_text_slide_effect_right"; + type: IMAGE; + scale: 1; + mouse_events: 0; + clip_to: "title_clip"; + description { state: "default" 0.0; + min: NAVIFRAME_TITLE_TEXT_SLIDE_EFFECT_IMAGE_SIZE_INC; + align: 1.0 0.5; + fixed: 1 1; + visible: 0; + rel1 { relative: 1.0 0.0; to: "title_text_slide_effect_right_bg"; } + rel2 { relative: 1.0 1.0; to: "title_text_slide_effect_right_bg"; } + image { + normal: "00_effect_title_text_dim_right.png"; + border: NAVIFRAME_TITLE_TEXT_SLIDE_EFFECT_IMAGE_BORDER_INC; + border_scale: 1; + } + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { name: "subtitle_top_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 0 0; + max: -1 0; + fixed: 0 1; + align: 0.5 1.0; + rel1 { relative: 0.0 0.0; to: "subtitle_text_bg"; } + rel2 { relative: 1.0 0.0; to: "subtitle_text_bg"; } + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + min: 0 NAVIFRAME_SUBTITLE_TOP_PADDING_H_INC; + max: -1 NAVIFRAME_SUBTITLE_TOP_PADDING_H_INC; + } + description { state: "visible_landscape" 0.0; + inherit: "default" 0.0; + min: 0 NAVIFRAME_LANDSCAPE_SUBTITLE_TOP_PADDING_H_INC; + max: -1 NAVIFRAME_LANDSCAPE_SUBTITLE_TOP_PADDING_H_INC; + } + } + part { name: "subtitle_text_bg"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 0 0; + max: -1 0; + fixed: 0 1; + align: 0.5 1.0; + rel1 { relative: 0.0 1.0; to: "title_text_bg"; } + rel2 { relative: 1.0 1.0; to: "title_text_bg"; } + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + min: 0 NAVIFRAME_SUBTITLE_H_INC; + max: -1 NAVIFRAME_SUBTITLE_H_INC; + } + description { state: "visible_landscape" 0.0; + inherit: "default" 0.0; + min: 0 NAVIFRAME_LANDSCAPE_SUBTITLE_H_INC; + max: -1 NAVIFRAME_LANDSCAPE_SUBTITLE_H_INC; + } + } + part { name: "subtitle_text_clip"; + type: RECT; + mouse_events: 0; + clip_to: "title_clip"; + description { state: "default" 0.0; + rel1.to: "subtitle_text_bg"; + rel2.to: "subtitle_text_bg"; + } + description { state: "slide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { name: "elm.text.subtitle"; + type: TEXT; + effect: FAR_SHADOW BOTTOM; + scale: 1; + clip_to: "subtitle_text_clip"; + description { state: "default" 0.0; + text { font: "Tizen:style=Bold"; + size: NAVIFRAME_SUBTITLE_FONT_SIZE_INC; + min: 0 0; + max: 1 0; + align: 0.0 0.5; + text_class: "tizen"; + } + color: NAVIFRAME_SUBTITLE_TEXT_COLOR_INC; + color3: NAVIFRAME_SUBTITLE_TEXT_SHADOW_COLOR_INC; + align: 0.0 0.5; + rel1.to: "subtitle_text_bg"; + rel2.to: "subtitle_text_bg"; + } + description { state: "landscape" 0.0; + inherit: "default" 0.0; + text { font: "Tizen:style=Bold"; + size: NAVIFRAME_LANDSCAPE_SUBTITLE_FONT_SIZE_INC; + min: 0 0; + max: 1 0; + align: 0.0 0.5; + text_class: "tizen"; + } + } + } + part { name: "slide_subtitle_text_clip"; + type: RECT; + mouse_events: 0; + clip_to: "title_clip"; + description { state: "default" 0.0; + visible: 0; + rel1.to: "elm.text.subtitle"; + rel2.to: "elm.text.subtitle"; + } + description { state: "slide" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { name: "slide_subtitle_divider1"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + fixed: 1 0; + min: NAVIFRAME_SUBTITLE_SLIDE_TEXT_GAP 0; + max: NAVIFRAME_SUBTITLE_SLIDE_TEXT_GAP -1; + align: 1.0 0.5; + rel1 { relative: 0.0 0.0; to: "subtitle_text_bg"; } + rel2 { relative: 0.0 1.0; to: "subtitle_text_bg"; } + } + } + part { name: "elm.text.slide_begin_subtitle"; + type: TEXT; + effect: FAR_SHADOW BOTTOM; + scale: 1; + clip_to: "slide_subtitle_text_clip"; + description { state: "default" 0.0; + text { font: "Tizen:style=Bold"; + size: NAVIFRAME_SUBTITLE_FONT_SIZE_INC; + min: 1 0; + max: 1 0; + align: 0.0 0.5; + text_class: "tizen"; + } + color: NAVIFRAME_SUBTITLE_TEXT_COLOR_INC; + color3: NAVIFRAME_SUBTITLE_TEXT_SHADOW_COLOR_INC; + fixed: 1 0; + align: 0.0 0.5; + rel1.to: "subtitle_text_bg"; + rel2.to: "subtitle_text_bg"; + } + description { state: "slide_begin" 0.0; + inherit: "default" 0.0; + rel1.relative: 0.0 0.0; + rel2.relative: 0.0 1.0; + } + description { state: "slide_end" 0.0; + inherit: "default" 0.0; + text.align: 1.0 0.5; + align: 1.0 0.5; + rel1 { relative: 0.0 0.0; to: "slide_subtitle_divider1"; } + rel2 { relative: 0.0 1.0; to: "slide_subtitle_divider1"; } + } + description { state: "slide_begin_landscape" 0.0; + inherit: "default" 0.0; + text.size: NAVIFRAME_LANDSCAPE_SUBTITLE_FONT_SIZE_INC; + rel1 { relative: 0.0 0.0; to: "subtitle_text_bg"; } + rel2 { relative: 0.0 1.0; to: "subtitle_text_bg"; } + } + description { state: "slide_end_landscape" 0.0; + inherit: "slide_begin_landscape" 0.0; + text.align: 1.0 0.5; + align: 1.0 0.5; + rel1 { relative: 0.0 0.0; to: "slide_subtitle_divider1"; } + rel2 { relative: 0.0 1.0; to: "slide_subtitle_divider1"; } + } + } + part { name: "subtitle_text_slide_effect_left"; + type: IMAGE; + scale: 1; + mouse_events: 0; + clip_to: "title_clip"; + description { state: "default" 0.0; + min: NAVIFRAME_TITLE_TEXT_SLIDE_EFFECT_IMAGE_SIZE_INC; + align: 0.0 0.5; + fixed: 1 1; + visible: 0; + rel1 { relative: 0.0 0.0; to_x: "title_text_slide_effect_left_bg"; to_y: "subtitle_text_bg"; } + rel2 { relative: 0.0 1.0; to_x: "title_text_slide_effect_left_bg"; to_y: "subtitle_text_bg"; } + image { + normal: "00_effect_title_text_dim_left.png"; + border: NAVIFRAME_TITLE_TEXT_SLIDE_EFFECT_IMAGE_BORDER_INC; + border_scale: 1; + } + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { name: "elm.text.full_subtitle"; + type: TEXT; + scale: 1; + clip_to: "slide_subtitle_text_clip"; + description { state: "default" 0.0; + visible: 0; + text { font: "Tizen:style=Bold"; + size: NAVIFRAME_SUBTITLE_FONT_SIZE_INC; + min: 1 0; + max: 1 0; + align: 0.0 0.5; + text_class: "tizen"; + } + fixed: 1 0; + align: 0.0 0.5; + rel1.to: "subtitle_text_bg"; + rel2.to: "subtitle_text_bg"; + } + description { state: "landscape" 0.0; + inherit: "default" 0.0; + text.size: NAVIFRAME_LANDSCAPE_SUBTITLE_FONT_SIZE_INC; + } + } + part { name: "slide_subtitle_divider2"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + fixed: 1 0; + min: NAVIFRAME_SUBTITLE_SLIDE_TEXT_GAP 0; + max: NAVIFRAME_SUBTITLE_SLIDE_TEXT_GAP -1; + align: 0.0 0.5; + rel1 { relative: 1.0 0.0; to: "elm.text.full_subtitle"; } + rel2 { relative: 1.0 1.0; to: "elm.text.full_subtitle"; } + } + } + part { name: "elm.text.slide_end_subtitle"; + type: TEXT; + effect: FAR_SHADOW BOTTOM; + scale: 1; + clip_to: "slide_subtitle_text_clip"; + description { state: "default" 0.0; + text { font: "Tizen:style=Bold"; + size: NAVIFRAME_SUBTITLE_FONT_SIZE_INC; + min: 1 0; + max: 1 0; + align: 0.0 0.5; + text_class: "tizen"; + } + color: NAVIFRAME_SUBTITLE_TEXT_COLOR_INC; + color3: NAVIFRAME_SUBTITLE_TEXT_SHADOW_COLOR_INC; + fixed: 1 0; + align: 0.0 0.5; + rel1.to: "subtitle_text_bg"; + rel2.to: "subtitle_text_bg"; + } + description { state: "slide_begin" 0.0; + inherit: "default" 0.0; + rel1 { relative: 1.0 0.0; to: "slide_subtitle_divider2"; } + rel2 { relative: 1.0 1.0; to: "slide_subtitle_divider2"; } + } + description { state: "slide_end" 0.0; + inherit: "default" 0.0; + rel1.relative: 0.0 0.0; + rel2.relative: 0.0 1.0; + } + description { state: "slide_begin_landscape" 0.0; + inherit: "default" 0.0; + text.size: NAVIFRAME_LANDSCAPE_SUBTITLE_FONT_SIZE_INC; + rel1 { relative: 1.0 0.0; to: "slide_subtitle_divider2"; } + rel2 { relative: 1.0 1.0; to: "slide_subtitle_divider2"; } + } + description { state: "slide_end_landscape" 0.0; + inherit: "slide_begin_landscape" 0.0; + rel1.relative: 0.0 0.0; + rel2.relative: 0.0 1.0; + } + } + part { name: "subtitle_text_slide_effect_right_bg"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: NAVIFRAME_PADDING_INC; + align: 0.0 0.5; + fixed: 1 1; + rel1 { relative: 1.0 0.0; to: "elm.text.subtitle"; } + rel2 { relative: 1.0 1.0; to: "elm.text.subtitle"; } + } + } + part { name: "subtitle_text_slide_effect_right"; + type: IMAGE; + scale: 1; + mouse_events: 0; + clip_to: "title_clip"; + description { state: "default" 0.0; + min: NAVIFRAME_TITLE_TEXT_SLIDE_EFFECT_IMAGE_SIZE_INC; + align: 1.0 0.5; + fixed: 1 1; + visible: 0; + rel1 { relative: 1.0 0.0; to: "subtitle_text_slide_effect_right_bg"; } + rel2 { relative: 1.0 1.0; to: "subtitle_text_slide_effect_right_bg"; } + image { + normal: "00_effect_title_text_dim_right.png"; + border: NAVIFRAME_TITLE_TEXT_SLIDE_EFFECT_IMAGE_BORDER_INC; + border_scale: 1; + } + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { name: "padding_before_text"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + align: 1.0 0.5; + rel1 { relative: 0.0 0.0; to: "title_text_bg"; } + rel2 { relative: 0.0 1.0; to: "title_text_bg"; } + fixed: 1 0; + min: NAVIFRAME_PADDING2_INC; + } + } + part { name: "badge_top_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: NAVIFRAME_BADGE_TOP_PADDING_INC; + fixed: 0 1; + rel1 { relative: 0.0 0.0; to: "title_bg"; } + rel2 { relative: 1.0 0.0; to: "title_bg"; } + align: 0.0 0.0; + } + description { state: "subtitle_is_set" 0.0; + inherit: "default" 0.0; + min: 0 0; + fixed: 0 1; + } + } + part { name: "badge_left_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 0 0; + fixed: 1 1; + rel1 { relative: 1.0 1.0; to_x: "elm.text.title"; to_y: "badge_top_padding"; } + rel2 { relative: 1.0 1.0; to_x: "elm.text.title"; to_y: "badge_top_padding"; } + align: 0.0 0.0; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + min: NAVIFRAME_BADGE_LEFT_PADDING_INC; + } + } + part { name: "left.padding.text"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + min: 0 0; + rel1 { + to: "badge_left_padding"; + relative: 1.0 0.0; + } + rel2 { + to: "badge_left_padding"; + relative: 1.0 1.0; + } + align: 0.0 0.0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + min: NAVIFRAME_BADGE_TEXT_LEFT_PADDING_INC; + } + } + part { name: "right.padding.text"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + min: 0 0; + rel1 { + to: "title_badge"; + relative: 1.0 0.0; + } + rel2 { + to: "title_badge"; + relative: 1.0 1.0; + } + align: 0.0 0.0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + min: NAVIFRAME_BADGE_TEXT_LEFT_PADDING_INC; + } + } + part { name: "badge_bg"; + type: IMAGE; + scale: 1; + clip_to: "title_clip"; + description { state: "default" 0.0; + visible: 0; + min: 0 0; + fixed: 1 1; + rel1 { + to: "left.padding.text"; + relative: 0.0 0.0; + } + rel2 { + to: "right.padding.text"; + relative: 1.0 1.0; + } + image { + normal: "00_badge_bg.png"; + border: NAVIFRAME_BADGE_BG_IMAGE_BORDER_INC; + border_scale: 1; + } + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + min: NAVIFRAME_BADGE_BG_IMAGE_SIZE_INC; + } + } + part { name: "title_badge"; + type: TEXT; + mouse_events: 0; + scale: 1; + clip_to: "title_clip"; + description { state: "default" 0.0; + visible: 0; + min: NAVIFRAME_BADGE_TEXT_MIN_W_INC 0; + fixed: 1 1; + rel1 { relative: 1.0 0.0; to: "left.padding.text"; } + rel2 { relative: 1.0 1.0; to_y: "left.padding.text"; to_x: "badge_padding"; } + align: 0.0 0.5; + color: NAVIFRAME_BADGE_TEXT_COLOR_INC; + text { + font: "Tizen:style=Bold"; + size: NAVIFRAME_BADGE_TEXT_H_INC; + min: 1 0; + max: 1 0; + text_class: "tizen"; + } + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { name: "click_event_area"; + type: RECT; + ignore_flags: ON_HOLD; + description { state: "default" 0.0; + rel1 { to: "title_bg"; } + rel2 { to: "title_bg"; } + color: 0 0 0 0; + } + } + part { name: "access.title"; + type: RECT; + repeat_events: 1; + description { state: "default" 0.0; + fixed: 1 1; + rel1.to: "title_bg"; + rel2.to: "title_bg"; + color: 0 0 0 0; + } + } + part { name: "divider1"; + type: RECT; + scale: 1; + mouse_events: 0; + clip_to: "title_clip"; + description { state: "default" 0.0; + min: 0 0; + max: 0 -1; + fixed: 1 1; + color: NAVIFRAME_TITLE_BUTTON_DIVIDER_COLOR_INC; + rel1 { relative: 0.0 0.0; to: "title_left_btn"; } + rel2 { relative: 0.0 1.0; to: "title_left_btn"; } + align: 1.0 0.5; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + min: 2 48; + max: 2 48; + } + } + part { name: "title_left_btn"; + type: SWALLOW; + scale: 1; + clip_to: "title_clip"; + description { state: "default" 0.0; + max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC; + fixed: 1 1; + align: 1.0 0.5; + rel1 { relative: 0.0 0.0; to: "divider2"; } + rel2 { relative: 0.0 1.0; to: "divider2"; } + } + description { state: "landscape" 0.0; + inherit: "default" 0.0; + max: NAVIFRAME_LANDSCAPE_TITLE_FUNC_BTN_SIZE_INC; + } + } + part { name: "divider2"; + type: RECT; + scale: 1; + mouse_events: 0; + clip_to: "title_clip"; + description { state: "default" 0.0; + min: 0 0; + max: 0 -1; + fixed: 1 1; + color: NAVIFRAME_TITLE_BUTTON_DIVIDER_COLOR_INC; + rel1 { relative: 0.0 0.0; to: "title_right_btn"; } + rel2 { relative: 0.0 1.0; to: "title_right_btn"; } + align: 1.0 0.5; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + min: 2 48; + max: 2 48; + } + } + part { name: "elm.swallow.icon"; + type: SWALLOW; + scale: 1; + clip_to: "title_clip"; + description { state: "default" 0.0; + max: NAVIFRAME_ICON_SIZE_INC; + fixed: 1 1; + rel1 { relative: 0.0 0.0; to: "padding_before_text"; } + rel2 { relative: 0.0 1.0; to: "padding_before_text"; } + aspect: 1.0 1.0; + aspect_preference: VERTICAL; + align: 1.0 0.5; + } + } + part { name: "title_right_btn"; + type: SWALLOW; + scale: 1; + clip_to: "title_clip"; + description { state: "default" 0.0; + max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC; + fixed: 1 1; + align: 1.0 0.5; + rel1 { relative: 1.0 0.0; to: "title_bg"; } + rel2 { relative: 1.0 1.0; to: "title_bg"; } + } + description { state: "landscape" 0.0; + inherit: "default" 0.0; + max: NAVIFRAME_LANDSCAPE_TITLE_FUNC_BTN_SIZE_INC; + } + } + part { name: "toolbar"; + type: SWALLOW; + scale: 1; + clip_to: "toolbar_clip"; + description { state: "default" 0.0; + min: 0 0; + max: 999999 0; + fixed: 0 1; + align: 0.0 1.0; + visible: 0; + rel1 { to: "base"; } + rel2 { to: "base"; } + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + min: 0 NAVIFRAME_TOOLBAR_HEIGHT_INC; + max: 999999 NAVIFRAME_TOOLBAR_HEIGHT_INC; + visible: 1; + } + description { state: "visible_landscape" 0.0; + inherit: "default" 0.0; + min: 0 NAVIFRAME_LANDSCAPE_TOOLBAR_HEIGHT_INC; + max: 999999 NAVIFRAME_LANDSCAPE_TOOLBAR_HEIGHT_INC; + visible: 1; + } + } + part { name: "more_btn_bg"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: NAVIFRAME_TOOLBAR_BUTTON_BG_PADDING_INC; + fixed: 1 0; + align: 0.0 0.0; + rel1 { relative: 0.0 0.0; to: "toolbar"; } + rel2 { relative: 0.0 1.0; to: "toolbar"; } + } + } + part { name: "toolbar_more_btn"; + type: SWALLOW; + scale: 1; + clip_to: "toolbar_clip"; + description { state: "default" 0.0; + max: NAVIFRAME_PREV_FUNC_BTN_SIZE_INC; + fixed: 1 1; + rel1.to: "more_btn_bg"; + rel2.to: "more_btn_bg"; + visible: 0; + } + description { state: "landscape" 0.0; + inherit: "default" 0.0; + max: NAVIFRAME_LANDSCAPE_PREV_FUNC_BTN_SIZE_INC; + } + } + part { name: "prev_btn_bg"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: NAVIFRAME_TOOLBAR_BUTTON_BG_PADDING_INC; + fixed: 1 0; + align: 1.0 0.0; + rel1 { relative: 1.0 0.0; to: "toolbar"; } + rel2.to: "toolbar"; + } + } + part { name: "elm.swallow.prev_btn"; + type: SWALLOW; + scale: 1; + clip_to: "toolbar_clip"; + description { state: "default" 0.0; + max: NAVIFRAME_PREV_FUNC_BTN_SIZE_INC; + fixed: 1 1; + align: 0.5 0.5; + rel1.to: "prev_btn_bg"; + rel2.to: "prev_btn_bg"; + visible: 0; + } + description { state: "landscape" 0.0; + inherit: "default" 0.0; + max: NAVIFRAME_LANDSCAPE_PREV_FUNC_BTN_SIZE_INC; + } + } + part { name: "toolbar_clip"; + type: RECT; + mouse_events: 0; + clip_to: "clipper"; + description { state: "default" 0.0; + rel1 { to: "toolbar"; } + rel2 { to: "toolbar"; } + } + } + } + programs { + program { name: "content_new_pushed"; + signal: "elm,state,new,pushed,deferred"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "base"; + transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME; + after: "show_finished"; + } + program { name: "content_cur_pushed"; + signal: "elm,state,cur,pushed,deferred"; + source: "elm"; + action: STATE_SET "left" 0.0; + target: "base"; + target: "clipper"; + transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME; + after: "pushed_finished"; + } + program { name: "content_prev_popped"; + signal: "elm,state,prev,popped,deferred"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "base"; + target: "clipper"; + transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME; + after: "show_finished"; + } + program { name: "content_cur_popped"; + signal: "elm,state,cur,popped,deferred"; + source: "elm"; + action: STATE_SET "right" 0.0; + target: "base"; + transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME; + after: "popped_finished"; + } + program { name: "cur_pushed"; + signal: "elm,state,cur,pushed"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "base"; + } + program { name: "new_pushed"; + signal: "elm,state,new,pushed"; + source: "elm"; + action: STATE_SET "right" 0.0; + target: "base"; + } + program { name: "prev_popped"; + signal: "elm,state,prev,popped"; + source: "elm"; + action: STATE_SET "left" 0.0; + target: "base"; + } + program { name: "cur_popped"; + signal: "elm,state,cur,popped"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "base"; + } + program { name: "visible"; + signal: "elm,state,visible"; + source: "elm"; + script { + set_state(PART:"base", "default", 0.0); + set_state(PART:"clipper", "default", 0.0); + run_program(PROGRAM:"start_title_slide"); + } + } + program { name: "start_title_slide"; + signal: "elm,action,title,slide,start"; + source: ""; + script { + run_program(PROGRAM:"stop_title_slide"); + set_int(title_slide_start_timer, timer(1.5, "start_slide", 0)); + if (get_int(subtitle)) + set_int(subtitle_slide_start_timer, timer(1.5, "start_slide", 1)); + } + } + program { name: "stop_title_slide"; + signal: "elm,action,title,slide,stop"; + source: ""; + script { + if (!get_int(title_slide_stop) || get_int(title_slide_start_timer)) + stop_slide(0); + if (get_int(subtitle)) + if (!get_int(subtitle_slide_stop) || get_int(subtitle_slide_start_timer)) + stop_slide(1); + } + } + program { name: "title_show"; + signal: "elm,state,title,show"; + source: "elm"; + script { + if (!get_int(landscape)) + set_state(PART:"title_bg", "default", 0.0); + else + set_state(PART:"title_bg", "landscape", 0.0); + run_program(PROGRAM:"start_title_slide"); + } + } + program { name: "title_hide"; + signal: "elm,state,title,hide"; + source: "elm"; + script { + run_program(PROGRAM:"stop_title_slide"); + set_state(PART:"title_bg", "hide", 0.0); + } + } + program { name: "title_show_anim"; + signal: "elm,action,title,show"; + source: "elm"; + script { + if (!get_int(landscape)) { + set_state(PART:"title_bg", "hide_trans", 0.0); + run_program(PROGRAM:"title_show_anim_start_default"); + } + else { + set_state(PART:"title_bg", "hide_trans_landscape", 0.0); + run_program(PROGRAM:"title_show_anim_start_landscape"); + } + } + } + program { name: "title_show_anim_start_default"; + action: STATE_SET "default" 0.0; + target: "title_bg"; + transition: SIN_FAC NAVIFRAME_TITLE_TRANS_TIME 1.7; + after: "title_show_anim_finished"; + } + program { name: "title_show_anim_start_landscape"; + action: STATE_SET "landscape" 0.0; + target: "title_bg"; + transition: SIN_FAC NAVIFRAME_TITLE_TRANS_TIME 1.7; + after: "title_show_anim_finished"; + } + program { name: "title_show_anim_finished"; + script { + emit("elm,action,title,transition,finished", ""); + run_program(PROGRAM:"start_title_slide"); + } + } + program { name: "title_hide_trans"; + signal: "elm,action,title,hide"; + source: "elm"; + script { + run_program(PROGRAM:"stop_title_slide"); + + if (!get_int(landscape)) { + set_state(PART:"title_bg", "default", 0.0); + run_program(PROGRAM:"title_hide_trans_start_default"); + } + else { + set_state(PART:"title_bg", "landscape", 0.0); + run_program(PROGRAM:"title_hide_trans_start_landscape"); + } + } + } + program { name: "title_hide_trans_start_default"; + action: STATE_SET "hide_trans" 0.0; + target: "title_bg"; + transition: SIN_FAC NAVIFRAME_TITLE_TRANS_TIME 1.7; + after: "title_hide_trans_finished"; + } + program { name: "title_hide_trans_start_landscape"; + action: STATE_SET "hide_trans_landscape" 0.0; + target: "title_bg"; + transition: SIN_FAC NAVIFRAME_TITLE_TRANS_TIME 1.7; + after: "title_hide_trans_finished"; + } + program { name: "title_hide_trans_finished"; + script { + set_state(PART:"title_bg", "hide", 0.0); + emit("elm,action,title,transition,finished", ""); + } + } + program { name: "title_label_show"; + signal: "elm,state,title_label,show"; + source: "elm"; + script { + run_program(PROGRAM:"start_title_slide"); + } + } + program { name: "title_label_hide"; + signal: "elm,state,title_label,hide"; + source: "elm"; + script { + run_program(PROGRAM:"stop_title_slide"); + } + } + program { name: "subtitle_show"; + signal: "elm,state,subtitle,show"; + source: "elm"; + script { + set_state(PART:"badge_top_padding", "subtitle_is_set", 0.0); + set_state(PART:"maintitle_text_bg", "subtitle_is_set", 0.0); + if (!get_int(landscape)) { + set_state(PART:"elm.text.title", "subtitle_is_set", 0.0); + set_state(PART:"subtitle_top_padding", "visible", 0.0); + set_state(PART:"subtitle_text_bg", "visible", 0.0); + } + else { + set_state(PART:"elm.text.title", "subtitle_is_set_landscape", 0.0); + set_state(PART:"subtitle_top_padding", "visible_landscape", 0.0); + set_state(PART:"subtitle_text_bg", "visible_landscape", 0.0); + } + set_int(subtitle, 1); + run_program(PROGRAM:"start_title_slide"); + } + } + program { name: "subtitle_hide"; + signal: "elm,state,subtitle,hide"; + source: "elm"; + script { + set_state(PART:"badge_top_padding", "default", 0.0); + set_state(PART:"maintitle_text_bg", "default", 0.0); + set_state(PART:"subtitle_top_padding", "default", 0.0); + set_state(PART:"subtitle_text_bg", "default", 0.0); + set_state(PART:"elm.text.title", "default", 0.0); + set_int(subtitle, 0); + run_program(PROGRAM:"stop_title_slide"); + } + } + program { name: "icon_show"; + signal: "elm,state,icon,show"; + source: "elm"; + action: STATE_SET "icon" 0.0; + target: "title_left_padding"; + } + program { name: "icon_hide"; + signal: "elm,state,icon,hide"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "title_left_padding"; + } + program { name: "title_left_btn_show"; + signal: "elm,state,title_left_btn,show"; + source: "elm"; + script { + set_state(PART:"divider1", "visible", 0.0); + set_state(PART:"title_right_padding", "title_left_btn_set", 0.0); + } + } + program { name: "title_left_btn_hide"; + signal: "elm,state,title_left_btn,hide"; + source: "elm"; + script { + set_state(PART:"divider1", "default", 0.0); + set_state(PART:"title_right_padding", "default", 0.0); + } + } + program { name: "title_right_btn_show"; + signal: "elm,state,title_right_btn,show"; + source: "elm"; + action: STATE_SET "visible" 0.0; + target: "divider2"; + } + program { name: "title_right_btn_hide"; + signal: "elm,state,title_right_btn,hide"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "divider2"; + } + program { name: "toolbar_show"; + signal: "elm,state,toolbar,show"; + source: "elm"; + script { + if (!get_int(landscape)) + set_state(PART:"toolbar", "visible", 0.0); + else + set_state(PART:"toolbar", "visible_landscape", 0.0); + set_int(tbar_bg, get_int(tbar_bg) + 1); + } + } + program { name: "toolbar_hide"; + signal: "elm,state,toolbar,hide"; + source: "elm"; + script { + set_int(tbar_bg, get_int(tbar_bg) - 1); + if (get_int(tbar_bg) <= 0) + set_state(PART:"toolbar", "default", 0.0); + } + } + program { name: "toolbar_open_internal"; + signal: "elm,state,toolbar,open,internal"; + source: "elm"; + script { + set_int(tbar_close, 0); + if (!get_int(landscape)) + set_state(PART:"toolbar", "visible", 0.0); + else + set_state(PART:"toolbar", "visible_landscape", 0.0); + } + } + program { name: "toolbar_close_internal"; + signal: "elm,state,toolbar,close,internal"; + source: "elm"; + script { + set_int(tbar_close, 1); + set_state(PART:"toolbar", "default", 0.0); + } + } + program { name: "toolbar_open"; + signal: "elm,state,toolbar,open"; + source: ""; + script { + if (!get_int(landscape)) + set_state(PART:"toolbar", "visible", 0.0); + else + set_state(PART:"toolbar", "visible_landscape", 0.0); + } + transition: LINEAR 0.2; + after: "toolbar_open_internal"; + } + program { name: "toolbar_close"; + signal: "elm,state,toolbar,close"; + source: ""; + action: STATE_SET "default" 0.0; + target: "toolbar"; + transition: LINEAR 0.2; + after: "toolbar_close_internal"; + } + program { name: "toolbar_instant_open"; + signal: "elm,state,toolbar,instant_open"; + source: ""; + script { + emit("elm,state,toolbar,open,internal", "elm"); + } + } + program { name: "toolbar_instant_close"; + signal: "elm,state,toolbar,instant_close"; + source: ""; + script { + emit("elm,state,toolbar,close,internal", "elm"); + } + } + program { name: "show_finished"; + action: SIGNAL_EMIT "elm,action,show,finished" ""; + } + program { name: "pushed_finished"; + script { + run_program(PROGRAM:"stop_title_slide"); + emit("elm,action,pushed,finished", ""); + } + } + program { name: "popped_finished"; + script { + run_program(PROGRAM:"stop_title_slide"); + emit("elm,action,popped,finished", ""); + } + } + program { + name: "title_clicked"; + signal: "mouse,clicked,1"; + source: "click_event_area"; + script { + emit("elm,action,title,clicked", ""); + } + } + program { + name: "title_badge_show"; + signal: "elm,state,title_badge,show"; + source: "elm"; + script { + set_state(PART:"badge_left_padding", "visible", 0.0); + set_state(PART:"badge_padding", "visible", 0.0); + set_state(PART:"left.padding.text", "visible", 0.0); + set_state(PART:"right.padding.text", "visible", 0.0); + set_state(PART:"badge_bg", "visible", 0.0); + set_state(PART:"title_badge", "visible", 0.0); + set_int(title_badge_visible, 1); + run_program(PROGRAM:"start_title_slide"); + } + } + program { + name: "title_badge_hide"; + signal: "elm,state,title_badge,hide"; + source: "elm"; + script { + set_state(PART:"badge_left_padding", "default", 0.0); + set_state(PART:"badge_padding", "default", 0.0); + set_state(PART:"left.padding.text", "default", 0.0); + set_state(PART:"right.padding.text", "default", 0.0); + set_state(PART:"badge_bg", "default", 0.0); + set_state(PART:"title_badge", "default", 0.0); + set_int(title_badge_visible, 0); + run_program(PROGRAM:"start_title_slide"); + } + } + program { + name: "change_to_landscape"; + script { + if (!get_int(landscape)) { + set_state(PART:"title_text_bg", "landscape", 0.0); + set_state(PART:"elm.text.subtitle", "landscape", 0.0); + set_state(PART:"title_left_btn", "landscape", 0.0); + set_state(PART:"title_right_btn", "landscape", 0.0); + set_state(PART:"toolbar_more_btn", "landscape", 0.0); + set_state(PART:"elm.swallow.prev_btn", "landscape", 0.0); + + new st[31]; + new Float:vl; + get_state(PART:"title_bg", st, 30, vl); + if (!strcmp(st, "default")) + set_state(PART:"title_bg", "landscape", 0.0); + + get_state(PART:"elm.text.title", st, 30, vl); + if (!strcmp(st, "subtitle_is_set")) + set_state(PART:"elm.text.title", "subtitle_is_set_landscape", 0.0); + + get_state(PART:"subtitle_top_padding", st, 30, vl); + if (!strcmp(st, "visible")) + set_state(PART:"subtitle_top_padding", "visible_landscape", 0.0); + + get_state(PART:"subtitle_text_bg", st, 30, vl); + if (!strcmp(st, "visible")) + set_state(PART:"subtitle_text_bg", "visible_landscape", 0.0); + + get_state(PART:"toolbar", st, 30, vl); + if (!strcmp(st, "visible")) + set_state(PART:"toolbar", "visible_landscape", 0.0); + + set_int(landscape, 1); + run_program(PROGRAM:"start_title_slide"); + } + } + } + program { + name: "change_to_portrait"; + script { + if (get_int(landscape)) { + set_state(PART:"title_text_bg", "default", 0.0); + set_state(PART:"elm.text.subtitle", "default", 0.0); + set_state(PART:"title_left_btn", "default", 0.0); + set_state(PART:"title_right_btn", "default", 0.0); + set_state(PART:"toolbar_more_btn", "default", 0.0); + set_state(PART:"elm.swallow.prev_btn", "default", 0.0); + + new st[31]; + new Float:vl; + get_state(PART:"title_bg", st, 30, vl); + if (!strcmp(st, "landscape")) + set_state(PART:"title_bg", "default", 0.0); + + get_state(PART:"elm.text.title", st, 30, vl); + if (!strcmp(st, "subtitle_is_set_landscape")) + set_state(PART:"elm.text.title", "subtitle_is_set", 0.0); + + get_state(PART:"subtitle_top_padding", st, 30, vl); + if (!strcmp(st, "visible_landscape")) + set_state(PART:"subtitle_top_padding", "visible", 0.0); + + get_state(PART:"subtitle_text_bg", st, 30, vl); + if (!strcmp(st, "visible_landscape")) + set_state(PART:"subtitle_text_bg", "visible", 0.0); + + get_state(PART:"toolbar", st, 30, vl); + if (!strcmp(st, "visible_landscape")) + set_state(PART:"toolbar", "visible", 0.0); + + set_int(landscape, 0); + run_program(PROGRAM:"start_title_slide"); + } + } + } + program { name: "landscape_mode"; + source: "elm"; + signal: "elm,state,orient,90"; + after: "change_to_landscape"; + } + program { name: "landscape_mode2"; + source: "elm"; + signal: "elm,state,orient,270"; + after: "change_to_landscape"; + } + program { name: "portrait_mode"; + source: "elm"; + signal: "elm,state,orient,0"; + after: "change_to_portrait"; + } + program { name: "portrait_mode2"; + source: "elm"; + signal: "elm,state,orient,180"; + after: "change_to_portrait"; + } + } + } + + + + diff --git a/main/layout/ivug-selectioninfo.edc b/theme/widgets/ivug-selectioninfo.edc similarity index 94% rename from main/layout/ivug-selectioninfo.edc rename to theme/widgets/ivug-selectioninfo.edc index 9c66c61..26e482a 100755 --- a/main/layout/ivug-selectioninfo.edc +++ b/theme/widgets/ivug-selectioninfo.edc @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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. +* +*/ /* * Refer to themes\groups\selectioninfo.edc @@ -29,7 +30,6 @@ #define SELECTION_INFO_MIN_VER_BOTTOM_64_H_INC 160//=95+48 150 #define SELECTION_INFO_MIN_VER_BOTTOM_86_H_INC 160//=95+48 186 -collections { group { name: "elm/standard/selectioninfo/vertical/bottom_12"; parts { @@ -371,5 +371,5 @@ collections { } } -} + diff --git a/theme/widgets/ivug-toolbar.edc b/theme/widgets/ivug-toolbar.edc new file mode 100755 index 0000000..be3b7db --- /dev/null +++ b/theme/widgets/ivug-toolbar.edc @@ -0,0 +1,2071 @@ +/* +* Copyright (c) 2000-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 TOOLBAR_ITEM_BG_DEFAULT_BORDER_INC 8 8 2 0 +#define TOOLBAR_ITEM_BG_PRESSED_BORDER_INC 8 8 2 0 +#define TOOLBAR_ITEM_TAB_FOCUS_BORDER_INC 8 8 8 8 +#define TOOLBAR_ITEM_TEXTBLOCK_COLOR_INC "#FAFAFA" +#define TOOLBAR_ITEM_PRESSED_TEXTBLOCK_COLOR_INC "#FAFAFA" +#define TOOLBAR_ITEM_DISABLED_TEXTBLOCK_COLOR_INC "#9EA0A7" +#define TOOLBAR_ITEM_TEXTBLOCK_SHADOW_COLOR_INC "#000000" +#define TOOLBAR_ITEM_PRESSED_TEXTBLOCK_SHADOW_COLOR_INC "#000000" +#define TOOLBAR_ITEM_DISABLED_TEXTBLOCK_SHADOW_COLOR_INC "#353947" +#define TOOLBAR_ITEM_DEFAULT_ICON_COLOR_INC 255 255 255 255 +#define TOOLBAR_ITEM_ICON_COLOR_INC 250 250 250 255 +#define TOOLBAR_ITEM_PRESSED_ICON_COLOR_INC 250 250 250 255 +#define TOOLBAR_ITEM_DISABLED_ICON_COLOR_INC 158 160 167 255 +#define TOOLBAR_ITEM_ICON_SHADOW_COLOR_INC 0 0 0 255 +#define TOOLBAR_ITEM_PRESSED_ICON_SHADOW_COLOR_INC 0 0 0 255 +#define TOOLBAR_ITEM_DISABLED_ICON_SHADOW_COLOR_INC 53 57 71 255 +#define TOOLBAR_ITEM_ONE_ITEM_PADDING_SIZE 60 +#define TOOLBAR_ITEM_TWO_ITEMS_PADDING_SIZE 40 +#define TOOLBAR_ITEM_THREE_ITEMS_PADDING_SIZE 20 +#define TOOLBAR_ITEM_DIVIDER_SIZE 2 78 +#define TOOLBAR_ITEM_DIVIDER_LEFT_COLOR_INC 107 116 126 255 +#define TOOLBAR_ITEM_DIVIDER_RIGHT_COLOR_INC 107 116 126 255 + +#define TABBAR_ITEM_TAB_SELECT_BAR_BORDER_INC 1 1 1 1 +#define TABBAR_ITEM_TAB_PRESS_BORDER_INC 8 8 4 0 +#define TABBAR_ITEM_TAB_FOCUS_BORDER_INC 8 8 8 8 +#define TABBAR_ITEM_TEXTBLOCK_COLOR_INC "#D2D2D2" +#define TABBAR_ITEM_SELECTED_TEXTBLOCK_COLOR_INC "#D2D2D2" +#define TABBAR_ITEM_PRESSED_TEXTBLOCK_COLOR_INC "#FAFAFA" +#define TABBAR_ITEM_DISABLED_TEXTBLOCK_COLOR_INC "#717A91" +#define TABBAR_ITEM_TEXTBLOCK_SHADOW_COLOR_INC "#000000" +#define TABBAR_ITEM_PRESSED_TEXTBLOCK_SHADOW_COLOR_INC "#000000" +#define TABBAR_ITEM_DISABLED_TEXTBLOCK_SHADOW_COLOR_INC "#1D263D" +#define TABBAR_ITEM_DEFAULT_ICON_COLOR_INC 255 255 255 255 +#define TABBAR_ITEM_ICON_COLOR_INC 210 210 210 255 +#define TABBAR_ITEM_SELECTED_ICON_COLOR_INC 210 210 210 255 +#define TABBAR_ITEM_PRESSED_ICON_COLOR_INC 250 250 250 255 +#define TABBAR_ITEM_DISABLED_ICON_COLOR_INC 113 122 145 255 +#define TABBAR_ITEM_ICON_SHADOW_COLOR_INC 0 0 0 255 +#define TABBAR_ITEM_PRESSED_ICON_SHADOW_COLOR_INC 0 0 0 255 +#define TABBAR_ITEM_DISABLED_ICON_SHADOW_COLOR_INC 29 38 61 255 +#define TABBAR_ITEM_BG_DEFAULT_BORDER_INC 8 8 35 35 +#define TABBAR_ITEM_BG_DEFAULT_VISIBLE_INC 0 +#define TABBAR_DEFAULT_HEIGHT_INC 126 +#define TABBAR_ICON_TEXT_HEIGHT_INC 126 +#define TABBAR_HORIZONTAL_HEIGHT_INC 75 +#define TABBAR_HORIZONTAL_ICON_TEXT_HEIGHT_INC 75 +#define TABBAR_ITEM_ICON_SIZE_INC 63 63 +#define TABBAR_BADGE_TEXT_COLOR_INC 250 250 250 255 +#define TABBAR_BADGE_BG_IMAGE_BORDER_INC 26 26 0 0 +#define TABBAR_BADGE_ONE_ITEM_PADDING_SIZE 10 10 +#define TABBAR_BADGE_TWO_ITEMS_PADDING_SIZE 6 10 +#define TABBAR_BADGE_THREE_ITEMS_PADDING_SIZE 4 10 +#define TABBAR_ITEM_DIVIDER_SIZE 2 88 +#define TABBAR_ITEM_WITH_TITLE_DIVIDER_SIZE 2 48 +#define TABBAR_ITEM_DIVIDER_LEFT_COLOR_INC 131 140 163 255 +#define TABBAR_ITEM_DIVIDER_RIGHT_COLOR_INC 131 140 163 255 +#define TABBAR_ITEM_WITH_TITLE_DIVIDER_LEFT_COLOR_INC 78 86 108 255 +#define TABBAR_ITEM_WITH_TITLE_DIVIDER_RIGHT_COLOR_INC 78 86 108 255 + + +#define ITEM_STATE_ENABLED 0 +#define ITEM_STATE_DISABLED 1 +#define TOOLBAR_SLIDING_PER_FPS 2 +#define TOOLBAR_SLIDING_FPS 40.0 +#define TOOLBAR_SLIDING_TEXT_GAP 40 +#define TOOLBAR_SLIDING_TEXT_OFFSET 5 +#define TOOLBAR_SLIDING_WAIT_TIME 1.2 + +// sliding motion +#define TOOLBAR_SLIDING_NO_EFFECT 0 +#define TOOLBAR_SLIDING_DOING 1 +#define TOOLBAR_SLIDING_END 2 + +#define TOOLBAR_TEXT_STYLE(_font_size) \ + style { name: "toolbar_text_style_"_font_size; \ + base: "font=Tizen:style=Bold style=far_shadow,bottom shadow_color="TOOLBAR_ITEM_TEXTBLOCK_SHADOW_COLOR_INC" font_size="_font_size" align=center color="TOOLBAR_ITEM_TEXTBLOCK_COLOR_INC" wrap=word ellipsis=1 text_class=tizen linegap=0"; \ + tag: "br" "\n"; \ + tag: "ps" "ps"; \ + tag: "hilight" "+ font_weight=Bold"; \ + tag: "b" "+ font_weight=Bold"; \ + tag: "tab" "\t"; \ + } + +#define TOOLBAR_PRESSED_TEXT_STYLE(_font_size) \ + style { name: "toolbar_pressed_text_style_"_font_size; \ + base: "font=Tizen:style=Bold style=far_shadow,top shadow_color="TOOLBAR_ITEM_PRESSED_TEXTBLOCK_SHADOW_COLOR_INC" font_size="_font_size" align=center color="TOOLBAR_ITEM_PRESSED_TEXTBLOCK_COLOR_INC" wrap=word ellipsis=1 text_class=tizen linegap=0"; \ + tag: "br" "\n"; \ + tag: "ps" "ps"; \ + tag: "hilight" "+ font_weight=Bold"; \ + tag: "b" "+ font_weight=Bold"; \ + tag: "tab" "\t"; \ + } + +#define TOOLBAR_DISABLED_TEXT_STYLE(_font_size) \ + style { name: "toolbar_disabled_text_style_"_font_size; \ + base: "font=Tizen:style=Bold style=far_shadow,bottom shadow_color="TOOLBAR_ITEM_DISABLED_TEXTBLOCK_SHADOW_COLOR_INC" font_size="_font_size" align=center color="TOOLBAR_ITEM_DISABLED_TEXTBLOCK_COLOR_INC" wrap=word ellipsis=1 text_class=tizen linegap=0"; \ + tag: "br" "\n"; \ + tag: "ps" "ps"; \ + tag: "hilight" "+ font_weight=Bold"; \ + tag: "b" "+ font_weight=Bold"; \ + tag: "tab" "\t"; \ + } + +#define TABBAR_TEXT_STYLE(_font_size) \ + style { name: "tabbar_text_style_"_font_size; \ + base: "font=Tizen:style=Bold style=far_shadow,bottom shadow_color="TABBAR_ITEM_TEXTBLOCK_SHADOW_COLOR_INC" font_size="_font_size" align=center color="TABBAR_ITEM_TEXTBLOCK_COLOR_INC" wrap=word ellipsis=1 text_class=tizen linegap=0"; \ + tag: "br" "\n"; \ + tag: "ps" "ps"; \ + tag: "hilight" "+ font_weight=Bold"; \ + tag: "b" "+ font_weight=Bold"; \ + tag: "tab" "\t"; \ + } + +#define TABBAR_SELECTED_TEXT_STYLE(_font_size) \ + style { name: "tabbar_selected_text_style_"_font_size; \ + base: "font=Tizen:style=Bold style=far_shadow,bottom shadow_color="TABBAR_ITEM_TEXTBLOCK_SHADOW_COLOR_INC" font_size="_font_size" align=center color="TABBAR_ITEM_SELECTED_TEXTBLOCK_COLOR_INC" wrap=word ellipsis=1 text_class=tizen linegap=0"; \ + tag: "br" "\n"; \ + tag: "ps" "ps"; \ + tag: "hilight" "+ font_weight=Bold"; \ + tag: "b" "+ font_weight=Bold"; \ + tag: "tab" "\t"; \ + } + +#define TABBAR_PRESSED_TEXT_STYLE(_font_size) \ + style { name: "tabbar_pressed_text_style_"_font_size; \ + base: "font=Tizen:style=Bold style=far_shadow,top shadow_color="TABBAR_ITEM_PRESSED_TEXTBLOCK_SHADOW_COLOR_INC" font_size="_font_size" align=center color="TABBAR_ITEM_PRESSED_TEXTBLOCK_COLOR_INC" wrap=word ellipsis=1 text_class=tizen linegap=0"; \ + tag: "br" "\n"; \ + tag: "ps" "ps"; \ + tag: "hilight" "+ font_weight=Bold"; \ + tag: "b" "+ font_weight=Bold"; \ + tag: "tab" "\t"; \ + } + +#define TABBAR_DISABLED_TEXT_STYLE(_font_size) \ + style { name: "tabbar_disabled_text_style_"_font_size; \ + base: "font=Tizen:style=Bold style=far_shadow,bottom shadow_color="TABBAR_ITEM_DISABLED_TEXTBLOCK_SHADOW_COLOR_INC" font_size="_font_size" align=center color="TABBAR_ITEM_DISABLED_TEXTBLOCK_COLOR_INC" wrap=word ellipsis=1 text_class=tizen linegap=0"; \ + tag: "br" "\n"; \ + tag: "ps" "ps"; \ + tag: "hilight" "+ font_weight=Bold"; \ + tag: "b" "+ font_weight=Bold"; \ + tag: "tab" "\t"; \ + } + +styles{ + TABBAR_TEXT_STYLE(30) + TABBAR_SELECTED_TEXT_STYLE(30) + TABBAR_PRESSED_TEXT_STYLE(30) + TABBAR_DISABLED_TEXT_STYLE(30) + TOOLBAR_TEXT_STYLE(38) + TOOLBAR_PRESSED_TEXT_STYLE(38) + TOOLBAR_DISABLED_TEXT_STYLE(38) +} + + +group { name: "elm/toolbar/base/imageviewer/tabbar"; + data { + item: "focus_highlight" "on"; + } + images { + image: "00_effect_tab_bounce_left.png" COMP; + image: "00_effect_tab_bounce_right.png" COMP; + image: "00_title_bg.png" COMP; + } + script { + public left_timer, right_timer; + public l_timer(val) { + emit("do-hide-left-shadow", ""); + set_int(left_timer, 0); + return 0; + } + public r_timer(val) { + emit("do-hide-right-shadow", ""); + set_int(right_timer, 0); + return 0; + } + } + parts { + part { name: "base"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + } + } + part { name: "base_bg"; + type: IMAGE; + scale: 1; + description { + state: "default" 0.0; + rel1 { + relative: 0.0 0.0; + to: "base"; + } + rel2 { + relative: 1.0 1.0; + to: "base"; + } + image { + normal: "00_title_bg.png"; + border: TABBAR_ITEM_BG_DEFAULT_BORDER_INC; + border_scale: 1; + } + } + } + part { name: "left_padding"; + type: SPACER; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + min: 0 0; + fixed: 1 1; + align: 0.0 0.5; + rel1.to: "base"; + rel2.to: "base"; + rel1.relative: 0.0 0.0; + rel2.relative: 0.0 1.0; + } + } + part { name: "right_padding"; + type: SPACER; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + min: 0 0; + fixed: 1 1; + align: 1.0 0.5; + rel1.to: "base"; + rel2.to: "base"; + rel1.relative: 1.0 0.0; + rel2.relative: 1.0 1.0; + } + } + part { name: "clipper"; + type: RECT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + rel1.to: "left_padding"; + rel1.relative: 1.0 0.0; + rel2.to: "right_padding"; + rel2.relative: 0.0 1.0; + } + } + part { name: "elm.swallow.content"; + clip_to: "clipper"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1.to: "clipper"; + rel2.to: "clipper"; + } + } + part { name: "left_shadow_clip"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + visible: 0; + color: 255 255 255 0; + } + description { state: "show" 0.0; + } + } + part { name: "right_shadow_clip"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + visible: 0; + color: 255 255 255 0; + } + description { state: "show" 0.0; + } + } + part { name: "shadow_left"; + clip_to: "left_shadow_clip"; + type: IMAGE; + scale: 1; + repeat_events: 1; + description { state: "default" 0.0; + min: 162 0; + fixed: 1 1; + align: 0.0 0.5; + color: 255 255 255 255; + rel1.relative: 0.0 0.0; + rel2.relative: 0.0 1.0; + image.normal: "00_effect_tab_bounce_left.png"; + } + } + part { name: "shadow_right"; + clip_to: "right_shadow_clip"; + type: IMAGE; + scale: 1; + repeat_events: 1; + description { state: "default" 0.0; + min: 162 0; + fixed: 1 1; + align: 1.0 0.5; + color: 255 255 255 255; + rel1.relative: 1.0 0.0; + rel2.relative: 1.0 1.0; + image.normal: "00_effect_tab_bounce_right.png"; + } + } + } + programs { + program { name: "load"; + script { + set_int(left_timer, 0); + set_int(right_timer, 0); + } + } + program { name: "left_shadow_show"; + signal: "do-show-left-shadow"; + source: ""; + action: STATE_SET "show" 0.0; + transition: LINEAR 0.3; + target: "left_shadow_clip"; + } + program { name: "left_shadow_hide"; + signal: "do-hide-left-shadow"; + source: ""; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.3; + target: "left_shadow_clip"; + } + program { name: "right_shadow_show"; + signal: "do-show-right-shadow"; + source: ""; + action: STATE_SET "show" 0.0; + transition: LINEAR 0.3; + target: "right_shadow_clip"; + } + program { name: "right_shadow_hide"; + signal: "do-hide-right-shadow"; + source: ""; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.3; + target: "right_shadow_clip"; + } + program { name: "edge_left"; + signal: "elm,edge,left"; + source: "elm"; + script { + new v; + v = get_int(left_timer); + if (!v) { + emit("do-show-left-shadow", ""); + } + if (v > 0) cancel_timer(v); + v = timer(0.5, "l_timer", 0); + set_int(left_timer, v); + } + } + program { name: "edge_right"; + signal: "elm,edge,right"; + source: "elm"; + script { + new v; + v = get_int(right_timer); + if (!v) { + emit("do-show-right-shadow", ""); + } + if (v > 0) cancel_timer(v); + v = timer(0.5, "r_timer", 0); + set_int(right_timer, v); + } + } + } +} + + +group { name: "elm/toolbar/item/imageviewer/tabbar"; + images { + image: "00_tab_press.png" COMP; + image: "00_badge_bg.png" COMP; + image: "00_tab_focus.png" COMP; + image: "00_tab_select_bar.png" COMP; + image: "00_effect_tab_text_dim_left.png" COMP; + image: "00_effect_tab_text_dim_right.png" COMP; + image: "00_effect_tab_press_text_dim_left.png" COMP; + image: "00_effect_tab_press_text_dim_right.png" COMP; + } + + data.item: "transition_animation_on" "0"; + script { + public item_state = ITEM_STATE_ENABLED; + public items_number = 0; + public sliding_timer; + public end_timer; + public check_timer; + public text_w; + public org_text_w; + public bg_w; + public loop_count = 0; + public selected = 0; + public pressed = 0; + public sliding = 0; + public landscape = 0; + + public get_width() { + new x, y, w, h; + if (get_int(selected)) + { + set_state(PART:"elm.text", "selected", 0.0); + } + else + { + set_state(PART:"elm.text", "visible", 0.0); + } + get_geometry(PART:"elm.text", x, y, w, h); + set_int(org_text_w, w); + + set_state(PART:"elm.text", "sliding", 0.0); + get_geometry(PART:"elm.text", x, y, w, h); + set_int(text_w, w); + } + public get_width_landscape() { + new x, y, w, h; + get_geometry(PART:"bg", x, y, w, h); + set_int(bg_w, w); + + set_state(PART:"elm.text", "sliding", 0.0); + get_geometry(PART:"elm.text", x, y, w, h); + set_int(text_w, w); + } + + public ender(val) { + set_int(loop_count, 0); + if (get_int(sliding_timer)) cancel_timer(get_int(sliding_timer)); + set_int(sliding_timer, 0); + if (get_int(end_timer)) cancel_timer(get_int(end_timer)); + set_int(end_timer, 0); + set_state(PART:"elm.text.dim.left", "default", 0.0); + set_state(PART:"elm.text_new.clipper", "default", 0.0); + if (val == 1) { + set_int(sliding, TOOLBAR_SLIDING_END); + custom_state(PART:"elm.text", "sliding", 0.0); + set_state_val(PART:"elm.text", STATE_REL1_OFFSET, TOOLBAR_SLIDING_TEXT_OFFSET, 0); + set_state_val(PART:"elm.text", STATE_REL2_OFFSET, TOOLBAR_SLIDING_TEXT_OFFSET, 0); + set_state(PART:"elm.text", "custom", 0.0); + } else { + set_int(sliding, TOOLBAR_SLIDING_NO_EFFECT); + if(get_int(pressed)) + { + set_state(PART:"elm.text", "pressed", 0.0); + } + else if (get_int(selected)) + { + set_state(PART:"elm.text", "selected", 0.0); + } + else + { + set_state(PART:"elm.text", "visible", 0.0); + } + set_state(PART:"elm.text.dim.right", "default", 0.0); + } + } + public check_text(val) { + if (get_int(landscape)) + { + get_width_landscape(); + if (get_int(text_w) <= get_int(bg_w)) { + ender(0); + return; + } + } + } + public slide_text(val) { + new buf[128]; + if (val == TOOLBAR_SLIDING_TEXT_OFFSET) { + set_int(loop_count, get_int(loop_count) + 1); + if (get_int(landscape)) + { + get_width_landscape(); + if (get_int(text_w) <= get_int(bg_w)) { + ender(0); + return; + } + } + else + { + get_width(); + if (get_int(text_w) <= get_int(org_text_w)) { + ender(0); + return; + } + } + } + val -= TOOLBAR_SLIDING_PER_FPS; +// for debuging ////////////////////////////// +/* snprintf(buf, 127, "%d:%d:%d", + val, get_int(org_text_w), get_int(text_w)); + set_text(PART:"dbg", buf);*/ + + set_int(sliding, TOOLBAR_SLIDING_DOING); + + if (val <= -get_int(text_w) - TOOLBAR_SLIDING_TEXT_GAP + TOOLBAR_SLIDING_TEXT_OFFSET) + val = TOOLBAR_SLIDING_TEXT_OFFSET; + + custom_state(PART:"elm.text", "sliding", 0.0); + set_state_val(PART:"elm.text", STATE_REL1_OFFSET, val, 0); + set_state_val(PART:"elm.text", STATE_REL2_OFFSET, val, 0); + if (!get_int(pressed)) + set_state_val(PART:"elm.text", STATE_TEXT_STYLE, "tabbar_selected_text_style_30"); + else + set_state_val(PART:"elm.text", STATE_TEXT_STYLE, "tabbar_pressed_text_style_30"); + set_state(PART:"elm.text", "custom", 0.0); + + set_state(PART:"elm.text_new.clipper", "animation", 0.0); + get_text(PART:"elm.text", buf, 128); + set_text(PART:"elm.text_new", buf); + + custom_state(PART:"elm.text_new", "sliding", 0.0); + set_state_val(PART:"elm.text_new", STATE_REL1_OFFSET, + val + get_int(text_w) + TOOLBAR_SLIDING_TEXT_GAP, 0); + set_state_val(PART:"elm.text_new", STATE_REL2_OFFSET, + val + get_int(text_w) + TOOLBAR_SLIDING_TEXT_GAP, 0); + if (!get_int(pressed)) + set_state_val(PART:"elm.text_new", STATE_TEXT_STYLE, "tabbar_selected_text_style_30"); + else + set_state_val(PART:"elm.text_new", STATE_TEXT_STYLE, "tabbar_pressed_text_style_30"); + set_state(PART:"elm.text_new", "custom", 0.0); + + if (!get_int(pressed)) + { + set_state(PART:"elm.text.dim.left", "show", 0.0); + set_state(PART:"elm.text.dim.right", "show", 0.0); + } + else + { + set_state(PART:"elm.text.dim.left", "show_pressed", 0.0); + set_state(PART:"elm.text.dim.right", "show_pressed", 0.0); + } + + if (val == TOOLBAR_SLIDING_TEXT_OFFSET || val <= -get_int(text_w)) + { + set_state(PART:"elm.text.dim.left", "default", 0.0); + set_int(sliding, TOOLBAR_SLIDING_END); + } + else + set_int(sliding, TOOLBAR_SLIDING_DOING); + + + if (val == TOOLBAR_SLIDING_TEXT_OFFSET) { + if (get_int(loop_count) < 3) + set_int(sliding_timer, timer(TOOLBAR_SLIDING_WAIT_TIME, "slide_text", TOOLBAR_SLIDING_TEXT_OFFSET)); + else + set_int(end_timer, timer(0.5, "ender", 1)); + } else + set_int(sliding_timer, timer(1.0/TOOLBAR_SLIDING_FPS, "slide_text", val)); + } + } + parts { + part { name: "bg"; + type: RECT; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + min: 180 0; + visible: 0; + } + description { state: "icon_text" 0.0; + inherit: "default" 0.0; + min: 180 0; + } + description { state: "landscape" 0.0; + inherit: "default" 0.0; + min: 320 0; + } + } + part { name: "selected_line"; + type: IMAGE; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + rel1 { + relative: 0.0 1.0; + } + rel2 { + relative: 1.0 1.0; + } + image { + normal: "00_tab_select_bar.png"; + border: TABBAR_ITEM_TAB_SELECT_BAR_BORDER_INC; + border_scale: 1; + } + align: 0.0 1.0; + min: 0 10; + fixed: 0 1; + visible: 0; + } + description { state: "selected" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { name: "bg_cover"; + type: IMAGE; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + visible: 0; + image { + normal: "00_tab_press.png"; + border: TABBAR_ITEM_TAB_PRESS_BORDER_INC; + border_scale: 1; + } + } + description { state: "pressed" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { state: "moving" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { name: "padding_left_top"; + type: SPACER; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + align: 0.0 0.0; + rel2.relative: 0.0 0.0; + min: 2 0; + fixed: 1 1; + } + } + part { name: "padding_right_bottom"; + type: SPACER; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + align: 1.0 1.0; + rel1.relative: 1.0 1.0; + min: 2 0; + fixed: 1 1; + } + } + part { + name: "icon_rect"; + type: RECT; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + min: 0 0; + fixed: 0 1; + rel1 { + relative: 1.0 1.0; + to: "padding_left_top"; + } + rel2 { + relative: 0.0 1.0; + to_x: "padding_right_bottom"; + to_y: "padding_left_top"; + } + align: 0.5 0.0; + color: 0 0 0 0; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + min: TABBAR_ITEM_ICON_SIZE_INC; + } + description { state: "icononly" 0.0; + inherit: "default" 0.0; + } + } + part { name: "padding_after_icon"; + type: SPACER; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; //when only icon or no icon is there + align: 0.5 0.0; + rel1 { + relative: 0.0 1.0; + to: "icon_rect"; + } + rel2.to: "icon_rect"; + fixed: 0 1; + min: 0 0; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + min: 0 1; + } + description { state: "icononly" 0.0; + inherit: "default" 0.0; + } + } + part { name: "padding_before_text"; + type: SPACER; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; //when only icon or no icon is there + align: 0.5 1.0; + rel1 { + relative: 1.0 0.0; + to_x: "padding_left_top"; + to_y: "elm.text"; + } + rel2 { + relative: 0.0 0.0; + to_x: "padding_right_bottom"; + to_y: "elm.text"; + } + fixed: 0 1; + min: 0 0; + } + } + part { name: "elm.swallow.icon"; + type: SWALLOW; + scale: 1; + clip_to: "elm.icon.clipper"; + description { state: "default" 0.0; + visible: 0; + min: TABBAR_ITEM_ICON_SIZE_INC; + max: TABBAR_ITEM_ICON_SIZE_INC; + rel1 { + to: "padding_left_top"; + } + rel2 { + to: "padding_right_bottom"; + } + aspect: 1.0 1.0; + aspect_preference: HORIZONTAL; + } + description { state: "visible" 0.0; + fixed: 1 0; + min: TABBAR_ITEM_ICON_SIZE_INC; + max: TABBAR_ITEM_ICON_SIZE_INC; + align: 0.5 1.0; + rel1 { + relative: 1.0 0.0; + to_x: "padding_left_top"; + to_y: "padding_before_text"; + } + rel2 { + relative: 0.0 0.0; + to_x: "padding_right_bottom"; + to_y: "padding_before_text"; + } + aspect: 1.0 1.0; + aspect_preference: HORIZONTAL; + } + description { state: "icononly" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { name: "elm.swallow.icon_new"; + type: SWALLOW; + scale: 1; + clip_to: "elm.icon_new.clipper"; + description { state: "default" 0.0; + visible: 0; + min: TABBAR_ITEM_ICON_SIZE_INC; + max: TABBAR_ITEM_ICON_SIZE_INC; + rel1.to: "padding_left_top"; + rel2.to: "padding_right_bottom"; + aspect: 1.0 1.0; + aspect_preference: HORIZONTAL; + } + description { state: "visible" 0.0; + fixed: 1 0; + min: TABBAR_ITEM_ICON_SIZE_INC; + max: TABBAR_ITEM_ICON_SIZE_INC; + rel1 { + relative: 0.0 1.0; + to_x: "padding_left_top"; + to_y: "padding_before_text"; + } + rel2 { + relative: 0.0 0.0; + to_x: "padding_right_bottom"; + to_y: "padding_before_text"; + } + aspect: 1.0 1.0; + aspect_preference: HORIZONTAL; + } + description { state: "icononly" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { name: "elm.swallow.icon.proxy"; + type: PROXY; + scale: 1; + clip_to: "elm.icon.proxy.clipper"; + description { state: "default" 0.0; + source: "elm.swallow.icon"; + proxy.source_clip: 0; + rel1.to: "elm.swallow.icon"; + rel1.offset: 0 2; + rel2.to: "elm.swallow.icon"; + rel2.offset: -1 1; + } + description { state: "pressed" 0.0; + inherit: "default" 0.0; + rel1.to: "elm.swallow.icon"; + rel1.offset: 0 -2; + rel2.to: "elm.swallow.icon"; + rel2.offset: -1 -3; + } + } + part { name: "elm.swallow.icon_new.proxy"; + type: PROXY; + scale: 1; + clip_to: "elm.icon_new.proxy.clipper"; + description { state: "default" 0.0; + source: "elm.swallow.icon_new"; + proxy.source_clip: 0; + rel1.to: "elm.swallow.icon_new"; + rel1.offset: 0 2; + rel2.to: "elm.swallow.icon_new"; + rel2.offset: -1 1; + } + description { state: "pressed" 0.0; + inherit: "default" 0.0; + rel1.to: "elm.swallow.icon_new"; + rel1.offset: 0 -2; + rel2.to: "elm.swallow.icon_new"; + rel2.offset: -1 -3; + } + } + part { name: "elm.swallow.icon.proxy.2"; + type: PROXY; + scale: 1; + clip_to: "elm.icon.proxy.clipper.2"; + description { state: "default" 0.0; + source: "elm.swallow.icon"; + proxy.source_clip: 0; + rel1.to: "elm.swallow.icon"; + rel2.to: "elm.swallow.icon"; + } + } + part { name: "elm.swallow.icon_new.proxy.2"; + type: PROXY; + scale: 1; + clip_to: "elm.icon_new.proxy.clipper.2"; + description { state: "default" 0.0; + source: "elm.swallow.icon_new"; + proxy.source_clip: 0; + rel1.to: "elm.swallow.icon_new"; + rel2.to: "elm.swallow.icon_new"; + } + } + part { name: "elm.text"; + type: TEXTBLOCK; + mouse_events: 0; + scale: 1; + clip_to: "elm.text.clipper"; + description { state: "default" 0.0; + visible: 0; + rel1 { + relative: 1.0 1.0; + to_x: "padding_left_top"; + to_y: "padding_after_icon"; + } + rel2 { + relative: 0.0 0.0; + to: "padding_right_bottom"; + } + fixed: 1 1; + max: 0 38; + text { + style: "tabbar_text_style_30"; + min: 0 1; + max: 1 0; + } + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { state: "selected" 0.0; + inherit: "visible" 0.0; + text.style: "tabbar_selected_text_style_30"; + } + description { state: "pressed" 0.0; + inherit: "visible" 0.0; + text.style: "tabbar_pressed_text_style_30"; + } + description { state: "disabled" 0.0; + inherit: visible; + text.style: "tabbar_disabled_text_style_30"; + } + description { state: "sliding" 0.0; + inherit: "selected" 0.0; + rel1.offset: TOOLBAR_SLIDING_TEXT_OFFSET 0; + rel2.offset: TOOLBAR_SLIDING_TEXT_OFFSET 0; + text.min: 1 1; + align: 0.0 0.5; + } + } + part { name: "elm.text_new"; + type: TEXTBLOCK; + mouse_events: 0; + scale: 1; + clip_to: "elm.text_new.clipper"; + description { state: "default" 0.0; + visible: 0; + rel1 { + relative: 1.0 1.0; + to_x: "padding_left_top"; + to_y: "padding_after_icon"; + } + rel2 { + relative: 0.0 0.0; + to: "padding_right_bottom"; + } + max: 0 38; + fixed: 1 1; + text { + style: "tabbar_text_style_30"; + min: 0 1; + max: 1 0; + } + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { state: "selected" 0.0; + inherit: "visible" 0.0; + text.style: "tabbar_selected_text_style_30"; + } + description { state: "pressed" 0.0; + inherit: "visible" 0.0; + text.style: "tabbar_pressed_text_style_30"; + } + description { state: "disabled" 0.0; + inherit: visible; + text.style: "tabbar_disabled_text_style_30"; + } + description { state: "sliding" 0.0; + inherit: "selected" 0.0; + rel1.offset: TOOLBAR_SLIDING_TEXT_OFFSET 0; + rel2.offset: TOOLBAR_SLIDING_TEXT_OFFSET 0; + text.min: 1 1; + align: 0.0 0.5; + } + } + part { name: "padding.badge"; + type: SPACER; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + align: 1.0 0.0; + rel1 { + relative: 1.0 0.0; + } + rel2 { + relative: 1.0 0.0; + } + min: 10 10; + fixed: 1 1; + } + description { state: "default" 0.10; + inherit: "default" 0.0; + min: TABBAR_BADGE_ONE_ITEM_PADDING_SIZE; + } + description { state: "default" 0.06; + inherit: "default" 0.0; + min: TABBAR_BADGE_TWO_ITEMS_PADDING_SIZE; + } + description { state: "default" 0.04; + inherit: "default" 0.0; + min: TABBAR_BADGE_THREE_ITEMS_PADDING_SIZE; + } + } + part { name: "elm.image.badge"; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + visible: 0; + min: 54 54; + fixed: 1 1; + rel1 { + to: "left.padding.text"; + relative: 0.0 0.0; + } + rel2 { + to: "right.padding.text"; + relative: 1.0 1.0; + } + image { + normal: "00_badge_bg.png"; + border: TABBAR_BADGE_BG_IMAGE_BORDER_INC; + border_scale: 1; + } + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { name: "left.padding.text"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + min: 12 54; + rel1 { + to: "elm.text.badge"; + relative: 0.0 0.0; + } + rel2 { + to: "elm.text.badge"; + relative: 0.0 1.0; + } + align: 1.0 0.0; + } + } + part { name: "right.padding.text"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + min: 12 54; + rel1 { + to: "padding.badge"; + relative: 0.0 1.0; + } + rel2 { + to: "padding.badge"; + relative: 0.0 1.0; + } + align: 1.0 0.0; + } + } + part { name: "elm.text.badge"; + type: TEXT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + rel1 { + to: "right.padding.text"; + relative: 0.0 0.0; + } + rel2 { + to: "right.padding.text"; + relative: 0.0 1.0; + } + min: 30 0; + fixed: 1 0; + align: 1.0 0.5; + color: TABBAR_BADGE_TEXT_COLOR_INC; + text { + font: "Tizen:style=Bold"; + size: 34; + min: 1 0; + text_class: "tizen"; + } + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { name: "elm.text.clipper"; + type: RECT; + description { state: "default" 0.0; + rel1 { + relative: 1.0 1.0; + to: "padding_left_top"; + } + rel2 { + relative: 0.0 0.0; + to: "padding_right_bottom"; + } + color: 255 255 255 255; + } + description { state: "animation" 0.0; + inherit: "default" 0.0; + color: 255 255 255 0; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + } + } + part { name: "elm.text_new.clipper"; + type: RECT; + description { state: "default" 0.0; + rel1 { + relative: 1.0 1.0; + to: "padding_left_top"; + } + rel2 { + relative: 0.0 0.0; + to: "padding_right_bottom"; + } + color: 255 255 255 0; + } + description { state: "animation" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + color: 255 255 255 153; + } + } + part { name: "elm.icon.clipper"; + type: RECT; + description { state: "default" 0.0; + rel1 { + relative: 1.0 1.0; + to: "padding_left_top"; + } + rel2 { + relative: 0.0 0.0; + to: "padding_right_bottom"; + } + color: TABBAR_ITEM_DEFAULT_ICON_COLOR_INC; + } + description { state: "animation" 0.0; + inherit: "default" 0.0; + color: TABBAR_ITEM_DEFAULT_ICON_COLOR_INC; + } + description { state: "selected" 0.0; + inherit: "default" 0.0; + color: TABBAR_ITEM_DEFAULT_ICON_COLOR_INC; + } + description { state: "pressed" 0.0; + inherit: "default" 0.0; + color: TABBAR_ITEM_DEFAULT_ICON_COLOR_INC; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + color: TABBAR_ITEM_DEFAULT_ICON_COLOR_INC; + } + } + part { name: "elm.icon_new.clipper"; + type: RECT; + description { state: "default" 0.0; + rel1 { + relative: 1.0 1.0; + to: "padding_left_top"; + } + rel2 { + relative: 0.0 0.0; + to: "padding_right_bottom"; + } + color: TABBAR_ITEM_DEFAULT_ICON_COLOR_INC; + } + description { state: "animation" 0.0; + inherit: "default" 0.0; + color: TABBAR_ITEM_DEFAULT_ICON_COLOR_INC; + } + description { state: "selected" 0.0; + inherit: "default" 0.0; + color: TABBAR_ITEM_DEFAULT_ICON_COLOR_INC; + } + description { state: "pressed" 0.0; + inherit: "default" 0.0; + color: TABBAR_ITEM_DEFAULT_ICON_COLOR_INC; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + color: TABBAR_ITEM_DEFAULT_ICON_COLOR_INC; + } + } + part { name: "elm.icon.proxy.clipper"; + type: RECT; + description { state: "default" 0.0; + rel1 { + relative: 1.0 1.0; + to: "padding_left_top"; + } + rel2 { + relative: 0.0 0.0; + to: "padding_right_bottom"; + } + color: TABBAR_ITEM_ICON_SHADOW_COLOR_INC; + } + description { state: "animation" 0.0; + inherit: "default" 0.0; + color: TABBAR_ITEM_ICON_SHADOW_COLOR_INC; + } + description { state: "selected" 0.0; + inherit: "default" 0.0; + color: TABBAR_ITEM_ICON_SHADOW_COLOR_INC; + } + description { state: "pressed" 0.0; + inherit: "default" 0.0; + color: TABBAR_ITEM_PRESSED_ICON_SHADOW_COLOR_INC; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + color: TABBAR_ITEM_DISABLED_ICON_SHADOW_COLOR_INC; + } + } + part { name: "elm.icon_new.proxy.clipper"; + type: RECT; + description { state: "default" 0.0; + rel1 { + relative: 1.0 1.0; + to: "padding_left_top"; + } + rel2 { + relative: 0.0 0.0; + to: "padding_right_bottom"; + } + color: TABBAR_ITEM_ICON_SHADOW_COLOR_INC; + } + description { state: "animation" 0.0; + inherit: "default" 0.0; + color: TABBAR_ITEM_ICON_SHADOW_COLOR_INC; + } + description { state: "selected" 0.0; + inherit: "default" 0.0; + color: TABBAR_ITEM_ICON_SHADOW_COLOR_INC; + } + description { state: "pressed" 0.0; + inherit: "default" 0.0; + color: TABBAR_ITEM_PRESSED_ICON_SHADOW_COLOR_INC; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + color: TABBAR_ITEM_DISABLED_ICON_SHADOW_COLOR_INC; + } + } + part { name: "elm.icon.proxy.clipper.2"; + type: RECT; + description { state: "default" 0.0; + rel1 { + relative: 1.0 1.0; + to: "padding_left_top"; + } + rel2 { + relative: 0.0 0.0; + to: "padding_right_bottom"; + } + color: TABBAR_ITEM_ICON_COLOR_INC; + } + description { state: "animation" 0.0; + inherit: "default" 0.0; + color: TABBAR_ITEM_ICON_COLOR_INC; + } + description { state: "selected" 0.0; + inherit: "default" 0.0; + color: TABBAR_ITEM_SELECTED_ICON_COLOR_INC; + } + description { state: "pressed" 0.0; + inherit: "default" 0.0; + color: TABBAR_ITEM_PRESSED_ICON_COLOR_INC; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + color: TABBAR_ITEM_DISABLED_ICON_COLOR_INC; + } + } + part { name: "elm.icon_new.proxy.clipper.2"; + type: RECT; + description { state: "default" 0.0; + rel1 { + relative: 1.0 1.0; + to: "padding_left_top"; + } + rel2 { + relative: 0.0 0.0; + to: "padding_right_bottom"; + } + color: TABBAR_ITEM_ICON_COLOR_INC; + } + description { state: "animation" 0.0; + inherit: "default" 0.0; + color: TABBAR_ITEM_ICON_COLOR_INC; + } + description { state: "selected" 0.0; + inherit: "default" 0.0; + color: TABBAR_ITEM_SELECTED_ICON_COLOR_INC; + } + description { state: "pressed" 0.0; + inherit: "default" 0.0; + color: TABBAR_ITEM_PRESSED_ICON_COLOR_INC; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + color: TABBAR_ITEM_DISABLED_ICON_COLOR_INC; + } + } + part { name: "elm.text.dim.left"; + type: IMAGE; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + min: 45 0; + fixed: 1 0; + align: 0.0 0.5; + visible: 0; + rel1 { + relative: 0.0 0.0; + to_x: "elm.text.clipper"; + to_y: "elm.text"; + } + rel2 { + relative: 0.0 1.0; + to_x: "elm.text.clipper"; + to_y: "elm.text"; + } + image.normal: "00_effect_tab_text_dim_left.png"; + } + description { state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { state: "show_pressed" 0.0; + inherit: "show" 0.0; + image.normal: "00_effect_tab_press_text_dim_left.png"; + } + } + part { name: "elm.text.dim.right"; + type: IMAGE; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + min: 45 0; + fixed: 1 0; + align: 1.0 0.5; + visible: 0; + rel1 { + relative: 1.0 0.0; + to_x: "elm.text.clipper"; + to_y: "elm.text"; + } + rel2 { + relative: 1.0 1.0; + to_x: "elm.text.clipper"; + to_y: "elm.text"; + } + image.normal: "00_effect_tab_text_dim_right.png"; + } + description { state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { state: "show_pressed" 0.0; + inherit: "show" 0.0; + image.normal: "00_effect_tab_press_text_dim_right.png"; + } + } + part { name: "divider"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + min: TABBAR_ITEM_DIVIDER_SIZE; + max: TABBAR_ITEM_DIVIDER_SIZE; + fixed: 1 1; + rel1 { + relative: 1.0 0.5; + } + rel2 { + relative: 1.0 0.5; + } + } + description { state: "hidden" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { name: "divider_left"; + type: RECT; + clip_to: "divider"; + description { state: "default" 0.0; + color: TABBAR_ITEM_DIVIDER_LEFT_COLOR_INC; + rel1 { + relative: 0.0 0.0; + to: "divider"; + } + rel2 { + relative: 0.5 1.0; + to: "divider"; + } + } + } + part { name: "divider_right"; + type: RECT; + clip_to: "divider"; + description { state: "default" 0.0; + color: TABBAR_ITEM_DIVIDER_RIGHT_COLOR_INC; + rel1 { + relative: 0.5 0.0; + to: "divider"; + } + rel2 { + relative: 1.0 1.0; + to: "divider"; + } + } + } + part { name: "highlight"; + type: IMAGE; + scale: 1; + description { state: "default" 0.0; + visible: 0; + image { + normal: "00_tab_focus.png"; + border: TABBAR_ITEM_TAB_FOCUS_BORDER_INC; + border_scale: 1; + } + } + description { state: "highlighted" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { name: "event"; + type: RECT; + mouse_events: 1; + dragable { + x: 1 0 0; + y: 1 0 0; + } + description { state: "default" 0.0; + color: 0 0 0 0; + } + } +// for debuging ////////////////////////////// +/* part { name: "dbg"; + type: TEXTBLOCK; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + rel1.relative: 1.0 0.0; + rel2.relative: 1.0 0.0; + fixed: 1 1; + align: 1.0 0.0; + text { + style: "tabbar_text_style_30"; + text: "test"; + min: 1 1; + } + } + }*/ + } + programs { + program { name: "go_active"; + signal: "elm,state,selected"; + source: "elm"; + action: STATE_SET "selected" 0.0; + target: "elm.icon.clipper"; + target: "elm.icon.proxy.clipper"; + target: "elm.icon.proxy.clipper.2"; + target: "selected_line"; + after: "selected_text"; + } + program { name: "selected_text"; + script{ + new st[31]; + new Float:vl; + set_int(selected, 1); + get_state(PART:"elm.text", st, 30, vl); + if (!strcmp(st, "visible")) + set_state(PART:"elm.text", "selected", vl); + if (strcmp(st, "default")) + run_program(PROGRAM:"slide_start"); + } + } + program { name: "go_passive"; + signal: "elm,state,unselected"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "elm.icon.clipper"; + target: "elm.icon.proxy.clipper"; + target: "elm.icon.proxy.clipper.2"; + target: "selected_line"; + after: "unselected_text"; + } + program { name: "unselected_text"; + script{ + new st[31]; + new Float:vl; + set_int(selected, 0); + set_int(sliding, TOOLBAR_SLIDING_NO_EFFECT); + get_state(PART:"elm.text", st, 30, vl); + if (!strcmp(st, "selected")) + set_state(PART:"elm.text", "visible", vl); + if (strcmp(st, "default")) + run_program(PROGRAM:"slide_stop"); + } + } + program { name: "moving"; + signal: "elm,state,moving"; + source: "elm"; + script { + if (get_int(item_state) != ITEM_STATE_DISABLED) + { + new st[31]; + new Float:vl; + get_state(PART:"elm.text", st, 30, vl); + + set_state(PART:"bg_cover", "moving", 0.0); + set_state(PART:"elm.text", "pressed", 0.0); + set_state(PART:"elm.swallow.icon.proxy", "pressed", 0.0); + set_state(PART:"elm.swallow.icon_new.proxy", "pressed", 0.0); + set_state(PART:"elm.icon.clipper", "pressed", 0.0); + set_state(PART:"elm.icon.proxy.clipper", "pressed", 0.0); + set_state(PART:"elm.icon.proxy.clipper.2", "pressed", 0.0); + set_int(pressed, 1); + if (strcmp(st, "default")) + run_program(PROGRAM:"slide_stop"); + } + } + } + program { name: "pressed"; + signal: "mouse,down,1"; + source: "event"; + script { + if (get_int(item_state) != ITEM_STATE_DISABLED) + { + new st[31]; + new Float:vl; + get_state(PART:"elm.text", st, 30, vl); + + set_state(PART:"bg_cover", "pressed", 0.0); + if (!get_int(sliding)) + set_state(PART:"elm.text", "pressed", 0.0); + else if (get_int(sliding) == TOOLBAR_SLIDING_END) + { + set_state_val(PART:"elm.text", STATE_TEXT_STYLE, "tabbar_pressed_text_style_30"); + set_state(PART:"elm.text", "custom", 0.0); + set_state_val(PART:"elm.text_new", STATE_TEXT_STYLE, "tabbar_pressed_text_style_30"); + set_state(PART:"elm.text_new", "custom", 0.0); + set_state(PART:"elm.text.dim.right", "show_pressed", 0.0); + } + else + { + set_state(PART:"elm.text.dim.left", "show_pressed", 0.0); + set_state(PART:"elm.text.dim.right", "show_pressed", 0.0); + } + set_state(PART:"elm.swallow.icon.proxy", "pressed", 0.0); + set_state(PART:"elm.swallow.icon_new.proxy", "pressed", 0.0); + set_state(PART:"elm.icon.clipper", "pressed", 0.0); + set_state(PART:"elm.icon.proxy.clipper", "pressed", 0.0); + set_state(PART:"elm.icon.proxy.clipper.2", "pressed", 0.0); + set_int(pressed, 1); + } + } + } + program { + name: "drag"; + signal: "drag"; + source: "event"; + script { + if (get_int(item_state) != ITEM_STATE_DISABLED) + { + new st[31]; + new Float:vl; + new Float:dx, Float:dy; + get_state(PART:"bg_cover", st, 30, vl); + if (strcmp(st, "moving")) + { + get_drag(PART:"event", dx, dy); + if ((abs(dx)*abs(dx))+(abs(dy)*abs(dy)) > 400) + { + set_drag(PART:"event", 0.0, 0.0); + set_state(PART:"bg_cover", "default", 0.0); + set_int(pressed, 0); + if (get_int(selected)) + { + if (!get_int(sliding)) + set_state(PART:"elm.text", "selected", 0.0); + else if (get_int(sliding) == TOOLBAR_SLIDING_END) + { + set_state_val(PART:"elm.text", STATE_TEXT_STYLE, "tabbar_selected_text_style_30"); + set_state(PART:"elm.text", "custom", 0.0); + set_state_val(PART:"elm.text_new", STATE_TEXT_STYLE, "tabbar_selected_text_style_30"); + set_state(PART:"elm.text_new", "custom", 0.0); + set_state(PART:"elm.text.dim.right", "show", 0.0); + } + else + { + set_state(PART:"elm.text.dim.left", "show", 0.0); + set_state(PART:"elm.text.dim.right", "show", 0.0); + } + set_state(PART:"elm.swallow.icon.proxy", "default", 0.0); + set_state(PART:"elm.swallow.icon_new.proxy", "default", 0.0); + set_state(PART:"elm.icon.clipper", "selected", 0.0); + set_state(PART:"elm.icon.proxy.clipper", "selected", 0.0); + set_state(PART:"elm.icon.proxy.clipper.2", "selected", 0.0); + } + else + { + set_state(PART:"elm.text", "visible", 0.0); + set_state(PART:"elm.swallow.icon.proxy", "default", 0.0); + set_state(PART:"elm.swallow.icon_new.proxy", "default", 0.0); + set_state(PART:"elm.icon.clipper", "default", 0.0); + set_state(PART:"elm.icon.proxy.clipper", "default", 0.0); + set_state(PART:"elm.icon.proxy.clipper.2", "default", 0.0); + } + } + set_drag(PART:"event", 0.0, 0.0); + } + } + } + } + program { name: "unpressed"; + signal: "mouse,up,1"; + source: "event"; + script { + if (get_int(item_state) != ITEM_STATE_DISABLED) + { + set_drag(PART:"event", 0.0, 0.0); + set_state(PART:"bg_cover", "default", 0.0); + set_int(pressed, 0); + if (get_int(selected)) + { + if (!get_int(sliding)) + set_state(PART:"elm.text", "selected", 0.0); + else if (get_int(sliding) == TOOLBAR_SLIDING_END) + { + set_state_val(PART:"elm.text", STATE_TEXT_STYLE, "tabbar_selected_text_style_30"); + set_state(PART:"elm.text", "custom", 0.0); + set_state_val(PART:"elm.text_new", STATE_TEXT_STYLE, "tabbar_selected_text_style_30"); + set_state(PART:"elm.text_new", "custom", 0.0); + set_state(PART:"elm.text.dim.right", "show", 0.0); + } + else + { + set_state(PART:"elm.text.dim.left", "show", 0.0); + set_state(PART:"elm.text.dim.right", "show", 0.0); + } + set_state(PART:"elm.swallow.icon.proxy", "default", 0.0); + set_state(PART:"elm.swallow.icon_new.proxy", "default", 0.0); + set_state(PART:"elm.icon.clipper", "selected", 0.0); + set_state(PART:"elm.icon.proxy.clipper", "selected", 0.0); + set_state(PART:"elm.icon.proxy.clipper.2", "selected", 0.0); + } + else + { + set_state(PART:"elm.text", "visible", 0.0); + set_state(PART:"elm.swallow.icon.proxy", "default", 0.0); + set_state(PART:"elm.swallow.icon_new.proxy", "default", 0.0); + set_state(PART:"elm.icon.clipper", "default", 0.0); + set_state(PART:"elm.icon.proxy.clipper", "default", 0.0); + set_state(PART:"elm.icon.proxy.clipper.2", "default", 0.0); + } + } + } + } + program { name: "go"; + signal: "mouse,clicked,1"; + source: "event"; + script { + emit("elm,action,click", "elm"); + if (get_int(item_state) != ITEM_STATE_DISABLED) + run_program(PROGRAM:"play_sound"); + } + } + program { name: "play_sound"; + action: PLAY_SAMPLE "touch_sound" 1.0; + } + program { name: "mouse,in"; + signal: "mouse,in"; + source: "event"; + action: SIGNAL_EMIT "elm,mouse,in" "elm"; + } + program { name: "mouse,out"; + signal: "mouse,out"; + source: "event"; + action: SIGNAL_EMIT "elm,mouse,out" "elm"; + } + program { name: "disable"; + signal: "elm,state,disabled"; + source: "elm"; + script { + set_int(item_state, ITEM_STATE_DISABLED); + set_state(PART:"bg_cover", "disabled", 0.0); + set_state(PART:"elm.text", "disabled", 0.0); + set_state(PART:"elm.text.clipper", "disabled", 0.0); + set_state(PART:"elm.icon.clipper", "disabled", 0.0); + set_state(PART:"elm.icon.proxy.clipper", "disabled", 0.0); + set_state(PART:"elm.icon.proxy.clipper.2", "disabled", 0.0); + run_program(PROGRAM:"label_set,animation,done"); + run_program(PROGRAM:"icon_set,animation,done"); + } + } + program { name: "enable"; + signal: "elm,state,enabled"; + source: "elm"; + script { + set_int(item_state, ITEM_STATE_ENABLED); + set_state(PART:"bg_cover", "default", 0.0); + set_state(PART:"elm.text", "visible", 0.0); + set_state(PART:"elm.text.clipper", "default", 0.0); + set_state(PART:"elm.icon.clipper", "default", 0.0); + set_state(PART:"elm.icon.proxy.clipper", "default", 0.0); + set_state(PART:"elm.icon.proxy.clipper.2", "default", 0.0); + run_program(PROGRAM:"label_set,animation,done"); + run_program(PROGRAM:"icon_set,animation,done"); + } + } + program { name: "label_set,animation,forward"; + signal: "elm,state,label_set,forward"; + source: "elm"; + after: "label_set,sync"; + } + program { name: "label_set,animation,backward"; + signal: "elm,state,label_set,backward"; + source: "elm"; + after: "label_set,sync"; + } + program { name: "label_set,sync"; + signal: "elm,state,label_set"; + source: "elm"; + script { + new st[31]; + new Float:vl; + get_state(PART:"elm.text", st, 30, vl); + set_state(PART:"elm.text_new", st, vl); + } + after: "label_set,animation"; + } + program { name: "label_set,animation"; + action: STATE_SET "animation" 0.0; + target: "elm.text.clipper"; + target: "elm.text_new.clipper"; + after: "label_set,animation,done"; + } + program { name: "label_set,animation,done"; + action: SIGNAL_EMIT "elm,state,label_set,done" "elm"; + } + program { name: "label,reset"; + signal: "elm,state,label,reset"; + source: "elm"; + script { + set_state(PART:"elm.text_new.clipper", "default", 0.0); + if (get_int(item_state) != ITEM_STATE_DISABLED) + set_state(PART:"elm.text.clipper", "default", 0.0); + else + set_state(PART:"elm.text.clipper", "disabled", 0.0); + } + } + program { name: "icon_set,animation,forward"; + signal: "elm,state,icon_set,forward"; + source: "elm"; + after: "icon_set,animation"; + } + program { name: "icon_set,animation,backward"; + signal: "elm,state,icon_set,backward"; + source: "elm"; + after: "icon_set,animation"; + } + program { name: "icon_set,animation"; + signal: "elm,state,icon_set"; + source: "elm"; + action: STATE_SET "animation" 0.0; + target: "elm.icon.clipper"; + target: "elm.icon_new.clipper"; + target: "elm.icon.proxy.clipper"; + target: "elm.icon_new.proxy.clipper"; + target: "elm.icon.proxy.clipper.2"; + target: "elm.icon_new.proxy.clipper.2"; + after: "icon_set,animation,done"; + } + program { name: "icon_set,animation,done"; + action: SIGNAL_EMIT "elm,state,icon_set,done" "elm"; + } + program { name: "icon,reset"; + signal: "elm,state,icon,reset"; + source: "elm"; + script { + set_state(PART:"elm.icon_new.clipper", "default", 0.0); + if (get_int(item_state) != ITEM_STATE_DISABLED) + { + set_state(PART:"elm.icon.clipper", "default", 0.0); + set_state(PART:"elm.icon.proxy.clipper", "default", 0.0); + set_state(PART:"elm.icon.proxy.clipper.2", "default", 0.0); + } + else + { + set_state(PART:"elm.icon.clipper", "disabled", 0.0); + set_state(PART:"elm.icon.proxy.clipper", "disabled", 0.0); + set_state(PART:"elm.icon.proxy.clipper.2", "disabled", 0.0); + } + } + } + program { name: "text_show"; + signal: "elm,state,text,visible"; + source: "elm"; + script { + new st[31]; + new Float:vl; + get_state(PART:"elm.swallow.icon", st, 30, vl); + if (!strcmp(st, "icononly")) + { + set_state(PART:"elm.swallow.icon", "visible", 0.0); + set_state(PART:"icon_rect", "visible", 0.0); + set_state(PART:"padding_after_icon", "visible", 0.0); + set_state(PART:"bg", "icon_text", 0.0); + } + if (get_int(pressed)) + set_state(PART:"elm.text", "pressed", 0.0); + else if (get_int(selected)) + set_state(PART:"elm.text", "selected", 0.0); + else + set_state(PART:"elm.text", "visible", 0.0); + } + } + program { name: "text_hide"; + signal: "elm,state,text,hidden"; + source: "elm"; + script { + new st[31]; + new Float:vl; + get_state(PART:"elm.swallow.icon", st, 30, vl); + if (strcmp(st, "default")) + { + set_state(PART:"elm.swallow.icon", "icononly", 0.0); + set_state(PART:"icon_rect", "icononly", 0.0); + set_state(PART:"padding_after_icon", "icononly", 0.0); + } + set_state(PART:"elm.text", "default", 0.0); + set_state(PART:"bg", "default", 0.0); + } + } + program { name: "icon_show"; + signal: "elm,state,icon,visible"; + source: "elm"; + script { + new st[31]; + new Float:vl; + get_state(PART:"elm.text", st, 30, vl); + if (strncmp(st, "default", 7)) + { + set_state(PART:"elm.swallow.icon", "visible", 0.0); + set_state(PART:"icon_rect", "visible", 0.0); + set_state(PART:"padding_after_icon", "visible", 0.0); + set_state(PART:"bg", "icon_text", 0.0); + } + else + { + set_state(PART:"elm.swallow.icon", "icononly", 0.0); + set_state(PART:"icon_rect", "icononly", 0.0); + set_state(PART:"padding_after_icon", "icononly", 0.0); + } + } + } + program { name: "icon_hide"; + signal: "elm,state,icon,hidden"; + source: "elm"; + script { + set_state(PART:"elm.swallow.icon", "default", 0.0); + set_state(PART:"icon_rect", "default", 0.0); + set_state(PART:"padding_after_icon", "default", 0.0); + set_state(PART:"bg", "default", 0.0); + } + } + program { name: "badge_show"; + signal: "elm,state,elm.text.badge,visible"; + source: "elm"; + action: STATE_SET "visible" 0.0; + target: "elm.text.badge"; + target: "elm.image.badge"; + } + program { name: "badge_hide"; + signal: "elm,state,elm.text.badge,hidden"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "elm.text.badge"; + target: "elm.image.badge"; + } + program { name: "divider_visible_1"; + signal: "elm,order,first,item"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "divider"; + } + program { name: "divider_visible_2"; + signal: "elm,order,default,item"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "divider"; + } + program { name: "divider_hidden"; + signal: "elm,order,last,item"; + source: "elm"; + action: STATE_SET "hidden" 0.0; + target: "divider"; + } + program { name: "highlight_on"; + signal: "elm,highlight,on"; + source: "elm"; + action: STATE_SET "highlighted" 0.0; + target: "highlight"; + } + program { name: "highlight_off"; + signal: "elm,highlight,off"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "highlight"; + } + program { name: "tab_item_2"; + signal: "elm,number,item,2"; + source: "elm"; + script { + set_int(items_number, 2); + set_state(PART:"padding.badge", "default", 0.10); + } + } + program { name: "tab_item_3"; + signal: "elm,number,item,3"; + source: "elm"; + script { + set_int(items_number, 3); + set_state(PART:"padding.badge", "default", 0.06); + } + } + program { name: "tab_item_4"; + signal: "elm,number,item,4"; + source: "elm"; + script { + set_int(items_number, 4); + } + after: "tab_item_upper_4"; + } + program { name: "tab_item_5"; + signal: "elm,number,item,5"; + source: "elm"; + script { + set_int(items_number, 5); + } + after: "tab_item_upper_4"; + } + program { name: "tab_item_6"; + signal: "elm,number,item,6"; + source: "elm"; + script { + set_int(items_number, 6); + } + after: "tab_item_upper_4"; + } + program { name: "tab_item_7"; + signal: "elm,number,item,7"; + source: "elm"; + script { + set_int(items_number, 7); + } + after: "tab_item_upper_4"; + } + program { name: "tab_item_8"; + signal: "elm,number,item,8"; + source: "elm"; + script { + set_int(items_number, 8); + } + after: "tab_item_upper_4"; + } + program { name: "tab_item_9"; + signal: "elm,number,item,9"; + source: "elm"; + script { + set_int(items_number, 9); + } + after: "tab_item_upper_4"; + } + program { name: "tab_item_10"; + signal: "elm,number,item,10"; + source: "elm"; + script { + set_int(items_number, 10); + } + after: "tab_item_upper_4"; + } + program { name: "tab_item_upper_4"; + script { + set_state(PART:"padding.badge", "default", 0.04); + } + } + program { name: "slide_start"; + script { + if (!get_int(sliding_timer) && !get_int(end_timer)) { + set_int(sliding_timer, timer(TOOLBAR_SLIDING_WAIT_TIME, "slide_text", TOOLBAR_SLIDING_TEXT_OFFSET)); + } + } + } + program { name: "slide_stop"; + script { + ender(0); + } + } + program { + name: "change_to_landscape"; + script { + if (!get_int(landscape)) { + set_state(PART:"bg", "landscape", 0.0); + set_int(landscape, 1); + if (!get_int(sliding)) + { + ender(0); + } + else + { + if (get_int(landscape)) + { + set_int(check_timer, timer(0, "check_text", 0)); + } + } + } + } + } + program { + name: "change_to_portrait"; + script { + new st[31]; + new Float:vl; + get_state(PART:"elm.text", st, 30, vl); + if (get_int(landscape)) { + set_state(PART:"bg", "icon_text", 0.0); + set_int(landscape, 0); + if (!get_int(sliding) && !strcmp(st, "selected")) + run_program(PROGRAM:"slide_start"); + } + } + } + program { name: "landscape_mode"; + source: "elm"; + signal: "elm,state,orient,90"; + after: "change_to_landscape"; + } + program { name: "landscape_mode2"; + source: "elm"; + signal: "elm,state,orient,270"; + after: "change_to_landscape"; + } + program { name: "portrait_mode"; + source: "elm"; + signal: "elm,state,orient,0"; + after: "change_to_portrait"; + } + program { name: "portrait_mode2"; + source: "elm"; + signal: "elm,state,orient,180"; + after: "change_to_portrait"; + } + } +} + + diff --git a/ug-image-viewer-efl.manifest b/ug-image-viewer-efl.manifest old mode 100644 new mode 100755 index 3eb4608..f12a215 --- a/ug-image-viewer-efl.manifest +++ b/ug-image-viewer-efl.manifest @@ -3,8 +3,8 @@ - - + + diff --git a/ug-image-viewer-efl.xml b/ug-image-viewer-efl.xml old mode 100644 new mode 100755 index 4aa693c..819b9fb --- a/ug-image-viewer-efl.xml +++ b/ug-image-viewer-efl.xml @@ -1,26 +1,125 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Jisung Ahn Hyunwoo Kim Image viewer Application ug-image-viewer-efl.png - + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ug-image-viewer.cpp b/ug-image-viewer.cpp new file mode 100755 index 0000000..2910296 --- /dev/null +++ b/ug-image-viewer.cpp @@ -0,0 +1,180 @@ +/* +* Copyright (c) 2000-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 "ivug-debug.h" +#include "ivug-define.h" + +#include "ivug-base.h" + + +/* + When turn on TRACE_MEMORY, you should set sticky bit to memsp. + + #chmod 4777 /usr/bin/memps +*/ +#undef TRACE_MEMORY + +#ifdef TRACE_MEMORY +#include +#endif + +static int nRunCount = 0; + +extern "C" UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops) +{ + ug_data *ugd; + + const char *gEngine = elm_config_preferred_engine_get(); + + MSG_IMAGEVIEW_HIGH("UG_MODULE_INIT. Ver=12.0. RunCount=%d Graphic=%s", nRunCount, gEngine); + + if (!ops) { + MSG_IMAGEVIEW_ERROR("OPS Pointer is NULL"); + return -1; + } + + ugd = AllocUGData(); + + if (!ugd) { + MSG_IMAGEVIEW_ERROR("Cannot allocate memory."); + return -1; + } + + MSG_IMAGEVIEW_HIGH("UG_MODULE_INIT. NO IMG VIEW ERRORS"); +#ifdef TRACE_MEMORY + + MSG_IMAGEVIEW_HIGH("UG_MODULE_INIT. IN TRACE MEOMRY"); + if ((nRunCount) % 10 == 0) { + char cmd[256]; + + snprintf(cmd, 256, "echo \"Count=%d\" >> %s/mem.%d.%d.txt", nRunCount, "/var/tmp", getpid(), nRunCount ); + MSG_IMAGEVIEW_HIGH("CMD : %s", cmd); + + if (system(cmd) < 0 ) { + MSG_IMAGEVIEW_ERROR("Cannot run '%s'", cmd); + } + + snprintf(cmd, 256, "memps %d >> %s/mem.%d.%d.txt", getpid(), "/var/tmp", getpid(), nRunCount); + + MSG_IMAGEVIEW_HIGH("CMD : %s", cmd); + + if (system(cmd) < 0 ) { + MSG_IMAGEVIEW_ERROR("Cannot run '%s'", cmd); + } + + snprintf(cmd, 256, "echo Count=%d Pid=%d >> %s", nRunCount, getpid(), DATADIR"/"PACKAGE"/memlog.txt" ); + + MSG_IMAGEVIEW_HIGH("CMD : %s", cmd); + + if (system(cmd) < 0 ) { + MSG_IMAGEVIEW_ERROR("Cannot run '%s'", cmd); + } + + + snprintf(cmd, 256, "memps -s %d >> %s", getpid(), DATADIR"/"PACKAGE"/memlog.txt" ); + + MSG_IMAGEVIEW_HIGH("CMD : %s", cmd); + + if (system(cmd) < 0 ) { + MSG_IMAGEVIEW_ERROR("Cannot run '%s'", cmd); + } + + + } +#endif + nRunCount++; + + MSG_IMAGEVIEW_HIGH("UG_MODULE_INIT.REGISTER SYSTEM CALBBACKS"); + IV_PERF_INIT(); + + ops->create = on_create; + ops->start = on_start; + ops->pause = on_pause; + ops->resume = on_resume; + ops->destroy = on_destroy; + ops->message = on_message; + ops->event = on_event; + ops->destroying = on_destroying; + ops->priv = ugd; + ops->opt = (ug_option)(UG_OPT_INDICATOR_ENABLE); + + PERF_CHECK_BEGIN(LVL0, "UG_MODULE_INIT -> On Create"); + + return 0; +} + +extern "C" UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops) +{ + ug_data *ugd; + if (!ops) { + MSG_IMAGEVIEW_ERROR("OPS Pointer is NULL"); + return; + } + + ugd = (ug_data *)ops->priv; + + if (ugd) { + FreeUGData(ugd); + } + + MSG_IMAGEVIEW_HIGH("UG_MODULE_EXIT"); + +#ifdef TA_SAVETO_FILE + FILE *fp = NULL; + + fp = fopen(DATADIR"/"PACKAGE"/TimeAnal", "a"); + + if (fp != NULL) { + PERF_SHOW_RESULT(fp); + + fclose(fp); + } else { + MSG_IMAGEVIEW_HIGH("Cannot open file : %s", DATADIR"/"PACKAGE"/TimeAnal"); + } +#else + PERF_SHOW_RESULT(stderr); +#endif + + IV_PERF_DEINIT(); + +} + + +#define _CONSTRUCTOR __attribute__ ((constructor)) +#define _DESTRUCTOR __attribute__ ((destructor)) + +_CONSTRUCTOR void _DLLInit(void) +{ + MSG_IMAGEVIEW_HIGH("Image Viewer - Called DLL constructor"); +} + +_DESTRUCTOR void _DLLExit(void) +{ + MSG_IMAGEVIEW_HIGH("Image Viewer - Called DLL destructor"); +} + + +int main() +{ +/* For detecting undefined symbol */ + return -1; +} diff --git a/widget/CMakeLists.txt b/widget/CMakeLists.txt index 60c56ce..f8bf788 100755 --- a/widget/CMakeLists.txt +++ b/widget/CMakeLists.txt @@ -6,28 +6,10 @@ SET(VERSION 0.1.0) SET(SRCS # Helper files - src/common/Primitives.cpp src/util/EFLUtil.cpp src/util/ivug-listpopup.c - -#Image - src/image/ivug-image.cpp - -#Video - -# Face rect - -# Thumb list - -# ScissorBox - src/scissorbox/ScissorBox.cpp - src/scissorbox/ivug-scissorbox.cpp - -# Face tag - -# Face detail - -# Best Pic + src/util/ivug-widget.c + src/common/iv-button.cpp ) INCLUDE_DIRECTORIES( @@ -36,9 +18,6 @@ INCLUDE_DIRECTORIES( ${IVUG_SOURCE_FEATURE_DIR}/include include src/common - src/animation - src/image - src/scissorbox ) INCLUDE(FindPkgConfig) @@ -50,6 +29,9 @@ pkg_check_modules(${PROJECT_NAME}_pkgs REQUIRED eina evas dlog + cairo + ui-gadget-1 + efl-extension ) FOREACH(flag ${${PROJECT_NAME}_pkgs_CFLAGS}) @@ -57,7 +39,7 @@ FOREACH(flag ${${PROJECT_NAME}_pkgs_CFLAGS}) ENDFOREACH(flag) ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"") -ADD_DEFINITIONS("-DLOG_LVL=DBG_MSG_LVL_HIGH") +ADD_DEFINITIONS("-DLOG_LVL=DBG_MSG_LVL_WARN") ADD_DEFINITIONS("-DLOG_CAT=\"IV-WIDGET\"") message("WIDGET FLAGS=" ${CMAKE_CXX_FLAGS}) @@ -72,17 +54,13 @@ TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${${PROJECT_NAME}_pkgs_LDFLAGS} ivug_common ivug_feature ) -BUILD_EDJ(ivug-scroller.edc ivug-scroller.edj res/layout images) +BUILD_EDJ(ivug-widget-icons.edc ivug-widget-icons.edj res/layout icons) +BUILD_EDJ(ivug-widget-button.edc ivug-widget-button.edj res/layout icons) #install resouce files. # Lack of a trailing slash means install this directory, trailing slash means # install everything in this directory. -# Install image files. -INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/res/images/ DESTINATION ${CMAKE_INSTALL_PREFIX}/res/images/${IVUG_PACKAGE_NAME}) - INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib) - - diff --git a/widget/include/Animation.h b/widget/include/Animation.h index 324d067..11fbd57 100755 --- a/widget/include/Animation.h +++ b/widget/include/Animation.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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. +* +*/ #pragma once @@ -48,6 +49,7 @@ class CSingleAnimator : public CAnimator private: CSingleAnimator() {}; public: +// TODO. Using factory CSingleAnimator(double first, double last, double duration, TranstionFunc transition, AnimationCB callback, void *data) { m_actor = new CActor(first, last, duration, transition, callback, data); }; diff --git a/widget/include/ECoreAnimator.h b/widget/include/ECoreAnimator.h index 9a9cdb4..ad5d1d2 100755 --- a/widget/include/ECoreAnimator.h +++ b/widget/include/ECoreAnimator.h @@ -1,34 +1,25 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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. +* +*/ #pragma once -typedef bool (*CallbackFUNC)(double delta, void *data); +typedef bool (*ProgressCBFUNC)(double delta, void *data); +typedef void (*EndCBFUNC)(void *data); -#if 0 -template -struct func_bind -{ - static T obj; - static bool call(double value) { return (obj.*callback)(value); }; -}; - -template -T func_bind::obj; -#else template class UserMemFunctor @@ -40,7 +31,10 @@ private: ObjType& m_obj; FunType m_func; }; -#endif + +// TODO : Implement using Functor. +#undef LOG_CAT +#define LOG_CAT "IV-ANIM" class ECoreAnimator { static Eina_Bool _on_anim(void *data) @@ -56,28 +50,38 @@ public: Stop(); }; - void Start(CallbackFUNC cb, void *data) + void Start(ProgressCBFUNC prog, EndCBFUNC end, void *data) { - m_cb = cb; + m_endcb = end; + m_progcb = prog; + m_data = data; m_count = 0; m_animator = ecore_animator_add(_on_anim, this); + MSG_ASSERT(m_animator != NULL); m_bStarted = true; } void Stop() { if ( m_bStarted ) { - m_bStarted = false; ecore_animator_del(m_animator); + m_bStarted = false; m_animator = NULL; + + if ( m_endcb ) + { + m_endcb(m_data); + } } }; Eina_Bool OnAnimation() { double current; + MSG_ASSERT(m_bStarted != false); + if ( m_count == 0 ) { current = m_prev = ecore_loop_time_get(); @@ -89,7 +93,7 @@ public: m_count++; - if ( m_cb(current - m_prev, m_data) == false) + if ( m_progcb(current - m_prev, m_data) == false) { Stop(); return ECORE_CALLBACK_CANCEL; @@ -108,7 +112,9 @@ private: // template // func_bind m_f; - CallbackFUNC m_cb; + ProgressCBFUNC m_progcb; + EndCBFUNC m_endcb; + void *m_data; double m_prev; @@ -117,6 +123,3 @@ private: int m_count; }; - - - diff --git a/widget/include/EFLUtil.h b/widget/include/EFLUtil.h index fdd6945..25716f3 100755 --- a/widget/include/EFLUtil.h +++ b/widget/include/EFLUtil.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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. +* +*/ #pragma once @@ -23,7 +24,7 @@ namespace EFL { Evas_Object *create_gesture(Evas_Object *parent); - Evas_Object *create_rect(Evas_Object *parent); + Evas_Object *create_rect(Evas_Object *parent, int r, int g, int b, int a); Evas_Object *create_clipper(Evas_Object *parent); @@ -56,7 +57,7 @@ namespace util { } Image_Codec_Type; Image_Codec_Type - get_codec_type(const unsigned char *buffer, unsigned int size); + get_codec_type_with_size(const unsigned char *buffer, unsigned int size); Image_Codec_Type get_codec_type(const char *filename); diff --git a/widget/include/EvasSmartObj.h b/widget/include/EvasSmartObj.h index fee0891..52dd5ef 100755 --- a/widget/include/EvasSmartObj.h +++ b/widget/include/EvasSmartObj.h @@ -1,19 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ - +* Copyright (c) 2000-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. +* +*/ #pragma once #include @@ -170,7 +170,7 @@ protected: public: Evas_Object *GetObject() const { return m_obj; }; - const CRect GetGeometry() const { return m_rect; }; + const CRect &GetGeometry() const { return m_rect; }; public: CRect m_rect; diff --git a/widget/include/Exception.h b/widget/include/Exception.h index c45b8c0..15e4b4f 100755 --- a/widget/include/Exception.h +++ b/widget/include/Exception.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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. +* +*/ #pragma once diff --git a/widget/include/Object.h b/widget/include/Object.h index c1baccc..802b0d5 100755 --- a/widget/include/Object.h +++ b/widget/include/Object.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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. +* +*/ #pragma once diff --git a/widget/include/Primitives.h b/widget/include/Primitives.h index b285ef9..e44d106 100755 --- a/widget/include/Primitives.h +++ b/widget/include/Primitives.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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. +* +*/ #pragma once @@ -259,13 +260,19 @@ public: return (Left() <= rhs.Left()) && (rhs.Right() <= Right() ) && (Top() <= rhs.Top()) && (rhs.Bottom() <= Bottom() ); }; - void Scale(double ratio_x, double ratio_y) { + const CRect &Scale(double ratio_x, double ratio_y) { + int w = Width(); + int h = Height(); + topleft.X( topleft.X() * ratio_x); - bottomright.X( bottomright.X() * ratio_x); + topleft.Y( topleft.Y() * ratio_y); + w = w * ratio_x; + h = h * ratio_y; + bottomright.X( topleft.X() + w); + bottomright.Y( topleft.Y() + h); - topleft.Y( topleft.Y() * ratio_y); - bottomright.Y( bottomright.Y() * ratio_y); + return *this; }; private: diff --git a/widget/include/ScrollerClient.h b/widget/include/ScrollerClient.h new file mode 100755 index 0000000..a1a1884 --- /dev/null +++ b/widget/include/ScrollerClient.h @@ -0,0 +1,116 @@ +/* +* Copyright (c) 2000-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. +* +*/ + +#pragma once + +#include +#include "Object.h" + +#include "Scroller.h" + +#undef DISABLE_ORIGIN + +class CScrollerClient : public CObject { + friend class CScroller; +public: + CScrollerClient(Evas_Object *parent) : m_zoom(0.0f), m_size(0,0), m_update(0), m_origin(0,0), m_scroller(NULL) { + CreateObject(parent); + }; + + virtual ~CScrollerClient(){ + MSG_HIGH("CScrollerClient destructor"); + }; + +public: + const CRect GetClientRect() const { + // Returns window rect(LCD coordinate) + return CRect(topleft, m_extent); + }; + + virtual void Move(int x, int y) { topleft.MoveTo(x,y); }; + virtual void MoveBy(int dx, int dy) { topleft.MoveBy(dx,dy); }; + + virtual void PanX(int x) { topleft.X(x); }; + virtual void PanY(int y) { topleft.Y(y); }; + + virtual void Draw() { MSG_HIGH("Scroller client Draw"); }; + + virtual void BeginUpdate() { + m_update++; + + MSG_HIGH("Begin update. Count=%d", m_update); + }; + virtual void EndUpdate() { + m_update--; + + MSG_HIGH("End update. Count=%d", m_update); + }; + + // Scroller client original size + virtual void SetSize(const CSize &size) { + MSG_HIGH("CScrollerClient SetSize(%d,%d)", size.Width(), size.Height()); + + m_size = size; + }; + virtual const CSize &GetClientSize() const { + // Returns client's original size. + return m_size; + }; + virtual double Zoom() const { return m_zoom; }; + virtual void Zoom(double zoom) { + m_zoom = zoom; + + m_extent = m_size * m_zoom; + + MSG_LOW("Set Zoom=%f", m_zoom); + }; + + CPoint &GetOrigin() { return m_origin; }; + void SetOrigin(int x, int y) { m_origin = CPoint(x,y); }; + + void Changed() { + // Inform clicent changed to scroller + m_scroller->OnChanged(this); + }; + +private: + void SetScroller(CScroller *scroller) { + m_scroller = scroller; + }; + + void UnSetScroller() { + m_scroller = NULL; + }; + +// Need OnResized?? +protected: + double m_zoom; + + CPoint topleft; + CSize m_size; // original size + + int m_update; + +private: + CPoint m_origin; // Currently unused. + CSize m_extent; // display size + + CScroller *m_scroller; + +}; + + diff --git a/widget/include/Transit.h b/widget/include/Transit.h index 18feeae..8ada91d 100755 --- a/widget/include/Transit.h +++ b/widget/include/Transit.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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. +* +*/ #pragma once @@ -24,6 +25,9 @@ typedef void (*AnimationCB)(double value, void *data); class CTranstionFunc { // Normalied transition fuctions. + +// http://www.timotheegroleau.com/Flash/experiments/easing_function_generator.htm + public: static double ConstTransit(double t) { return 0; @@ -148,6 +152,7 @@ public: CActor() { m_tween = new CTransit(); }; +// TODO : Using functor! CActor(double first, double last, double duration, TranstionFunc transition, AnimationCB callback, void *data) : m_callback(callback), m_data(data) { m_tween = new CTransit(first, last, duration, transition); }; diff --git a/widget/include/iv-button.h b/widget/include/iv-button.h new file mode 100755 index 0000000..38eb86a --- /dev/null +++ b/widget/include/iv-button.h @@ -0,0 +1,173 @@ +/* +* Copyright (c) 2000-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. +* +*/ + +#pragma once + +#include "EvasSmartObj.h" + +/* + Signals + "clicked" +*/ + +namespace iv { + +#ifndef LOG_LVL +#define LOG_LVL DBG_MSG_LVL_HIGH +#endif + +#ifndef LOG_CAT +#define LOG_CAT "IV-WIDGET" +#endif + +class CButton : public CEvasSmartObject +{ +private: + enum eButtonSate{ + STATE_UNDEFINED, + STATE_DEFAULT, + STATE_PRESS, + STATE_DIM, + STATE_MAX, + } ; + + static void _on_edje_down_cb(void *data, Evas_Object *obj, const char *emission, const char *source) + { + CButton *thiz = static_cast(data); + + thiz->OnMouseDown(); + } + + static void _on_edje_up_cb(void *data, Evas_Object *obj, const char *emission, const char *source) + { + CButton *thiz = static_cast(data); + + thiz->OnMouseUp(); + + } + + static void _on_edje_click_cb(void *data, Evas_Object *obj, const char *emission, const char *source) + { + CButton *thiz = static_cast(data); + + thiz->OnMouseClick(); + + } + +private: + void UpdateButtons(eButtonSate newstate); + + void OnMouseDown(); + void OnMouseUp(); + void OnMouseClick(); + + Evas_Object *CreateObject(Evas_Object *parent); +public: + static CButton *ObjectFactory(Evas_Object *parent) { + CButton *pInstance = new CButton; + + pInstance->CreateObject(parent); + + return pInstance; + }; + + CButton() : CEvasSmartObject(), m_state(STATE_UNDEFINED) + { + CEvasSmartObject::SetClassName("IVButton"); + + m_img[STATE_DEFAULT] = NULL; + m_img[STATE_PRESS] = NULL; + m_img[STATE_DIM] = NULL; + + MSG_MED("CButton constructor"); + }; + + virtual ~CButton() { + MSG_MED("CButton destructor"); + + evas_object_del(m_edje); +//prevent issue fix +// delete this; + }; + + void SetImage(Evas_Object *normal, Evas_Object *press, Evas_Object *dim); + + void Draw(); + + void resize(int w, int h) { + CEvasSmartObject::resize(w,h); + + if ( m_edje ) + { + MSG_MED("Resize WH(%d,%d)", w, h); + evas_object_resize(m_edje, w + 10 , h + 10); + } + + if ( m_img[m_state] != NULL ) + { + evas_object_resize(m_img[m_state], w, h); + } + }; + + void move(int x, int y) { + CEvasSmartObject::move(x,y); + + if ( m_edje ) + { + MSG_MED("Move XY(%d,%d)", x, y); + evas_object_move(m_edje, x - 5, y - 5); + } + + if ( m_img[m_state] != NULL ) + { + evas_object_move(m_img[m_state], x, y); + } + }; + + void show() { + if ( m_edje ) + evas_object_show(m_edje); + + if ( m_img[m_state] != NULL ) + { + evas_object_show(m_img[m_state]); + } + + }; + + void hide() { + if ( m_edje ) + evas_object_hide(m_edje); + + if ( m_img[m_state] != NULL ) + { + evas_object_hide(m_img[m_state]); + } + + + }; + +private: + Evas_Object *m_edje; + + Evas_Object *m_img[STATE_MAX]; + eButtonSate m_state; + +}; + +}; + diff --git a/widget/include/ivug-image.h b/widget/include/ivug-image.h index 643065b..7b490fd 100755 --- a/widget/include/ivug-image.h +++ b/widget/include/ivug-image.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_IMAGE_H__ #define __IVUG_IMAGE_H__ @@ -111,6 +112,22 @@ void ivug_image_coordinate_lcd_to_image(Evas_Object *photocam, int lcd_x, int lc void ivug_image_coordinate_image_to_lcd(Evas_Object *photocam, int img_x, int img_y, int *lcd_x, int *lcd_y); +/* + this function do below works. + - crop obj in area (x,y,w,h) + - resize cropped image upto ow, oh +*/ +Evas_Object * +ivug_image_crop_image_get(const Evas_Object *obj, int x, int y, int w, int h, int ow, int oh); + + +/* + Autofit paste to frame whose dimension is frame_w/h +*/ +Evas_Object * +ivug_image_frame_image_get(const Evas_Object *obj, int frame_w, int frame_h); + + #ifdef __cplusplus } #endif diff --git a/widget/include/ivug-listpopup.h b/widget/include/ivug-listpopup.h index 5621231..80bbe79 100755 --- a/widget/include/ivug-listpopup.h +++ b/widget/include/ivug-listpopup.h @@ -1,59 +1,83 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 __IVUG_LISTPOPUP_H__ #define __IVUG_LISTPOPUP_H__ +#include +#include "ivug-language-mgr.h" -typedef void Ivug_ListPopup_Item; +typedef struct _ListPopupItem Ivug_ListPopup_Item; #ifdef __cplusplus extern "C" { #endif -#include /* Signals "popup,selected" event_info contains Ivug_ListPopup_Item which is used when append/prepend "popup,dismissed" closed button pressed, in case of contextual, no dismised callback + "popup,btn,selected" trigger when button is clicked. event_info has index. and index is order of button using in ivug_listpopup_button_set + */ +typedef enum { + IVUG_POPUP_STYLE_LIST, /* Default */ + IVUG_POPUP_STYLE_RADIO, +} ivug_popup_style; + Evas_Object *ivug_listpopup_add(Evas_Object *parent); +void ivug_listpopup_lang_set(Evas_Object *obj, language_handle_t hLang); + +void ivug_listpopup_set_style(Evas_Object *obj, ivug_popup_style style); Ivug_ListPopup_Item *ivug_listpopup_item_append(Evas_Object *obj, const char *iconpath, const char *caption, void *data); Ivug_ListPopup_Item *ivug_listpopup_item_prepend(Evas_Object *obj, const char *iconpath, const char *caption, void *data); + +void ivug_listpopup_item_clear(Evas_Object *obj); + + /* Eina list includes (Ivug_ListPopup_Item *) - (Ivug_ListPopup_Item *) - (Ivug_ListPopup_Item *) .... */ -Eina_List *ivug_listpopup_items_get(Evas_Object *obj); +Eina_List /* Ivug_ListPopup_Item * */ *ivug_listpopup_items_get(Evas_Object *obj); /* Valid only when genlist style popup */ -void ivug_listpopup_button_set(Evas_Object *obj, const char* caption); +void ivug_listpopup_button_set(Evas_Object *obj, const char* caption1, ...); void ivug_listpopup_title_set(Evas_Object *obj, const char* title); void *ivug_listpopup_item_get_data(Ivug_ListPopup_Item *item); void ivug_listpopup_item_disabled_set(Ivug_ListPopup_Item *item); void ivug_listpopup_item_enabled_set(Ivug_ListPopup_Item *item); +void ivug_listpopup_item_selected_set(Ivug_ListPopup_Item *item); + const char *ivug_listpopup_item_get_text(Ivug_ListPopup_Item *item); -Elm_Object_Item *ivug_listpopup_item_get_item(Ivug_ListPopup_Item *item); + + +Ivug_ListPopup_Item *ivug_listpopup_item_find_by_data(Evas_Object *obj, void *data); + +void ivug_listpopup_max_showitem_count(Evas_Object *obj, unsigned int cnt); + + /* Show Time! @@ -61,6 +85,13 @@ Elm_Object_Item *ivug_listpopup_item_get_item(Ivug_ListPopup_Item *item); bool ivug_listpopup_popup_show(Evas_Object *obj); bool ivug_listpopup_context_show(Evas_Object *obj, Evas_Object *hover, int x, int y); +// Valid only context popup +void ivug_listpopup_context_get_geometry(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h); + +bool ivug_listpopup_context_set_rotate_enable(Evas_Object *obj, bool enable); +bool ivug_listpopup_context_get_rotate_enable(Evas_Object *obj); + +bool ivug_listpopup_context_move(Evas_Object *obj, int x, int y); #ifdef __cplusplus } diff --git a/widget/include/ivug-scissorbox.h b/widget/include/ivug-scissorbox.h deleted file mode 100755 index a73f1b2..0000000 --- a/widget/include/ivug-scissorbox.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 __IVUG_SCISSORBOX_H__ -#define __IVUG_SCISSORBOX_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef enum { - SCISSOR_BOX_TYPE_1, //. Image view - SCISSOR_BOX_TYPE_2, // Image edit -} eScissorBoxType; - - -Evas_Object *ivug_scissorbox_add(Evas_Object *parent); - -void ivug_scissorbox_type_set(Evas_Object *obj, eScissorBoxType type); - -void ivug_scissorbox_attach(Evas_Object *obj, Evas_Object *pObj); - -void ivug_scissorbox_region_set(Evas_Object *obj, int x, int y, int w, int h); -void ivug_scissorbox_region_get(Evas_Object *obj, int *x, int *y, int *w, int *h); - - -void ivug_scissorbox_boundary_set(Evas_Object *obj, int x, int y, int w, int h); - - -/*DEFAULT_RATIO_FIX = EINA_TRUE */ -void ivug_scissorbox_ratio_fix(Evas_Object *obj, Eina_Bool bFix); - -/* Default value is bOpaque = true */ -void ivug_scissorbox_set_opaque(Evas_Object *obj, Eina_Bool bOpaque); - -#ifdef __cplusplus -} -#endif - -#endif /* __IVUG_SCISSORBOX_H__*/ - diff --git a/widget/include/ivug-video.h b/widget/include/ivug-video.h new file mode 100755 index 0000000..b20c75b --- /dev/null +++ b/widget/include/ivug-video.h @@ -0,0 +1,59 @@ +/* +* Copyright (c) 2000-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 __IVUG_VIDEO_H__ +#define __IVUG_VIDEO_H__ + +#include +#include "ivug-define.h" + +#ifdef __cplusplus +extern "C" { +#endif + + +/* + "started" when video stream start to play +*/ +Evas_Object *ivug_video_create(Evas_Object *parent); + +Evas_Load_Error ivug_video_file_set(Evas_Object *obj, const char *file); +Evas_Load_Error ivug_video_file_unset(Evas_Object *obj); + +Eina_Bool ivug_video_play(Evas_Object *obj); +Eina_Bool ivug_video_stop(Evas_Object *obj); +Eina_Bool ivug_video_pause(Evas_Object *obj); +Eina_Bool ivug_video_resume(Evas_Object *obj); + +void ivug_video_region_get(const Evas_Object *obj, int *x, int *y, int *w, int *h); + +void ivug_video_hold_set(const Evas_Object *obj, Eina_Bool hold); // If set HOLD, all events including mouse is ignored. + +void ivug_video_zoom_reset(Evas_Object *obj, Evas_Point *pCenter); + +Eina_Bool ivug_video_is_playing(Evas_Object *obj); + + +#ifdef __cplusplus +} +#endif + + + + +#endif // __IVUG_VIDEO_H__ + diff --git a/widget/include/ivug-widget.h b/widget/include/ivug-widget.h new file mode 100755 index 0000000..c6a34da --- /dev/null +++ b/widget/include/ivug-widget.h @@ -0,0 +1,98 @@ +/* +* Copyright (c) 2000-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 __IVUG_WIDGET_H__ +#define __IVUG_WIDGET_H__ + +#include "ivug-language-mgr.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* + Internal use only... use macro DELETE_LOG instead +*/ +void ivug_on_obj_deleted(Evas_Object* obj, const char *msg, const char *func, int line); + +void ivug_on_obj_deleted_cancel(Evas_Object* obj); + +#define DELETE_NOTIFY(obj) \ + ivug_on_obj_deleted(obj, #obj, __func__, __LINE__) + +#define DELETE_NOTIFY_CANCEL(obj) \ + ivug_on_obj_deleted_cancel(obj) + +/* + Create elm_bg with color - r,g,b +*/ +Evas_Object * +ivug_bg_add(Evas_Object* parent, int r, int g, int b); + +Evas_Object * +ivug_layout_add(Evas_Object *win, const char *edjname, const char *groupname); + +Evas_Object * +ivug_layout_add2(Evas_Object *parent, const char *edj, const char *group); + +Evas_Object* +ivug_default_layout_add( Evas_Object *win); + +Evas_Object * +ivug_button_add(Evas_Object *parent, const char *style, language_handle_t hLang, const char *caption, Evas_Object *icon, Evas_Smart_Cb pFunc, const void *data ); + +Evas_Object * +ivug_icon_add(Evas_Object *parent, const char *edjname, const char *groupname); + +Evas_Object * +ivug_toolbar_add(Evas_Object *parent, const char *style); + +Elm_Object_Item * +ivug_toolbar_item_append(Evas_Object *toolbar, const char *text_id, Evas_Smart_Cb callback, void *data); + + +/* + Set indicator mode. + bOverlap = true, app draws below indicator. + if not, app region & indicator region is split + +*/ + +void _ivug_set_indicator_overlap_mode(const char *func, int line, bool bOverlap); + +#define ivug_set_indicator_overlap_mode(bOverlap) _ivug_set_indicator_overlap_mode(__FUNCTION__, __LINE__, bOverlap) + + + +/* + Set indicator visibility. +*/ + +void _ivug_set_indicator_visibility(const char *func, int line, bool bShow); + +#define ivug_set_indicator_visibility(bShow) _ivug_set_indicator_visibility(__FUNCTION__, __LINE__, bShow) + + + + +#ifdef __cplusplus +} +#endif + + +#endif // __IVUG_WIDGET_H__ + diff --git a/widget/res/images/crop/T06_selection.png b/widget/res/images/crop/T06_selection.png deleted file mode 100644 index 4928985..0000000 Binary files a/widget/res/images/crop/T06_selection.png and /dev/null differ diff --git a/widget/res/images/crop/T06_selection_Delete.png b/widget/res/images/crop/T06_selection_Delete.png deleted file mode 100644 index 22e9b74..0000000 Binary files a/widget/res/images/crop/T06_selection_Delete.png and /dev/null differ diff --git a/widget/res/images/crop/T06_selection_Resizing_V.png b/widget/res/images/crop/T06_selection_Resizing_V.png deleted file mode 100644 index 967937b..0000000 Binary files a/widget/res/images/crop/T06_selection_Resizing_V.png and /dev/null differ diff --git a/widget/res/images/crop/T06_selection_Resizing_h.png b/widget/res/images/crop/T06_selection_Resizing_h.png deleted file mode 100644 index 74aefe4..0000000 Binary files a/widget/res/images/crop/T06_selection_Resizing_h.png and /dev/null differ diff --git a/widget/res/images/crop/T06_selection_Rotate.png b/widget/res/images/crop/T06_selection_Rotate.png deleted file mode 100644 index 1709767..0000000 Binary files a/widget/res/images/crop/T06_selection_Rotate.png and /dev/null differ diff --git a/widget/res/images/scissorbox/T01_CallerID_line_W.png b/widget/res/images/scissorbox/T01_CallerID_line_W.png deleted file mode 100644 index f436338..0000000 Binary files a/widget/res/images/scissorbox/T01_CallerID_line_W.png and /dev/null differ diff --git a/widget/res/images/scissorbox/T01_CallerID_line_W_press.png b/widget/res/images/scissorbox/T01_CallerID_line_W_press.png deleted file mode 100644 index 2db8179..0000000 Binary files a/widget/res/images/scissorbox/T01_CallerID_line_W_press.png and /dev/null differ diff --git a/widget/res/images/scissorbox/T01_CallerID_line_h.png b/widget/res/images/scissorbox/T01_CallerID_line_h.png deleted file mode 100644 index 587a6da..0000000 Binary files a/widget/res/images/scissorbox/T01_CallerID_line_h.png and /dev/null differ diff --git a/widget/res/images/scissorbox/T01_CallerID_line_h_press.png b/widget/res/images/scissorbox/T01_CallerID_line_h_press.png deleted file mode 100644 index 2bd8f82..0000000 Binary files a/widget/res/images/scissorbox/T01_CallerID_line_h_press.png and /dev/null differ diff --git a/widget/res/images/scissorbox/T01_CallerID_normal.png b/widget/res/images/scissorbox/T01_CallerID_normal.png deleted file mode 100644 index 1787cde..0000000 Binary files a/widget/res/images/scissorbox/T01_CallerID_normal.png and /dev/null differ diff --git a/widget/res/images/scissorbox/T01_CallerID_press.png b/widget/res/images/scissorbox/T01_CallerID_press.png deleted file mode 100644 index fc64933..0000000 Binary files a/widget/res/images/scissorbox/T01_CallerID_press.png and /dev/null differ diff --git a/widget/res/images/scroller/transparent_bg.png b/widget/res/images/scroller/transparent_bg.png deleted file mode 100644 index 7f2c600..0000000 Binary files a/widget/res/images/scroller/transparent_bg.png and /dev/null differ diff --git a/widget/res/layout/ivug-scroller.edc b/widget/res/layout/ivug-scroller.edc index 41d77ba..a7cce5f 100755 --- a/widget/res/layout/ivug-scroller.edc +++ b/widget/res/layout/ivug-scroller.edc @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 DECO_WIDTH (10) @@ -255,6 +256,7 @@ collections { rel1 { relative: 0.0 1.0; to_y: "clip_t"; } rel2 { relative: 0.0 0.0; to_y: "clip_b";} align: 0.0 0.5; + fixed: 1 1; min: DECO_WIDTH 0; color: 255 255 255 0; } @@ -276,6 +278,7 @@ collections { rel1 { relative: 1.0 1.0; to_y: "clip_t"; } rel2 { relative: 1.0 0.0; to_y: "clip_b";} align: 1.0 0.5; + fixed: 1 1; min: DECO_WIDTH 0; color: 255 255 255 0; } diff --git a/widget/res/layout/ivug-widget-button.edc b/widget/res/layout/ivug-widget-button.edc new file mode 100755 index 0000000..52befac --- /dev/null +++ b/widget/res/layout/ivug-widget-button.edc @@ -0,0 +1,38 @@ +/* +* Copyright (c) 2000-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. +* +*/ + +collections { + group { + name: "iv/button"; + parts { + + part { name: "event"; + type: RECT; + scale: 1; + mouse_events: 1; + description { + state: "default" 0.0; + visible: 1; + color: 0 0 0 0; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0;} + } + } + } + } +} + diff --git a/widget/res/layout/ivug-widget-icons.edc b/widget/res/layout/ivug-widget-icons.edc new file mode 100755 index 0000000..9380d8f --- /dev/null +++ b/widget/res/layout/ivug-widget-icons.edc @@ -0,0 +1,48 @@ +/* +* Copyright (c) 2000-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 DEFINE_ICON(_name, _fname) \ +images { image: _fname COMP; } \ +collections { group { name: _name; \ + parts { part { name: "icon"; \ + type: IMAGE; mouse_events: 1; \ + scale: 1; \ + description { state: "default" 0.0; \ + align: 0.5 0.5; \ + fixed: 1 1; \ + aspect: 1.0 1.0; \ + aspect_preference: VERTICAL; \ + image.normal: _fname; \ +}}}}} + +#define DEFINE_ICON_SIZE(_name, _fname, w, h) \ +images { image: _fname COMP; } \ +collections { group { name: _name; \ + parts { part { name: "icon"; \ + type: IMAGE; mouse_events: 1; \ + scale: 1; \ + description { state: "default" 0.0; \ + align: 0.5 0.5; \ + min: (w) (h); \ + max: (w) (h); \ + fixed: 1 1; \ + aspect: 1.0 1.0; \ + image.normal: _fname; \ +}}}}} + + + diff --git a/widget/src/common/BufferCanvas.h b/widget/src/common/BufferCanvas.h index cc4c72f..4a271eb 100755 --- a/widget/src/common/BufferCanvas.h +++ b/widget/src/common/BufferCanvas.h @@ -1,18 +1,19 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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. +* +*/ #pragma once @@ -29,6 +30,8 @@ public: MSG_ASSERT(m_ee != NULL); m_evas = ecore_evas_get(m_ee); + + evas_image_cache_set(m_evas, 0); }; Evas *GetCanvas() const { diff --git a/widget/src/common/Primitives.cpp b/widget/src/common/Primitives.cpp deleted file mode 100755 index fce93a3..0000000 --- a/widget/src/common/Primitives.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "Primitives.h" -#include - - -using namespace std; - - -const CRect CRect::Zero = CRect(0,0,0,0); -const CSize CSize::Zero = CSize(0,0); -const CPoint CPoint::Zero = CPoint(0,0); - - - -CRect UnionRect(const CRect &rect1, const CRect &rect2) -{ - return CRect( - CPoint( min(rect1.Left(), rect2.Left()), - min(rect1.Top(), rect2.Top()) ), - - CPoint( max(rect1.Right(), rect2.Right()), - max(rect1.Bottom(), rect2.Bottom()) ) - ); -} - - -CRect IntersectRect(const CRect &rect1, const CRect &rect2) -{ - CRect rect( - CPoint( max(rect1.Left(), rect2.Left()), - max(rect1.Top(), rect2.Top()) ), - - CPoint( min(rect1.Right(), rect2.Right()), - min(rect1.Bottom(), rect2.Bottom()) ) - ); - - if ( rect.IsValid() == false) - { - rect = CRect::Zero; - } - - return rect; -} - - - diff --git a/widget/src/common/iv-button.cpp b/widget/src/common/iv-button.cpp new file mode 100755 index 0000000..03d34de --- /dev/null +++ b/widget/src/common/iv-button.cpp @@ -0,0 +1,177 @@ +/* +* Copyright (c) 2000-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 "ivug-define.h" +#include "ivug-debug.h" + +#include "iv-button.h" + +#define EDJ_PATH PREFIX"/res/edje/"PACKAGE +#define IMG_PATH PREFIX"/res/images/"PACKAGE + +namespace iv { + + +template<> +const Evas_Smart_Cb_Description CEvasSmartObject::_signals[] = { + {"clicked", ""}, + {NULL, NULL} +}; + +Evas_Object *CButton::CreateObject(Evas_Object *parent) +{ + Evas_Object *sObj = CEvasSmartObject::CreateObject(parent); +// Register signal + evas_object_smart_callbacks_descriptions_set(sObj, _signals); + + m_edje = edje_object_add(evas_object_evas_get(parent)); + + if (!edje_object_file_set(m_edje, EDJ_PATH"/ivug-widget-button.edj", "iv/button") ) + { + Edje_Load_Error err = edje_object_load_error_get(m_edje); + const char *errmsg = edje_load_error_str(err); + MSG_ERROR("could not load 'group_name' from theme.edj: %s", errmsg); + evas_object_del(m_edje); + return NULL; + } + + evas_object_smart_member_add(m_edje, sObj); + + m_state = STATE_DEFAULT; + return sObj; +}; + + +void CButton::UpdateButtons(eButtonSate newstate) +{ + if (m_state == newstate ) + { + return; + } + + if (m_img[m_state] != NULL) + { + evas_object_hide(m_img[m_state]); + } + + Evas_Object *obj; + + obj = m_img[newstate]; + + m_state = newstate; + + if (obj == NULL) + { + MSG_WARN("No icon for state(%d)", newstate); + return; + } + + CRect rect = GetGeometry(); + + MSG_HIGH("Edje XYWH(%d,%d,%d,%d)", rect.Left(), rect.Top(), rect.Width(), rect.Height()); + + evas_object_move(obj, rect.Left(), rect.Top()); + evas_object_resize(obj, rect.Width(), rect.Height()); + + evas_object_raise(obj); + evas_object_show(obj); +} + +void CButton::Draw() +{ + CRect rect = GetGeometry(); + + MSG_LOW("Draw XYWH(%d,%d,%d,%d)", rect.Left(), rect.Right(), rect.Width(), rect.Height()); +} + +void CButton::OnMouseDown() +{ + MSG_MED("OnMouseDown"); + + UpdateButtons(STATE_PRESS); +} + +void CButton::OnMouseUp() +{ + MSG_MED("OnMouseUp"); + + UpdateButtons(STATE_DEFAULT); +} + +void CButton::OnMouseClick() +{ + MSG_MED("OnMouseClick"); + + evas_object_smart_callback_call(GetObject(), "clicked", NULL); +} + +void CButton::SetImage(Evas_Object *normal, Evas_Object *press, Evas_Object *dim) +{ +// Remove Old icons + if (m_img[STATE_DEFAULT] != NULL) + { + evas_object_del(m_img[STATE_DEFAULT]); + } + + if (m_img[STATE_PRESS] != NULL) + { + evas_object_del(m_img[STATE_PRESS]); + } + + if (m_img[STATE_DIM] != NULL) + { + evas_object_del(m_img[STATE_DIM]); + } + + m_img[STATE_DEFAULT] = normal; + m_img[STATE_PRESS] = press; + m_img[STATE_DIM] = dim; + + MSG_HIGH("SetImage"); + + if (m_img[STATE_DEFAULT] != NULL) + { + evas_object_pass_events_set(m_img[STATE_DEFAULT], EINA_TRUE); + evas_object_smart_member_add(m_img[STATE_DEFAULT], GetObject() ); + } + + if (m_img[STATE_PRESS] != NULL) + { + evas_object_pass_events_set(m_img[STATE_PRESS], EINA_TRUE); + evas_object_smart_member_add(m_img[STATE_PRESS], GetObject() ); + } + + if (m_img[STATE_DIM] != NULL) + { + evas_object_pass_events_set(m_img[STATE_PRESS], EINA_TRUE); + evas_object_smart_member_add(m_img[STATE_DIM], GetObject() ); + } + + edje_object_signal_callback_add (m_edje, "mouse,up,*", "event", _on_edje_up_cb, this); + edje_object_signal_callback_add (m_edje, "mouse,down,*", "event", _on_edje_down_cb, this); + edje_object_signal_callback_add (m_edje, "mouse,clicked,*", "event", _on_edje_click_cb, this); + + UpdateButtons(STATE_DEFAULT); + +}; + + +}; diff --git a/widget/src/image/ivug-image.cpp b/widget/src/image/ivug-image.cpp deleted file mode 100755 index 4ef151d..0000000 --- a/widget/src/image/ivug-image.cpp +++ /dev/null @@ -1,500 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ivug-define.h" - -#include -#include - -#include "ivug-debug.h" -#include "ivug-image.h" -#include "errno.h" - -#include "debug.h" - - -static Evas_Object *_crop_image(const char *file, int /* image coord */crop_x, int crop_y, int crop_w, int crop_h, int final_w, int final_h) -{ - MSG_HIGH("Crop image XYWH(%d,%d,%d,%d) Dimension(%d,%d)", crop_x, crop_y, crop_w, crop_h, final_w, final_h); - -// 1. Load source image into buffer canvas. - Ecore_Evas *m_ee; - m_ee = ecore_evas_buffer_new(final_w, final_h); - MSG_ASSERT(m_ee != NULL); - - Evas *evas = ecore_evas_get(m_ee); - - Evas_Object *bg; - - bg = evas_object_rectangle_add(evas); - evas_object_color_set(bg, 0, 0, 0, 255); /* black bg */ - evas_object_move(bg, 0, 0); /* at origin */ - evas_object_resize(bg, final_w, final_h); /* covers full canvas */ - evas_object_show(bg); - - Evas_Object *img; - - img = evas_object_image_filled_add(evas); - - evas_object_image_file_set(img, file, NULL); - - Evas_Load_Error err = evas_object_image_load_error_get(img); - if (err != EVAS_LOAD_ERROR_NONE) - { - MSG_ERROR("could not load image '%s'. error string is \"%s\"", file, evas_load_error_str(err)); - return NULL; - } - - Eina_Bool bRegion = evas_object_image_region_support_get(img); - - evas_object_image_file_set(img, NULL, NULL); - - if ( bRegion == EINA_TRUE) - { - MSG_HIGH("Region supported"); - evas_object_image_load_orientation_set(img, EINA_TRUE); - evas_object_image_load_region_set(img, crop_x, crop_y, crop_w, crop_h); - - evas_object_image_file_set(img, file, NULL); - - Evas_Load_Error err = evas_object_image_load_error_get(img); - if (err != EVAS_LOAD_ERROR_NONE) - { - MSG_ERROR("could not load image '%s'. error string is \"%s\"", file, evas_load_error_str(err)); - return NULL; - } - } - else - { - MSG_HIGH("Region not supported."); - -// Load full image - Evas_Object *src; - - src = evas_object_image_add(evas); - - evas_object_image_file_set(src, file, NULL); - - Evas_Load_Error err = evas_object_image_load_error_get(src); - if (err != EVAS_LOAD_ERROR_NONE) - { - MSG_ERROR("could not load image '%s'. error string is \"%s\"", file, evas_load_error_str(err)); - return NULL; - } - - int w,h; - evas_object_image_size_get(src, &w, &h); - - MSG_HIGH("Image WH(%d,%d)", w, h); - -// Setup cropped buffer - evas_object_image_size_set(img, crop_w, crop_h); - evas_object_image_fill_set(img, 0, 0, crop_w, crop_h); - -// Copy image from src to img. - int *Src = (int *)evas_object_image_data_get(src, EINA_FALSE); // ImgBuffer's size is same as original image - MSG_ASSERT(Src != NULL); - - int *Dest = (int *)evas_object_image_data_get(img, EINA_TRUE); - MSG_ASSERT(Dest != NULL); - - int *Tmp = Dest; - - int ImgW = w; - int *pRow = Src + (crop_y * ImgW /* stride */ + crop_x) ; // Src begin buffer - - int nRow = crop_h; - int nCol = crop_w; - - MSG_HIGH("Crop(%d,%d,%d,%d) Stride=%d nRow=%d nCol=%d", crop_x, crop_y, crop_w, crop_h, ImgW, nRow, nCol); - - while(nRow--) - { - while(nCol--) - { - // ELM_MSG_HIGH("nRow=%d, nCol=%d, Src=0x%08x Dst=0x%08x", nRow, nCol, pRow , Dest); - *Tmp++ = *pRow++; - } - - nCol = crop_w; - pRow = pRow + (ImgW - crop_w /* stride */ ); - } - evas_object_image_data_set(src, (void *)Src); // Unref - evas_object_del(src); - - evas_object_image_data_set(img, (void *)Dest); - } - - int cw, ch; - - cw = crop_w; - ch = crop_h; - - int ph, pw; - int px, py; - -// Auto fit. why???????. Used when set wallpaper(image size is smaller than LCD) - ph = (ch * final_w) / cw; - - if (ph > final_h) - { - pw = (cw * final_h) / ch; - ph = final_h; - } - else - { - pw = final_w; - } - -// Calculate XY - px = (final_w - pw ) / 2; - py = (final_h - ph ) / 2; - - MSG_HIGH("CenterPut XYWH(%d,%d,%d,%d) in Buf(%d,%d)", px, py, pw, ph, final_w, final_h); - - evas_object_move(img, px, py); - evas_object_resize(img, pw, ph); // set object size which you want to scale - - evas_object_show(img); - -// evas_object_image_save(img, "/opt/ug/data/ug-image-viewer-efl/tt.jpg", NULL, NULL); - -// Copy Buffer canvas data to image object in current evas - const void *data = ecore_evas_buffer_pixels_get(m_ee); - MSG_ASSERT(data != NULL); - - Evas_Object *result; - result = evas_object_image_filled_add(evas); - - evas_object_image_size_set(result, final_w, final_h); - evas_object_image_data_set(result, const_cast(data)); - evas_object_image_data_update_add(result, 0, 0, final_w, final_h); - - MSG_HIGH("Cropped image is created. obj=0x%08x", result); - return result; -}; - - - -// APIs -EAPI Evas_Object *ivug_image_create(Evas_Object *parent) -{ - Evas_Object *obj; - - obj = elm_photocam_add(parent); - - elm_photocam_paused_set(obj, EINA_TRUE); - elm_photocam_zoom_mode_set(obj, ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT); - - elm_scroller_policy_set(obj, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); - - MSG_HIGH("Create photocam object. obj=0x%08x", obj); - return obj; -} - -EAPI Evas_Load_Error ivug_image_file_set(Evas_Object *obj, const char *file, const char *key) -{ - Evas_Load_Error err = EVAS_LOAD_ERROR_NONE; - - err = elm_photocam_file_set(obj, file); - - MSG_HIGH("photocam file set. %s error=%d", file, err); - - if ( err != EVAS_LOAD_ERROR_NONE) - { - MSG_ERROR("Photocam file set error! err=%d", err); - } - - return err; -} - -EAPI Evas_Load_Error ivug_image_mem_set(Evas_Object *obj, const unsigned char *buffer, unsigned int size, const char *key) -{ - MSG_ERROR("%s is not supported", __func__); - - return EVAS_LOAD_ERROR_GENERIC; -} - - -EAPI Evas_Load_Error ivug_image_unset(Evas_Object *obj) -{ - Evas_Load_Error err = EVAS_LOAD_ERROR_NONE; - - MSG_HIGH("photocam file unset. %s", elm_photocam_file_get(obj)); - - err = elm_photocam_file_set(obj, NULL); - return err; -} - -EAPI void ivug_image_zoom_set(Evas_Object *obj, double zoom, Evas_Point *pCenter) -{ - //elm_photocam_paused_set(obj, EINA_FALSE); //stop photocam animation - elm_photocam_zoom_mode_set(obj, ELM_PHOTOCAM_ZOOM_MODE_MANUAL); - elm_photocam_zoom_set(obj, zoom); -} - -EAPI double ivug_image_zoom_get(const Evas_Object *obj) -{ - - return elm_photocam_zoom_get(obj); -} - -EAPI void ivug_image_image_size_get(const Evas_Object *obj, int *w, int *h) -{ -// Return original image size - elm_photocam_image_size_get(obj, w, h); - - MSG_HIGH("Image size XYWH(%d,%d)", *w, *h); - -} - -EAPI void ivug_image_region_get(const Evas_Object *obj, int *x, int *y, int *w, int *h) -{ - Evas_Object *image; - - image = elm_photocam_internal_image_get(obj); - - if ( image == NULL ) - { - if(x) *x = 0; - if(y) *y = 0; - if(w) *w = 0; - if(h) *h = 0; - - return; - } - - evas_object_geometry_get(image, x ,y, w, h); -// elm_photocam_image_region_get(obj, x ,y, w, h); - - MSG_HIGH("Region size XYWH(%d,%d,%d,%d)", *x, *y, *w, *h); -} - -EAPI void ivug_image_decoded_size_get(const Evas_Object *obj, int *w, int *h) -{ - Evas_Object *image = NULL; - - image = elm_photocam_internal_image_get(obj); - - if ( image == NULL ) - { - if(w) *w = 0; - if(h) *h = 0; - - return; - } - - int iw, ih; - - elm_photocam_image_size_get(obj, &iw, &ih); - - int scale = evas_object_image_load_scale_down_get(obj); - - if(w) *w = iw / scale; - if(h) *h = ih / scale; -}; - - -EAPI unsigned char *ivug_image_decoded_buffer_get(const Evas_Object *obj) -{ - Evas_Object *image = NULL; - - image = elm_photocam_internal_image_get(obj); - - if ( image == NULL ) - { - return NULL; - } - - return (unsigned char *)evas_object_image_data_get(image, EINA_FALSE /* Get for reading Only*/ ); -} - -EAPI void ivug_image_hold_set(const Evas_Object *obj, Eina_Bool hold) -{ - MSG_ERROR("%s is not supported", __func__); -} - -EAPI void ivug_image_zoom_reset(Evas_Object *obj, Evas_Point *pCenter) -{ - Eina_Bool bPaused = elm_photocam_paused_get(obj); - - elm_photocam_paused_set(obj, EINA_TRUE); - elm_photocam_zoom_mode_set(obj, ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT); - elm_photocam_paused_set(obj, bPaused); - -} - -EAPI Evas_Object *ivug_image_region_image_get(Evas_Object *obj, int /* LCD coord */ x, int y, int w, int h ) -{ - MSG_HIGH("Region (%d,%d,%d,%d)", x, y, w, h); - - Evas_Object *image; - - image = elm_photocam_internal_image_get(obj); - - int ix, iy, iw, ih; - - evas_object_geometry_get(image, &ix, &iy, &iw, &ih); - - MSG_HIGH("Image geometry get : (%d,%d,%d,%d)", ix, iy, iw, ih); - - int ow, oh; - evas_object_image_size_get(image, &ow, &oh); - - ow = ow * evas_object_image_load_scale_down_get(image); - oh = oh * evas_object_image_load_scale_down_get(image); - - MSG_HIGH("Original image size(%d,%d)", ow, oh); - - int cx, cy, cw, ch; - -// Get intersect rect between xywh and ixywh - cx = ix; - if ( x > ix ) cx = x; - - cy = iy; - if ( y > iy ) cy = y; - - cw = w; - if ( x + w > ix + iw ) cw = iw; - - ch = h; - if ( y + h > iy + ih ) ch = ih; - - MSG_HIGH("Cropped XWYH(%d,%d,%d,%d)", cx, cy, cw, ch); - -// Get rect on image. - int gx, gy, gw, gh; - - gx = ( cx - ix ) * (double)ow/iw; - gy = ( cy - iy ) * (double)ow/iw; - - gw = cw * (double)ow/iw; - gh = ch * (double)ow/iw; - - MSG_HIGH("On image rect : (%d,%d,%d,%d) Scale=%d", gx, gy, gw, gh, evas_object_image_load_scale_down_get(image)); - - const char *file = NULL; - const char *key = NULL; - - evas_object_image_file_get(image, &file, &key); - - if ( file == NULL ) - { - MSG_ERROR("File is not loaded"); - return NULL; - } - - MSG_HIGH("File = %s %s", file, key ); - - MSG_HIGH("Image size get : (%d,%d)", ow, oh); - - Evas_Object *result = _crop_image(file, gx, gy, gw, gh, w, h); - - return result; -} - - -EAPI Evas_Object * -ivug_image_internal_image_get(Evas_Object *obj) -{ - return elm_photocam_internal_image_get(obj); -} - - -EAPI void ivug_image_animated_set(const Evas_Object *obj, Eina_Bool bAnimation) -{ - MSG_ERROR("%s is not supported", __func__); -} - -EAPI void ivug_image_rotate_set(Evas_Object *obj, int degree) -{ - MSG_ERROR("%s is not supported", __func__); -} - -EAPI int ivug_image_rotate_get(Evas_Object *obj) -{ - MSG_ERROR("%s is not supported", __func__); - - return 0; -} - -EAPI void ivug_image_coordinate_lcd_to_image(Evas_Object *photocam, int lcd_x, int lcd_y, int *img_x, int *img_y) -{ - MSG_ASSERT(photocam != NULL); - - int image_w, image_h; - - ivug_image_image_size_get(photocam, &image_w, &image_h); // Get original image size. - - MSG_UTIL_HIGH("size w=%d, h=%d", image_w, image_h); - - ivug_ret_if(image_w <= 0 || image_h <= 0); - - int gx, gy, gw, gh; - - ivug_image_region_get(photocam, &gx, &gy, &gw, &gh); - - MSG_UTIL_HIGH("region x=%d, y=%d, w=%d, h=%d", gx, gy, gw, gh); - - int image_x, image_y; - - image_x = lcd_x - gx; - image_y = lcd_y - gy; - - image_x = image_x*image_w/gw; - image_y = image_y*image_h/gh; - - MSG_UTIL_HIGH("changed x=%d, y=%d", image_x, image_y); - - *img_x = image_x; - *img_y = image_y; -} - -EAPI void ivug_image_coordinate_image_to_lcd(Evas_Object *photocam, int img_x, int img_y, int *lcd_x, int *lcd_y) -{ - MSG_ASSERT(photocam != NULL); - - int image_w, image_h; - - ivug_ret_if(photocam == NULL); - - ivug_image_image_size_get(photocam, &image_w, &image_h); // Get original image size. - - MSG_UTIL_HIGH("size w=%d, h=%d", image_w, image_h); - - ivug_ret_if(image_w <= 0 || image_h <= 0); - - int gx, gy, gw, gh; - - ivug_image_region_get(photocam, &gx, &gy, &gw, &gh); - - MSG_UTIL_HIGH("region x=%d, y=%d, w=%d, h=%d", gx, gy, gw, gh); - - int scr_x, scr_y; - - scr_x = img_x*gw/image_w; - scr_y = img_y*gh/image_h; - - scr_x = scr_x+gx; - scr_y = scr_y+gy; - - MSG_UTIL_HIGH("changed x=%d, y=%d", scr_x, scr_y); - - *lcd_x = scr_x; - *lcd_y = scr_y; -} - diff --git a/widget/src/scissorbox/ScissorBox.cpp b/widget/src/scissorbox/ScissorBox.cpp deleted file mode 100755 index 755ac76..0000000 --- a/widget/src/scissorbox/ScissorBox.cpp +++ /dev/null @@ -1,1734 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ScissorBox.h" - -#undef LOG_LVL -#define LOG_LVL DBG_MSG_LVL_HIGH - -#undef LOG_CAT -#define LOG_CAT "IV-SCISSOR" - -#define IMAGE_PATH PREFIX"/res/images/"PACKAGE - -#define CROP_POT_PATH IMAGE_PATH"/scissorbox/T01_CallerID_normal.png" -#define CROP_POT_HOLD_PATH IMAGE_PATH"/scissorbox/T01_CallerID_hold.png" -#define CROP_POT_PRESS_PATH IMAGE_PATH"/scissorbox/T01_CallerID_press.png" - -#define CROP_LINEW_PATH IMAGE_PATH"/scissorbox/T01_CallerID_line_W.png" -#define CROP_LINEH_PATH IMAGE_PATH"/scissorbox/T01_CallerID_line_h.png" -#define CROP_LINEW_PRESS_PATH IMAGE_PATH"/scissorbox/T01_CallerID_line_W_press.png" -#define CROP_LINEH_PRESS_PATH IMAGE_PATH"/scissorbox/T01_CallerID_line_h_press.png" - -#define DEFAULT_POT_NUM (4) -#define DEFAULT_DIM_BG_ALPHA (102) - -#undef ALLOW_RECT_TRACE - -class CSelectBox { -public: - enum eState { - NORMAL, - HOLD, - PRESS, - }; - - enum eGripType { - GRIP_LEFT = (1 << 0), - GRIP_RIGHT = (1 << 1), - GRIP_TOP = (1 << 2), - GRIP_BOTTOM = (1 << 3), - }; - -public: - CSelectBox() : m_state(NORMAL), m_ratio(0.0f), m_bPreserve(false), m_rect(), m_bound(0,0,720,1280) - { - }; - - virtual ~CSelectBox() {}; - - virtual void Create(Evas_Object *obj) {}; - - virtual void Move(int x, int y) { - m_rect.Left(x); - m_rect.Top(y); - }; - - virtual void Resize(int w, int h){ - MSG_HIGH("Box resized %dx%d ratio=%f", w, h, m_ratio); - - m_rect.Width(w); - - if ( m_bPreserve == true ) - { - m_rect.Height(w * m_ratio); - } - else - { - m_rect.Height(h); - } - }; - - virtual void SetState(eState state) { - m_state = state; - }; - - virtual eState GetState() const { - return m_state; - }; - - virtual void SetRatio(double ratio) { - m_bPreserve = true; - - m_ratio = ratio; // h / w - }; - - virtual double GetRatio() const { - if ( m_bPreserve == true ) - return m_ratio; - - return 0.0f; - }; - - virtual void SetBound(const CRect &rect) - { - m_bound = rect; - } - - virtual const CRect &GetBound() const { return m_bound; }; - virtual const CRect &GetRegion() const { return m_rect; }; - - virtual void Draw() = 0; -private: - eState m_state; - double m_ratio; - bool m_bPreserve; - -protected: - CRect m_rect; - CRect m_bound; -}; - - -class CBox : public CSelectBox { //caller id -public: - const int SHADOW_DEPTH; - const int EVENT_GRIP_SIZE; - const CSize POT_SIZE; - - static void _line_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info) {}; - static void _line_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info) {}; - - static void _pot_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info) { - CBox *pBox = (CBox *)data; - -// Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down *) event_info; - - pBox->OnGripMouseDown(); - }; - static void _pot_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info) - { - CBox *pBox = (CBox *)data; - - Evas_Event_Mouse_Move *ev = (Evas_Event_Mouse_Move *) event_info; - - eGripType grip = static_cast (reinterpret_cast (evas_object_data_get(obj, "grip_type"))); - - if ( ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD ) - { - MSG_HIGH("On Hold"); - } - - if ( ev->event_flags & EVAS_EVENT_FLAG_ON_SCROLL ) - { - MSG_HIGH("On Scroller"); - } - - pBox->OnGripMouseMove(grip, ev->prev.output.x, ev->prev.output.y, ev->cur.output.x, ev->cur.output.y); - }; - - static void _pot_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info) { - CBox *pBox = (CBox *)data; - -// Evas_Event_Mouse_Up *ev = (Evas_Event_Mouse_Up *) event_info; - - pBox->OnGripMouseUp(); - }; - - - static void _selector_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info) { - CBox *pBox = (CBox *)data; - - Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down *) event_info; - - pBox->OnMouseDown(ev->output.x, ev->output.y); - - }; - - static void _selector_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info) { - CBox *pBox = (CBox *)data; - - Evas_Event_Mouse_Move *ev = (Evas_Event_Mouse_Move *) event_info; - - MSG_LOW("(%d,%d) --> (%d,%d)", ev->cur.output.x, ev->cur.output.y, ev->prev.output.x, ev->prev.output.y); - pBox->OnMouseMove(ev->prev.output.x, ev->prev.output.y, ev->cur.output.x, ev->cur.output.y); - }; - - static void _selector_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info) { - CBox *pBox = (CBox *)data; - - Evas_Event_Mouse_Up *ev = (Evas_Event_Mouse_Up *) event_info; - - pBox->OnMouseUp(ev->output.x, ev->output.y); - }; - -public: - CBox() : CSelectBox(), SHADOW_DEPTH(4), EVENT_GRIP_SIZE(60), POT_SIZE(18,18), m_bMouseDown(false), m_bGripMouseDown(false) { }; - - virtual ~CBox() { - MSG_HIGH("Remove CBox"); - - for (int i = 0; i < DEFAULT_POT_NUM; i++) - { - evas_object_del(selector_line[i]); - evas_object_del(selector_pot[i]); - evas_object_del(event_pot[i]); - } - - evas_object_del(center); - }; - - void OnMouseDown(int x, int y) - { - MSG_HIGH("Mouse down XY(%d,%d)", x, y); - - SetState(PRESS); - m_bMouseDown = true; - } - - void OnMouseMove(int px, int py, int cx, int cy) - { - // Inform changes to parent. - if ( m_bMouseDown == false ) return; - - int dx, dy; - - dx = cx - px; - dy = cy - py; - - MSG_MED("Mouse move XY(%d,%d) -> XY(%d,%d)", px, py, cx, cy); - - if ( dx == 0 && dy == 0) { - return; - }; - - if ( m_rect.Left() + dx < m_bound.Left() ) - { - MSG_HIGH("Left bound"); - dx = m_bound.Left() - m_rect.Left(); - } - - if ( m_rect.Right() + dx > m_bound.Right() ) - { - MSG_HIGH("Right bound"); - dx = m_bound.Right() - m_rect.Right(); - } - - if ( m_rect.Top() + dy < m_bound.Top() ) - { - MSG_HIGH("Top bound"); - dy = m_bound.Top() - m_rect.Top(); - } - - if ( m_rect.Bottom() + dy > m_bound.Bottom() ) - { - MSG_HIGH("Bottom bound"); - dy = m_bound.Bottom() - m_rect.Bottom(); - } - - // Move rect - m_rect.MoveBy(dx, dy); - - evas_object_smart_changed(evas_object_smart_parent_get(center)); - - } - - void OnMouseUp(int x, int y) - { - MSG_HIGH("Mouse up XY(%d,%d)", x, y); - SetState(NORMAL); - - m_bMouseDown = false; -// evas_object_smart_callback_call(sd->obj, SIG_CHANGED, NULL); - } - - void OnGripMouseUp() - { - m_bGripMouseDown = false; - SetState(NORMAL); - } - - void OnGripMouseDown() - { - m_bGripMouseDown = true; - SetState(HOLD); - } - - void OnGripMouseMove(eGripType grip, int px, int py, int cx, int cy) - { - if ( m_bGripMouseDown == false ) return; - - int dx = cx - px; - int dy = cy - py; - - if ( dx == 0 && dy == 0) { - return; - }; - - if ( GetRatio() != 0.0f ) - { - _GripMovePreserve(grip, dx, dy); - } - else - { - _GripMove(grip, dx, dy); - } - - MSG_HIGH("New Rect %d,%d,%d,%d", m_rect.Left(), m_rect.Top(), m_rect.Width(), m_rect.Height()); - - evas_object_smart_changed(evas_object_smart_parent_get(center)); - } - - virtual void SetState(eState state) { - CSelectBox::SetState(state); - - _LoadImage(); - }; - -private: - void _GripMove(eGripType grip, int dx, int dy) { - const int min_size = EVENT_GRIP_SIZE; - CRect rect = m_rect; - - int X1 = rect.Left(), Y1 = rect.Top() ,X2 = rect.Right(), Y2 = rect.Bottom(); - - if ( grip & GRIP_LEFT ) - { - X1 = rect.Left() + dx; - - if ( X1 < m_bound.Left() ) - { - MSG_HIGH("Left bound"); - X1 = m_bound.Left(); - } - - if ( rect.Width() - dx < min_size ) - { - X1 = rect.Right() - min_size; - - MSG_HIGH("X1 = %d (%d,%d)", X1, rect.Left(), rect.Right()); - } - } - - if ( grip & GRIP_TOP ) - { - Y1 = rect.Top() + dy; - - if ( Y1 < m_bound.Top() ) - { - MSG_HIGH("Top bound"); - Y1 = m_bound.Top(); - } - - if ( rect.Height() - dy < min_size ) - { - Y1 = rect.Bottom() - min_size; - - MSG_HIGH("Y1 = %d B=%d", Y1, rect.Bottom()); - } - } - - if ( grip & GRIP_RIGHT ) - { - X2 = rect.Right() + dx; - - if ( X2 > m_bound.Right() ) - { - MSG_HIGH("Right bound"); - X2 = m_bound.Right() ; - } - - if ( rect.Width() + dx < min_size ) - { - X2 = rect.Left() + min_size; - } - } - - if ( grip & GRIP_BOTTOM ) - { - Y2 = rect.Bottom() + dy; - - if ( Y2 > m_bound.Bottom() ) - { - MSG_HIGH("Bottom bound"); - Y2 = m_bound.Bottom(); - } - - if ( rect.Height() + dy < min_size ) - { - Y2 = rect.Top() + min_size; - } - } - - m_rect = CRect(X1, Y1, X2 - X1, Y2 - Y1); - - }; - - void _GripMovePreserve(eGripType grip, int dx, int dy) { - const int min_size = EVENT_GRIP_SIZE; - CRect rect = m_rect; - - int X = 0,Y = 0,W = 0,H = 0; - - double ratio = GetRatio(); - - MSG_HIGH("Dx=%d Dy=%d Ratio=%f", dx, dy, ratio); - - enum eDominantDirection - { - Direction_X, - Direction_Y - } ; - - eDominantDirection dir = Direction_X; - int mov_dist; - if(abs(dx) < abs(dy)) - { - dir = Direction_Y; - mov_dist = dy; - } - else - { - mov_dist = dx; - } - - if ( (grip & GRIP_LEFT) && (grip & GRIP_TOP) ) - { - MSG_HIGH("LEFT,TOP"); - - if ( dir == Direction_X ) - { - W = rect.Width() - mov_dist; - H = W * ratio; - - X = m_rect.Right() - W; - Y = m_rect.Bottom() - H; - } - else - { - H = rect.Height() - mov_dist; - W = H / ratio; - - X = m_rect.Right() - W; - Y = m_rect.Bottom() - H; - } - - - } - - if ( (grip & GRIP_RIGHT) && (grip & GRIP_TOP) ) - { - MSG_HIGH("RIGHT,TOP"); - - if ( dir == Direction_X ) - { - W = rect.Width() + mov_dist; - H = W * ratio; - - X = m_rect.Left(); - Y = m_rect.Bottom() - H; - } - else - { - H = rect.Height() - mov_dist; - W = H / ratio; - - X = m_rect.Left(); - Y = m_rect.Bottom() - H; - } - - } - - if ( (grip & GRIP_RIGHT) && (grip & GRIP_BOTTOM) ) - { - MSG_HIGH("RIGHT,BOTTOM"); - if ( dir == Direction_X ) - { - W = rect.Width() + mov_dist; - H = W * ratio; - - X = m_rect.Left(); - Y = m_rect.Top(); - } - else - { - H = rect.Height() + mov_dist; - W = H / ratio; - - X = m_rect.Left(); - Y = m_rect.Top(); - - } - - } - - if ( (grip & GRIP_LEFT) && (grip & GRIP_BOTTOM) ) - { - MSG_HIGH("LEFT,BOTTOM"); - - if ( dir == Direction_X ) - { - W = rect.Width() - mov_dist; - H = W * ratio; - - X = m_rect.Right() - W; - Y = m_rect.Top(); - } - else - { - H = rect.Height() + mov_dist; - W = H / ratio; - - X = m_rect.Right() - W; - Y = m_rect.Top(); - } - - } - - if ( W < min_size || H < min_size) - { - return; - } - - if ( X < m_bound.Left() || Y < m_bound.Top() || - X + W > m_bound.Right() || Y+H > m_bound.Bottom() ) - { - return; - } - - m_rect = CRect(X,Y,W,H); - - } - - void _LoadImage() { - const char *line_w; - const char *line_h; - const char *pot; - - if ( GetState() == NORMAL ) - { - line_w = CROP_LINEW_PATH; - line_h = CROP_LINEH_PATH; - - pot = CROP_POT_PATH; - } - else if ( GetState() == PRESS ) - { - line_w = CROP_LINEW_PRESS_PATH; - line_h = CROP_LINEH_PRESS_PATH; - - pot = CROP_POT_PRESS_PATH; - } - else if ( GetState() == HOLD ) - { - line_w = CROP_LINEW_PATH; - line_h = CROP_LINEH_PATH; - - pot = CROP_POT_HOLD_PATH; - } - else - { - MSG_FATAL("Invalid state"); - return; - } - - Evas_Load_Error err; - - for (int i = 0; i < DEFAULT_POT_NUM; i++) - { - if(i % 2) // 1, 3 - { - evas_object_image_file_set(selector_line[i], line_w, NULL); - err = evas_object_image_load_error_get(selector_line[i]); - if (err != EVAS_LOAD_ERROR_NONE) - { - MSG_ERROR("could not load image '%s'. %s", line_w, evas_load_error_str(err)); - } - } - else // 0, 2 - { - evas_object_image_file_set(selector_line[i], line_h, NULL); - err = evas_object_image_load_error_get(selector_line[i]); - if (err != EVAS_LOAD_ERROR_NONE) - { - MSG_ERROR("could not load image '%s'. %s", line_h, evas_load_error_str(err)); - } - } - - evas_object_show(selector_line[i]); - - } - - for (int i = 0; i < DEFAULT_POT_NUM; i++) - { - evas_object_image_file_set(selector_pot[i], pot, NULL); - - err = evas_object_image_load_error_get(selector_line[i]); - if (err != EVAS_LOAD_ERROR_NONE) - { - MSG_ERROR("could not load image '%s'. %s", pot, evas_load_error_str(err)); - } - - evas_object_image_scale_hint_set(selector_pot[i], EVAS_IMAGE_SCALE_HINT_STATIC); - - evas_object_show(selector_pot[i]); - } - }; - -public: - - void Create(Evas_Object *obj) { - Evas *e = evas_object_evas_get(obj); - - center = evas_object_rectangle_add(e); - evas_object_color_set(center, 0, 0, 0, 0); - - evas_object_event_callback_add(center, EVAS_CALLBACK_MOUSE_DOWN, _selector_mouse_down, this); - evas_object_event_callback_add(center, EVAS_CALLBACK_MOUSE_UP, _selector_mouse_up, this); - evas_object_event_callback_add(center, EVAS_CALLBACK_MOUSE_MOVE, _selector_mouse_move, this); - - evas_object_smart_member_add(center, obj); - - evas_object_show(center); - - for (int i = 0; i < DEFAULT_POT_NUM; i++) - { - selector_line[i] = evas_object_image_filled_add(e); - - evas_object_event_callback_add(selector_line[i], EVAS_CALLBACK_MOUSE_DOWN, _line_mouse_down, this); - evas_object_event_callback_add(selector_line[i], EVAS_CALLBACK_MOUSE_UP, _line_mouse_up, this); - - evas_object_smart_member_add(selector_line[i], obj); - } - - for (int i = 0; i < DEFAULT_POT_NUM; i++) - { - /* Create image icon (pot) */ - selector_pot[i] = evas_object_image_filled_add(e); - - evas_object_image_scale_hint_set(selector_pot[i], EVAS_IMAGE_SCALE_HINT_STATIC); - - evas_object_smart_member_add(selector_pot[i], obj); - - /* Create event object above image icon (pot) */ - event_pot[i] = evas_object_rectangle_add(e); - evas_object_color_set(event_pot[i], 0, 0, 0, 0); - - evas_object_event_callback_add(event_pot[i], EVAS_CALLBACK_MOUSE_DOWN, _pot_mouse_down, this); - evas_object_event_callback_add(event_pot[i], EVAS_CALLBACK_MOUSE_UP, _pot_mouse_up, this); - evas_object_event_callback_add(event_pot[i], EVAS_CALLBACK_MOUSE_MOVE, _pot_mouse_move, this); - - evas_object_resize(event_pot[i], EVENT_GRIP_SIZE, EVENT_GRIP_SIZE); - - evas_object_smart_member_add(event_pot[i], obj); - - evas_object_show(event_pot[i]); - } - - evas_object_data_set(event_pot[0], "grip_type",(void *)(GRIP_LEFT | GRIP_TOP)); - evas_object_data_set(event_pot[1], "grip_type",(void *)(GRIP_RIGHT | GRIP_TOP)); - evas_object_data_set(event_pot[2], "grip_type",(void *)(GRIP_RIGHT | GRIP_BOTTOM)); - evas_object_data_set(event_pot[3], "grip_type",(void *)(GRIP_LEFT | GRIP_BOTTOM)); - - _LoadImage(); - }; - - void Draw() { -// Check bound. - if ( m_bound.Inside(m_rect) == false ) - { - MSG_ERROR("Out of bound region. Rect(%d,%d,%d,%d) Bound(%d,%d,%d,%d)", m_rect.Left(), m_rect.Top(), m_rect.Width(), m_rect.Height(), - m_bound.Left(), m_bound.Top(), m_bound.Width(), m_bound.Height()); - - // Reset Rect - } - - evas_object_move(center, m_rect.Left(), m_rect.Top()); - evas_object_resize(center, m_rect.Width(), m_rect.Height()); - // Horizontal - evas_object_move(selector_line[0], m_rect.Left(), m_rect.Top()); - evas_object_resize(selector_line[0], m_rect.Width() , 8); - - evas_object_move(selector_line[2], m_rect.Left(), m_rect.Bottom() - (SHADOW_DEPTH / 2)); - evas_object_resize(selector_line[2], m_rect.Width() , 8); - - // Vertical - evas_object_move(selector_line[1], m_rect.Left(), m_rect.Top()); - evas_object_resize(selector_line[1], 8, m_rect.Height() ); - - evas_object_move(selector_line[3], m_rect.Right() - (SHADOW_DEPTH / 2), m_rect.Top()); - evas_object_resize(selector_line[3], 8, m_rect.Height()); - - evas_object_move(event_pot[0], m_rect.Left() - ( EVENT_GRIP_SIZE / 2), m_rect.Top() - ( EVENT_GRIP_SIZE / 2)); - evas_object_move(event_pot[1], m_rect.Right() - ( EVENT_GRIP_SIZE / 2), m_rect.Top() - ( EVENT_GRIP_SIZE / 2)); - evas_object_move(event_pot[2], m_rect.Right() - ( EVENT_GRIP_SIZE / 2), m_rect.Bottom() - ( EVENT_GRIP_SIZE / 2)); - evas_object_move(event_pot[3], m_rect.Left() - ( EVENT_GRIP_SIZE / 2), m_rect.Bottom() - ( EVENT_GRIP_SIZE / 2)); - - // Pot - int w, h; - - w = POT_SIZE.Width(); - h = POT_SIZE.Height(); - - evas_object_move(selector_pot[0], m_rect.Left() - 4, m_rect.Top() - 4 ); - evas_object_resize(selector_pot[0], w, h); - - evas_object_move(selector_pot[1], m_rect.Right() - 8, m_rect.Top() - 4 ); - evas_object_resize(selector_pot[1], w, h); - - evas_object_move(selector_pot[2], m_rect.Right() - 8, m_rect.Bottom() - 8); - evas_object_resize(selector_pot[2], w, h); - - evas_object_move(selector_pot[3], m_rect.Left() - 4, m_rect.Bottom() - 8); - evas_object_resize(selector_pot[3], w, h); - - }; - -private: - Evas_Object *selector_line[4]; - Evas_Object *event_pot[4]; - Evas_Object *selector_pot[4]; - - Evas_Object *center; - - bool m_bMouseDown; - bool m_bGripMouseDown; - -}; - - -#define CROP_SELECT_PATH IMAGE_PATH"/crop/T06_selection.png" - -#define CROP_RESIZE_H_PATH IMAGE_PATH"/crop/T06_selection_Resizing_h.png" -#define CROP_RESIZE_W_PATH IMAGE_PATH"/crop/T06_selection_Resizing_V.png" - -#define CROP_ROTATE_PATH IMAGE_PATH"/crop/T06_selection_Rotate.png" - -class CBox1 : public CSelectBox { // crop box -public: - const int EVENT_GRIP_SIZE; - const CSize POT_SIZE; - - static void _line_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info) {}; - static void _line_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info) {}; - - static void _pot_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info) { - CBox1 *pBox = (CBox1 *)data; - -// Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down *) event_info; - - pBox->OnGripMouseDown(); - }; - static void _pot_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info) - { - CBox1 *pBox = (CBox1 *)data; - - Evas_Event_Mouse_Move *ev = (Evas_Event_Mouse_Move *) event_info; - - eGripType grip = static_cast (reinterpret_cast (evas_object_data_get(obj, "grip_type"))); - - if ( ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD ) - { - MSG_HIGH("On Hold"); - } - - if ( ev->event_flags & EVAS_EVENT_FLAG_ON_SCROLL ) - { - MSG_HIGH("On Scroller"); - } - - pBox->OnGripMouseMove(grip, ev->prev.output.x, ev->prev.output.y, ev->cur.output.x, ev->cur.output.y); - }; - - static void _pot_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info) { - CBox1 *pBox = (CBox1 *)data; - -// Evas_Event_Mouse_Up *ev = (Evas_Event_Mouse_Up *) event_info; - - pBox->OnGripMouseUp(); - }; - - - static void _selector_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info) { - CBox1 *pBox = (CBox1 *)data; - - Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down *) event_info; - - pBox->OnMouseDown(ev->output.x, ev->output.y); - - }; - - static void _selector_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info) { - CBox1 *pBox = (CBox1 *)data; - - Evas_Event_Mouse_Move *ev = (Evas_Event_Mouse_Move *) event_info; - - MSG_LOW("(%d,%d) --> (%d,%d)", ev->cur.output.x, ev->cur.output.y, ev->prev.output.x, ev->prev.output.y); - pBox->OnMouseMove(ev->prev.output.x, ev->prev.output.y, ev->cur.output.x, ev->cur.output.y); - }; - - static void _selector_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info) { - CBox1 *pBox = (CBox1 *)data; - - Evas_Event_Mouse_Up *ev = (Evas_Event_Mouse_Up *) event_info; - - pBox->OnMouseUp(ev->output.x, ev->output.y); - }; - -public: - CBox1() : CSelectBox(), EVENT_GRIP_SIZE(90), POT_SIZE(56,56), m_bMouseDown(false), m_bGripMouseDown(false) { }; - - virtual ~CBox1() { - MSG_HIGH("Remove CBox1"); - - for (int i = 0; i < DEFAULT_POT_NUM; i++) - { - evas_object_del(selector_pot[i]); - evas_object_del(event_pot[i]); - } - - evas_object_del(this->sel_rotate); - evas_object_del(select_rect); - }; - - void OnMouseDown(int x, int y) - { - MSG_HIGH("Mouse down XY(%d,%d)", x, y); - - SetState(PRESS); - m_bMouseDown = true; - } - - void OnMouseMove(int px, int py, int cx, int cy) - { - // Inform changes to parent. - if ( m_bMouseDown == false ) return; - - int dx, dy; - - dx = cx - px; - dy = cy - py; - - MSG_HIGH("Mouse move XY(%d,%d) -> XY(%d,%d)", px, py, cx, cy); - - if ( dx == 0 && dy == 0) { - return; - }; - - if ( m_rect.Left() + dx < m_bound.Left() ) - { - MSG_HIGH("Left bound"); - dx = m_bound.Left() - m_rect.Left(); - } - - if ( m_rect.Right() + dx > m_bound.Right() ) - { - MSG_HIGH("Right bound"); - dx = m_bound.Right() - m_rect.Right(); - } - - if ( m_rect.Top() + dy < m_bound.Top() ) - { - MSG_HIGH("Top bound"); - dy = m_bound.Top() - m_rect.Top(); - } - - if ( m_rect.Bottom() + dy > m_bound.Bottom() ) - { - MSG_HIGH("Bottom bound"); - dy = m_bound.Bottom() - m_rect.Bottom(); - } - - // Move rect - m_rect.MoveBy(dx, dy); - - evas_object_smart_changed(evas_object_smart_parent_get(select_rect)); - - } - - void OnMouseUp(int x, int y) - { - MSG_HIGH("Mouse up XY(%d,%d)", x, y); - SetState(NORMAL); - - m_bMouseDown = false; -// evas_object_smart_callback_call(sd->obj, SIG_CHANGED, NULL); - } - - void OnGripMouseUp() - { - m_bGripMouseDown = false; - SetState(NORMAL); - } - - void OnGripMouseDown() - { - m_bGripMouseDown = true; - SetState(HOLD); - } - - void OnGripMouseMove(eGripType grip, int px, int py, int cx, int cy) - { - if ( m_bGripMouseDown == false ) return; - - int dx = cx - px; - int dy = cy - py; - - if ( dx == 0 && dy == 0) { - return; - }; - - if ( GetRatio() != 0.0f ) - { - _GripMovePreserve(grip, dx, dy); - } - else - { - _GripMove(grip, dx, dy); - } - - MSG_HIGH("New Rect %d,%d,%d,%d", m_rect.Left(), m_rect.Top(), m_rect.Width(), m_rect.Height()); - - evas_object_smart_changed(evas_object_smart_parent_get(select_rect)); - } - -private: - void _GripMove(eGripType grip, int dx, int dy) { - const int min_size = EVENT_GRIP_SIZE; - CRect rect = m_rect; - - int X1 = rect.Left(), Y1 = rect.Top() ,X2 = rect.Right(), Y2 = rect.Bottom(); - - if ( grip & GRIP_LEFT ) - { - X1 = rect.Left() + dx; - - if ( X1 < m_bound.Left() ) - { - MSG_HIGH("Left bound"); - X1 = m_bound.Left(); - } - - if ( rect.Width() - dx < min_size ) - { - X1 = rect.Right() - min_size; - - MSG_HIGH("X1 = %d (%d,%d)", X1, rect.Left(), rect.Right()); - } - } - - if ( grip & GRIP_TOP ) - { - Y1 = rect.Top() + dy; - - if ( Y1 < m_bound.Top() ) - { - MSG_HIGH("Top bound"); - Y1 = m_bound.Top(); - } - - if ( rect.Height() - dy < min_size ) - { - Y1 = rect.Bottom() - min_size; - - MSG_HIGH("Y1 = %d B=%d", Y1, rect.Bottom()); - } - } - - if ( grip & GRIP_RIGHT ) - { - X2 = rect.Right() + dx; - - if ( X2 > m_bound.Right() ) - { - MSG_HIGH("Right bound"); - X2 = m_bound.Right() ; - } - - if ( rect.Width() + dx < min_size ) - { - X2 = rect.Left() + min_size; - } - } - - if ( grip & GRIP_BOTTOM ) - { - Y2 = rect.Bottom() + dy; - - if ( Y2 > m_bound.Bottom() ) - { - MSG_HIGH("Bottom bound"); - Y2 = m_bound.Bottom(); - } - - if ( rect.Height() + dy < min_size ) - { - Y2 = rect.Top() + min_size; - } - } - - m_rect = CRect(X1, Y1, X2 - X1, Y2 - Y1); - - }; - - void _GripMovePreserve(eGripType grip, int dx, int dy) { - const int min_size = EVENT_GRIP_SIZE; - CRect rect = m_rect; - - int X = 0,Y = 0,W = 0,H = 0; - - double ratio = GetRatio(); - - MSG_HIGH("Dx=%d Dy=%d Ratio=%f", dx, dy, ratio); - - enum eDominantDirection - { - Direction_X, - Direction_Y - } ; - - eDominantDirection dir = Direction_X; - int mov_dist; - if(abs(dx) < abs(dy)) - { - dir = Direction_Y; - mov_dist = dy; - } - else - { - mov_dist = dx; - } - - if ( (grip & GRIP_LEFT) || (grip & GRIP_TOP) ) - { - MSG_HIGH("LEFT,TOP"); - - if ( dir == Direction_X ) - { - W = rect.Width() - mov_dist; - H = W * ratio; - - X = m_rect.Right() - W; - Y = m_rect.Bottom() - H; - } - else - { - H = rect.Height() - mov_dist; - W = H / ratio; - - X = m_rect.Right() - W; - Y = m_rect.Bottom() - H; - } - - - } - - - if ( (grip & GRIP_RIGHT) || (grip & GRIP_BOTTOM) ) - { - MSG_HIGH("RIGHT,BOTTOM"); - if ( dir == Direction_X ) - { - W = rect.Width() + mov_dist; - H = W * ratio; - - X = m_rect.Left(); - Y = m_rect.Top(); - } - else - { - H = rect.Height() + mov_dist; - W = H / ratio; - - X = m_rect.Left(); - Y = m_rect.Top(); - - } - - } - - -#if 0 - if ( (grip & GRIP_RIGHT) && (grip & GRIP_TOP) ) - { - MSG_HIGH("RIGHT,TOP"); - - if ( dir == Direction_X ) - { - W = rect.Width() + mov_dist; - H = W * m_ratio; - - X = m_rect.Left(); - Y = m_rect.Bottom() - H; - } - else - { - H = rect.Height() - mov_dist; - W = H / m_ratio; - - X = m_rect.Left(); - Y = m_rect.Bottom() - H; - } - - } - - if ( (grip & GRIP_LEFT) && (grip & GRIP_BOTTOM) ) - { - MSG_HIGH("LEFT,BOTTOM"); - - if ( dir == Direction_X ) - { - W = rect.Width() - mov_dist; - H = W * m_ratio; - - X = m_rect.Right() - W; - Y = m_rect.Top(); - } - else - { - H = rect.Height() + mov_dist; - W = H / m_ratio; - - X = m_rect.Right() - W; - Y = m_rect.Top(); - } - - } -#endif - - if ( W < min_size || H < min_size) - { - return; - } - - if ( X < m_bound.Left() || Y < m_bound.Top() || - X + W > m_bound.Right() || Y+H > m_bound.Bottom() ) - { - return; - } - - m_rect = CRect(X,Y,W,H); - - } - - void _LoadImage() { - - Evas_Load_Error err; - - evas_object_image_file_set(select_rect, CROP_SELECT_PATH, NULL); - err = evas_object_image_load_error_get(select_rect); - if (err != EVAS_LOAD_ERROR_NONE) - { - MSG_ERROR("could not load image '%s'. %s", CROP_SELECT_PATH, evas_load_error_str(err)); - } - - evas_object_image_border_set(select_rect, 6, 6, 6, 6); - evas_object_show(select_rect); - - const char *szPot[] = { - CROP_RESIZE_H_PATH, - CROP_RESIZE_H_PATH, - CROP_RESIZE_W_PATH, - CROP_RESIZE_W_PATH - }; - - for (int i = 0; i < DEFAULT_POT_NUM; i++) - { - evas_object_image_file_set(selector_pot[i], szPot[i], NULL); - - err = evas_object_image_load_error_get(selector_pot[i]); - if (err != EVAS_LOAD_ERROR_NONE) - { - MSG_ERROR("could not load image '%s'. %s", szPot[i], evas_load_error_str(err)); - } - - evas_object_image_scale_hint_set(selector_pot[i], EVAS_IMAGE_SCALE_HINT_STATIC); - - evas_object_show(selector_pot[i]); - } - - /*evas_object_image_file_set(sel_rotate, CROP_ROTATE_PATH, NULL); - - err = evas_object_image_load_error_get(sel_rotate); - if (err != EVAS_LOAD_ERROR_NONE) - { - MSG_ERROR("could not load image '%s'. %s", CROP_ROTATE_PATH, evas_load_error_str(err)); - } - - evas_object_image_scale_hint_set(sel_rotate, EVAS_IMAGE_SCALE_HINT_STATIC); - - evas_object_show(sel_rotate);*/ - - }; - -public: - virtual void SetState(eState state) { - CSelectBox::SetState(state); - - _LoadImage(); - }; - - void Create(Evas_Object *obj) { - Evas *e = evas_object_evas_get(obj); - - select_rect = evas_object_image_filled_add(e); - - evas_object_event_callback_add(select_rect, EVAS_CALLBACK_MOUSE_DOWN, _selector_mouse_down, this); - evas_object_event_callback_add(select_rect, EVAS_CALLBACK_MOUSE_UP, _selector_mouse_up, this); - evas_object_event_callback_add(select_rect, EVAS_CALLBACK_MOUSE_MOVE, _selector_mouse_move, this); - - evas_object_smart_member_add(select_rect, obj); - - for (int i = 0; i < DEFAULT_POT_NUM; i++) - { - /* Create image icon (pot) */ - selector_pot[i] = evas_object_image_filled_add(e); - - evas_object_image_scale_hint_set(selector_pot[i], EVAS_IMAGE_SCALE_HINT_STATIC); - - evas_object_smart_member_add(selector_pot[i], obj); - - /* Create event object above image icon (pot) */ - event_pot[i] = evas_object_rectangle_add(e); - evas_object_color_set(event_pot[i], 0, 0, 0, 0); - - evas_object_event_callback_add(event_pot[i], EVAS_CALLBACK_MOUSE_DOWN, _pot_mouse_down, this); - evas_object_event_callback_add(event_pot[i], EVAS_CALLBACK_MOUSE_UP, _pot_mouse_up, this); - evas_object_event_callback_add(event_pot[i], EVAS_CALLBACK_MOUSE_MOVE, _pot_mouse_move, this); - - evas_object_smart_member_add(event_pot[i], obj); - - evas_object_show(event_pot[i]); - } - - - evas_object_data_set(event_pot[0], "grip_type",(void *)GRIP_LEFT); - evas_object_data_set(event_pot[1], "grip_type",(void *)GRIP_RIGHT); - evas_object_data_set(event_pot[2], "grip_type",(void *)GRIP_TOP); - evas_object_data_set(event_pot[3], "grip_type",(void *)GRIP_BOTTOM); - - sel_rotate = evas_object_image_filled_add(e); - evas_object_smart_member_add(sel_rotate, obj); - - _LoadImage(); - }; - - void Draw() { -// Check bound. - if ( m_bound.Inside(m_rect) == false ) - { - MSG_ERROR("Out of bound region. Rect(%d,%d,%d,%d) Bound(%d,%d,%d,%d)", m_rect.Left(), m_rect.Top(), m_rect.Width(), m_rect.Height(), - m_bound.Left(), m_bound.Top(), m_bound.Width(), m_bound.Height()); - } - - MSG_HIGH("Rect. %d,%d,%d,%d", m_rect.Left(), m_rect.Top(), m_rect.Width(), m_rect.Height()); - - const int margin_l = -1; - const int margin_r = -1; - const int margin_t = -1; - const int margin_b = -1; - - int mx, my, mw, mh; - - mx = m_rect.Left() + margin_l; - my = m_rect.Top() + margin_t; - mw = m_rect.Width() - margin_l - margin_r; - mh = m_rect.Height() - margin_t - margin_b; - - evas_object_move(select_rect, mx, my); - evas_object_resize(select_rect, mw, mh); - - int w, h; - - w = POT_SIZE.Width(); - h = POT_SIZE.Height(); - -// Event handle. - evas_object_resize(event_pot[0], EVENT_GRIP_SIZE, EVENT_GRIP_SIZE); - evas_object_move(event_pot[0], m_rect.Left() - ( EVENT_GRIP_SIZE ) + w/2, m_rect.Top() + m_rect.Height() / 2 - ( EVENT_GRIP_SIZE / 2 )); // Left - - evas_object_resize(event_pot[1], EVENT_GRIP_SIZE, EVENT_GRIP_SIZE); - evas_object_move(event_pot[1], m_rect.Right() - w/2, m_rect.Top() + m_rect.Height() / 2 - ( EVENT_GRIP_SIZE / 2 )); // Right - - evas_object_resize(event_pot[2], EVENT_GRIP_SIZE, EVENT_GRIP_SIZE); - evas_object_move(event_pot[2], m_rect.Left() + m_rect.Width() / 2 - ( EVENT_GRIP_SIZE / 2 ), m_rect.Top() - ( EVENT_GRIP_SIZE ) + h/2); // Top - - evas_object_resize(event_pot[3], EVENT_GRIP_SIZE, EVENT_GRIP_SIZE); - evas_object_move(event_pot[3], m_rect.Left() + m_rect.Width() / 2 - ( EVENT_GRIP_SIZE / 2 ), m_rect.Bottom() - h/2 ); // Bottom - -#ifdef SHOW_EVENT_AREA - evas_object_color_set(event_pot[0], 255, 255, 255, 100); - evas_object_color_set(event_pot[1], 255, 255, 0, 100); - evas_object_color_set(event_pot[2], 255, 0, 255, 100); - evas_object_color_set(event_pot[3], 0, 255, 255, 100); -#endif - - // Pot - const int lw = 4; - const int lh = 4; -// L - evas_object_resize(selector_pot[0], w, h); - evas_object_move(selector_pot[0], m_rect.Left() - w / 2 + lw, m_rect.Top() + m_rect.Height() / 2 - h / 2 ); -// R - evas_object_move(selector_pot[1], m_rect.Right() - w / 2 -lw, m_rect.Top() + m_rect.Height() / 2 - h / 2 ); - evas_object_resize(selector_pot[1], w, h); -// T - evas_object_move(selector_pot[2], m_rect.Left() + m_rect.Width() / 2 - w / 2 , m_rect.Top() - h / 2 + lh); - evas_object_resize(selector_pot[2], w, h); -// B - evas_object_move(selector_pot[3], m_rect.Left() + m_rect.Width() / 2 - w / 2, m_rect.Bottom() - h / 2 - lh); - evas_object_resize(selector_pot[3], w, h); - - evas_object_move(sel_rotate, m_rect.Right() - w / 2 - lw , m_rect.Top() - h / 2 + lh); - evas_object_resize(sel_rotate, w, h); - - }; - -private: - Evas_Object *select_rect; // Center rect - - Evas_Object *event_pot[4]; - Evas_Object *selector_pot[4]; - - Evas_Object *sel_rotate; - - bool m_bMouseDown; - bool m_bGripMouseDown; -}; - - -template<> -const Evas_Smart_Cb_Description CEvasSmartObject::_signals[] = { - {NULL, NULL}, -}; - -Evas_Object *CScissorBox::CreateObject(Evas_Object *parent) { - CEvasSmartObject::CreateObject(parent); - - evas_object_smart_callbacks_descriptions_set(GetObject(), _signals); - - for (int i = 0; i < DEFAULT_POT_NUM; i++) - { - m_opaque[i] = evas_object_rectangle_add(evas_object_evas_get(parent)); - - evas_object_color_set(m_opaque[i], 0, 0, 0, DEFAULT_DIM_BG_ALPHA); - evas_object_smart_member_add(m_opaque[i], GetObject()); - evas_object_repeat_events_set(m_opaque[i], EINA_TRUE); - } - - m_box = new CBox(); - - m_box->Create( GetObject() ); - - m_parent = parent; - - MSG_HIGH("Scissorbox created"); - return GetObject(); -}; - -void CScissorBox::remove() -{ - MSG_HIGH("Destroy ScissorBox. m_box=0x%08x", m_box); - - if ( m_target ) - { - UnRegisterCB(); - m_target = NULL; - } - - m_parent = NULL; - - for (int i = 0; i < DEFAULT_POT_NUM; i++) - { - evas_object_hide(m_opaque[i]); - evas_object_del(m_opaque[i]); - } - - if ( m_job ) - { - ecore_job_del(m_job); - m_job = NULL; - } - - delete m_box; - - delete this; -} - - -void CScissorBox::SetOpaque(bool bOpaque) -{ -#if 0 - // Determine whether BG is drawn or not. - if ( bOpaque == m_bOpaque ) - { - return; - } -#endif - - -/* -m_rect ------------------------------- -| m_opaque[0] | -| ___________________________ | -| ---- | -| m_opaque[3] |bg | m_opaque[1] | -|_______________----___________ | -| | -| m_opaque[2] | ------------------------------- -*/ - if ( bOpaque == true ) - { - evas_object_show(m_opaque[0]); - evas_object_show(m_opaque[1]); - evas_object_show(m_opaque[2]); - evas_object_show(m_opaque[3]); - } - else - { - evas_object_hide(m_opaque[0]); - evas_object_hide(m_opaque[1]); - evas_object_hide(m_opaque[2]); - evas_object_hide(m_opaque[3]); - } - - m_bOpaque = bOpaque; - -} - - -void CScissorBox::SetPreserveRatio(bool bPreserveRatio) -{ - m_bPreserveRatio = bPreserveRatio; - - if ( m_bPreserveRatio == true ) - { - CRect rect = m_box->GetRegion(); - - if ( rect.Width() != 0 ) - { - MSG_HIGH("Set to preserve ratio"); - m_box->SetRatio((double)rect.Height() / rect.Width()); - } - } - -} - -void CScissorBox::SetRegion(int x, int y, int w, int h) -{ - MSG_HIGH("Set Region(%d,%d,%d,%d)", x, y, w, h); - - m_box->Move(x,y); - - if ( m_bPreserveRatio == true ) - { - m_box->SetRatio((double)h / w); - } - - m_box->Resize(w,h); - m_bSetRegion = true; - - evas_object_smart_changed(GetObject()); -} - -void CScissorBox::SetBound(int x, int y, int w, int h) -{ - MSG_HIGH("Set Bound(%d,%d,%d,%d)", x, y, w, h); - - CRect rect(x, y, w, h); - m_box->SetBound(rect); - - - evas_object_smart_changed(GetObject()); -} - -void CScissorBox::SetBoxType(eType type) -{ -// Remove old one and reload - if ( m_boxtype != type ) - { - // Load again - if ( m_box ) - { - const CRect &bound = m_box->GetBound(); - const CRect ®ion = m_box->GetRegion(); - double ratio = m_box->GetRatio(); - - delete m_box; - m_box = NULL; - - if ( type == IMAGE_VIEW ) - { - m_box = new CBox; - } - else - { - m_box = new CBox1; - } - - m_box->Create( GetObject() ); - - m_box->SetBound(bound); - m_box->Move(region.Left(), region.Top()); - m_box->Resize(region.Width(), region.Height()); - - if ( m_bPreserveRatio == true ) - { - m_box->SetRatio(ratio); - } - - } - } - - m_boxtype = type; -} - - -const CRect &CScissorBox::GetRegion() const -{ - return m_box->GetRegion(); -} - - -void CScissorBox::Attach(Evas_Object *obj) -{ - MSG_HIGH("Attach client! obj=%s", evas_object_type_get(obj)); - - if ( m_target ) - UnRegisterCB(); - - m_target = obj; - - RegisterCB(); - - SetOpaque(true); - - OnTargetChanged(); -} - - -void CScissorBox::draw() -{ - if ( m_box == NULL ) return; - - if ( m_bOpaque == true) - { - const CRect &box_rect = m_box->GetRegion(); - - if ( box_rect != CRect::Zero ) - { - int x, y, w, h; - evas_output_viewport_get(evas_object_evas_get(GetObject()), &x, &y, &w, &h); - - MSG_LOW("Evas View port Output : %d,%d,%d,%d", x,y,w, h); - - evas_object_move(m_opaque[0], x, y); - evas_object_resize(m_opaque[0], w, box_rect.Top()); - - evas_object_move(m_opaque[1], box_rect.Right(), box_rect.Top()); - evas_object_resize(m_opaque[1], w - box_rect.Right() , box_rect.Height() ); - - evas_object_move(m_opaque[2], x, box_rect.Bottom()); - evas_object_resize(m_opaque[2], w , h - box_rect.Bottom() ); - - evas_object_move(m_opaque[3], x, box_rect.Top()); - evas_object_resize(m_opaque[3], box_rect.Left() , box_rect.Height() ); - } - } - - m_box->Draw(); -} - -void CScissorBox::OnTargetChanged() -{ - if ( m_job ) - { - ecore_job_del(m_job); - } - - m_job = ecore_job_add(_OnChangedJob, this); - -} - -void CScissorBox::ApplyChanges() -{ - int x, y, w, h; - - int lcd_x, lcd_y, lcd_w, lcd_h; - - evas_object_geometry_get(m_parent, &lcd_x, &lcd_y, &lcd_w, &lcd_h); - MSG_HIGH("LCD size (%d,%d,%d,%d)", lcd_x, lcd_y, lcd_w, lcd_h); - - double lcd_ratio = (double)lcd_h/lcd_w; - - if ( m_target == NULL ) - { - x = 0; - y = 0; - w = lcd_w; - h = lcd_h; - } - else - { - evas_object_geometry_get(m_target, &x, &y, &w, &h); - } - - // evas_object_geometry_get is not corret when image loaded before show effect ended - if(lcd_ratio > (double)h/w) - { - x = 0; - } - else - { - x = (lcd_w - w)/2; - } - - MSG_HIGH("Target Changed (%d,%d,%d,%d)->(%d,%d,%d,%d)", tRect.Left(), tRect.Top(), tRect.Width(), tRect.Height(), x, y, w, h); - - if ( w == 0 || h == 0 ) - { - MSG_WARN("Size does not changed"); - return; - } - - CRect bound(x,y,w,h); // Boundary size is same as target - m_box->SetBound(bound); - - MSG_HIGH("Set Bound rect(%d,%d,%d,%d)", bound.Left(), bound.Top(), bound.Width(), bound.Height() ); - - if ( m_bSetRegion == false ) - { - int nW = w / 2; - int nH = h / 2; - - m_box->Move(x + (w - nW) / 2, y + (h - nH) / 2 ); - m_box->Resize(nW, nH); - - MSG_HIGH("Region is not set yet. BoxRegion(%d,%d,%d,%d)", x + (w - nW) / 2, y + (h - nH) / 2, nW, nH); - evas_object_smart_changed(GetObject()); - - return; - } - -#ifdef ALLOW_RECT_TRACE - if ( tRect.Width() == 0 || tRect.Height() == 0 ) - { - MSG_WARN("First time"); - tRect = CRect(x,y,w,h); - return; - } - - double zRatio = (double)w / tRect.Width(); - - const CRect &box_rect = m_box->GetRegion(); - -// Convert to rect on image; - int ix = box_rect.Left() - tRect.Left(); - int iy = box_rect.Top() - tRect.Top(); - - int rx = ix * zRatio; - int ry = iy * zRatio; - int rw = box_rect.Width() * zRatio; - int rh = box_rect.Height() * zRatio; - - m_box->Move(rx + x, ry + y); - m_box->Resize(rw, rh); - - MSG_HIGH("%d,%d %d,%d,%d,%d", ix, iy, rx, ry, rw, rh); -#endif - tRect = CRect(x,y,w,h); - -#ifndef ALLOW_RECT_TRACE - const CRect &box_rect = m_box->GetRegion(); - - if ( bound.Inside(box_rect) == false ) - { - MSG_ERROR("Out of bound region. Rect(%d,%d,%d,%d) Bound(%d,%d,%d,%d)", box_rect.Left(), box_rect.Top(), box_rect.Width(), box_rect.Height(), - bound.Left(), bound.Top(), bound.Width(), bound.Height()); - - int ph, pw; - - ph = (box_rect.Height() * bound.Width()) / box_rect.Width(); - - if (ph > bound.Height()) - { - pw = (box_rect.Width() * bound.Height()) / box_rect.Height(); - ph = bound.Height(); - } - else - { - pw = bound.Width(); - } - - pw = pw / 2; - ph = ph / 2; - - MSG_ERROR("New WH(%d,%d)", pw, ph); - - m_box->Move(bound.Left() + (bound.Width() - pw ) / 2, bound.Top() + (bound.Height() - ph) / 2 ); - m_box->Resize(pw , ph); - -#if 0 - // Reset Rect - int nW = bound.Width() / 2; - int nH = bound.Height() / 2; - - if ( nW > nH ) - { - nW = bound.Width() / 2; - nH = bound.Height() / 2; - } - else - { - nW = bound.Width() / 2; - nH = bound.Height() / 2; - } - - m_box->Move(bound.Left() + (bound.Width() - nW) / 2, bound.Top() + (bound.Height() - nH) / 2 ); - m_box->Resize(nW, nH); -#endif - - } - -#endif // ALLOW_RECT_TRACE - - evas_object_smart_changed(GetObject()); - -} - - diff --git a/widget/src/scissorbox/ScissorBox.h b/widget/src/scissorbox/ScissorBox.h deleted file mode 100755 index 4162841..0000000 --- a/widget/src/scissorbox/ScissorBox.h +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ - -#pragma once - -#include "ivug-debug.h" -#include "EvasSmartObj.h" -#include "Ecore.h" - -using namespace std; - -class CSelectBox; - -class CScissorBox : public CEvasSmartObject { -public: - enum eType { - IMAGE_VIEW, - IMAGE_EDIT, - }; - -public: - CScissorBox() : CEvasSmartObject(), m_box(NULL), m_boxtype(IMAGE_VIEW), m_bOpaque(false), m_target(NULL), m_bPreserveRatio(false), m_bSetRegion(false), m_job(NULL) { - CEvasSmartObject::SetClassName("ScissorBox"); - }; - - virtual ~CScissorBox() { - MSG_HIGH("~CScissorBox freed"); - }; - - Evas_Object *CreateObject(Evas_Object *parent); - - void SetOpaque(bool bOpaque); - void SetRegion(int x, int y, int w, int h); - void SetBound(int x, int y, int w, int h); - void SetPreserveRatio(bool bPreserveRatio); - void SetBoxType(eType type); - - void Attach(Evas_Object *image); - - const CRect &GetRegion() const; - - void draw(); - void remove(); - void resize(int w, int h) { - MSG_HIGH("Scissor box resized. WH(%d,%d)", w, h); - }; - - static void _on_resize(void *data, Evas *e, Evas_Object *obj, void *event_info) - { - //CScissorBox *scissorbox = (CScissorBox *)data; - - //scissorbox->OnTargetChanged(); - }; - - static void _on_move(void *data, Evas *e, Evas_Object *obj, void *event_info) { - // CScissorBox *scissorbox = (CScissorBox *)data; - - //scissorbox->OnTargetChanged(); - }; - - static void _OnChangedJob(void *data) { - CScissorBox *scissorbox = (CScissorBox *)data; - - scissorbox->OnChanged(); - } - - void OnTargetChanged(); - - void OnChanged() { - m_job = NULL; - ApplyChanges(); - }; - - void ApplyChanges(); - -private: - void RegisterCB() { - MSG_ASSERT(m_target != NULL); - - evas_object_event_callback_add(m_target, EVAS_CALLBACK_RESIZE, _on_resize, this); - evas_object_event_callback_add(m_target, EVAS_CALLBACK_MOVE, _on_move, this); - - } - - void UnRegisterCB() { - evas_object_event_callback_del_full(m_target, EVAS_CALLBACK_RESIZE, _on_resize, this); - evas_object_event_callback_del_full(m_target, EVAS_CALLBACK_MOVE, _on_move, this); - }; - - -private: - CSelectBox *m_box; - - eType m_boxtype; - - bool m_bOpaque; - Evas_Object *m_opaque[4]; - - Evas_Object *m_target; - - bool m_bPreserveRatio; - bool m_bSetRegion; // If region is set already, - Ecore_Job *m_job; - - CRect tRect; // Target rectangle - - Evas_Object *m_parent; // parent layout -}; - - - diff --git a/widget/src/scissorbox/ivug-scissorbox.cpp b/widget/src/scissorbox/ivug-scissorbox.cpp deleted file mode 100755 index e268ea8..0000000 --- a/widget/src/scissorbox/ivug-scissorbox.cpp +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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 "ivug-scissorbox.h" -#include "ivug-debug.h" - -#include "ScissorBox.h" - -#define SCISSORBOX_CLASS(obj) \ - static_cast(evas_object_data_get((obj), "CScissorBox")) - - -IVAPI Evas_Object *ivug_scissorbox_add(Evas_Object *parent) -{ - CScissorBox *scissorbox = new CScissorBox; - - Evas_Object *obj = scissorbox->CreateObject(parent); - MSG_ASSERT(obj != NULL); - - evas_object_data_set(obj, "CScissorBox", scissorbox); - - MSG_HIGH("Create scissorBox object. class=0x%08x obj=0x%08x", scissorbox, obj); - return obj; -} - -IVAPI void ivug_scissorbox_type_set(Evas_Object *obj, eScissorBoxType type) -{ - MSG_ASSERT(obj != NULL); - CScissorBox *scissorbox = SCISSORBOX_CLASS(obj); - - if ( type == SCISSOR_BOX_TYPE_1 ) - { - scissorbox->SetBoxType(CScissorBox::IMAGE_VIEW); - } - else - { - scissorbox->SetBoxType(CScissorBox::IMAGE_EDIT); - } - -} - -IVAPI void ivug_scissorbox_attach(Evas_Object *obj, Evas_Object *pObj) -{ - CScissorBox *scissorbox = SCISSORBOX_CLASS(obj); - MSG_ASSERT(pObj != NULL); - - scissorbox->Attach(pObj); -} - -IVAPI void ivug_scissorbox_region_get(Evas_Object *obj, int *x, int *y, int *w, int *h) -{ - MSG_ASSERT(obj != NULL); - CScissorBox *scissorbox = SCISSORBOX_CLASS(obj); - - const CRect ®ion = scissorbox->GetRegion(); - - if ( x ) *x = region.Left(); - if ( y ) *y = region.Top(); - if ( w ) *w = region.Width(); - if ( h ) *h = region.Height(); - -} - -IVAPI void ivug_scissorbox_region_set(Evas_Object *obj, int x, int y, int w, int h) -{ - MSG_ASSERT(obj != NULL); - CScissorBox *scissorbox = SCISSORBOX_CLASS(obj); - - scissorbox->SetRegion(x,y,w,h); -} - -IVAPI void ivug_scissorbox_boundary_set(Evas_Object *obj, int x, int y, int w, int h) -{ - MSG_ASSERT(obj != NULL); - CScissorBox *scissorbox = SCISSORBOX_CLASS(obj); - - scissorbox->SetBound(x,y,w,h); -} - - -IVAPI void ivug_scissorbox_ratio_fix(Evas_Object *obj, Eina_Bool bFix) -{ - MSG_ASSERT(obj != NULL); - CScissorBox *scissorbox = SCISSORBOX_CLASS(obj); - - if ( bFix == EINA_TRUE ) - { - scissorbox->SetPreserveRatio(true); - } - else - { - scissorbox->SetPreserveRatio(false); - } - -} - -IVAPI void ivug_scissorbox_set_opaque(Evas_Object *obj, Eina_Bool bOpaque) -{ - MSG_ASSERT(obj != NULL); - CScissorBox *scissorbox = SCISSORBOX_CLASS(obj); - - if ( bOpaque == EINA_TRUE ) - { - scissorbox->SetOpaque(true); - } - else - { - scissorbox->SetOpaque(false); - } -} - - diff --git a/widget/src/util/EFLUtil.cpp b/widget/src/util/EFLUtil.cpp index ac0068d..645887e 100755 --- a/widget/src/util/EFLUtil.cpp +++ b/widget/src/util/EFLUtil.cpp @@ -1,24 +1,27 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 "EFLUtil.h" #include "ivug-debug.h" +#include "ivug-language-mgr.h" + #undef LOG_LVL #define LOG_LVL DBG_MSG_LVL_HIGH #undef LOG_CAT @@ -29,9 +32,11 @@ namespace EFL { extern "C" const char * elm_widget_type_get(const Evas_Object *obj); +extern "C" EAPI Eina_Bool +elm_widget_type_check(const Evas_Object *obj, + const char *type, + const char *func); -extern void * -elm_widget_data_get(const Evas_Object *obj); void get_evas_geometry(Evas_Object *obj, const char *prefix) @@ -52,7 +57,7 @@ Evas_Object *create_gesture(Evas_Object *parent) return gesture; } -Evas_Object *create_rect(Evas_Object *parent) +Evas_Object *create_rect(Evas_Object *parent, int r, int g, int b, int a) { Evas_Object *obj; @@ -60,7 +65,7 @@ Evas_Object *create_rect(Evas_Object *parent) evas_object_size_hint_expand_set(obj, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_fill_set(obj, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_color_set(obj, 0,0,0,0); + evas_object_color_set(obj, r,g,b,a); return obj; } @@ -86,13 +91,13 @@ Evas_Object *create_layout(Evas_Object *parent, const char *edj, const char *gro Evas_Object *layout; layout = elm_layout_add(parent); - if ( layout == NULL ) + if (layout == NULL) { MSG_ERROR("Cannot create layout"); return NULL; } - if ( elm_layout_file_set(layout, edj, group) == EINA_FALSE) + if (elm_layout_file_set(layout, edj, group) == EINA_FALSE) { MSG_ERROR("Layout file set failed! %s in %s", group, edj); evas_object_del(layout); @@ -102,18 +107,18 @@ Evas_Object *create_layout(Evas_Object *parent, const char *edj, const char *gro evas_object_size_hint_expand_set( layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_fill_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL ); - evas_object_show(layout); +// evas_object_show(layout); return layout; } -Evas_Object *create_button(Evas_Object *parent, const char *style, const char *icon, const char *caption) +Evas_Object *create_button(Evas_Object *parent, const char *style, const char *icon, const char *caption_id) { Evas_Object *btn = NULL; btn = elm_button_add(parent); elm_object_style_set(btn, style); - if ( icon ) + if (icon ) { Evas_Object *ic = NULL; ic = elm_icon_add(btn); @@ -123,9 +128,9 @@ Evas_Object *create_button(Evas_Object *parent, const char *style, const char *i elm_object_part_content_set(btn, "icon", ic); } - if ( caption ) + if (caption_id ) { - elm_object_text_set(btn, caption); + elm_object_text_set(btn, caption_id); } return btn; @@ -138,7 +143,7 @@ Evas_Object *create_icon(Evas_Object *parent, const char *edjname, const char *g icon = elm_icon_add(parent); - if ( elm_image_file_set(icon, edjname, groupname) == EINA_FALSE) + if (elm_image_file_set(icon, edjname, groupname) == EINA_FALSE) { MSG_IVUG_ERROR("Cannot file set. EDJ=%s Group=%s", edjname, groupname); evas_object_del(icon); @@ -153,11 +158,29 @@ Evas_Object *create_icon(Evas_Object *parent, const char *edjname, const char *g } -void dump_win(Evas_Object *obj) +__attribute__((used)) void dump_win(Evas_Object *obj) { - void *pData = elm_widget_data_get(obj); - Eina_List *subobjs = (Eina_List *)( pData + (4 * 6 )); + if (elm_widget_type_check(obj, "elm_win", __func__) == false ) + { + MSG_ERROR("Obj(0x%08x) is not elm_win Object", obj); + return; + } + + void *pData = evas_object_smart_data_get(obj); + +// A : ((Elm_Win_Smart_Data *)((Evas_Object_Smart *)(((Evas_Object *)ug_get_window())->object_data))->data) +// B : &(((Elm_Win_Smart_Data *)((Evas_Object_Smart *)(((Evas_Object *)ug_get_window())->object_data))->data)->resize_objs) + + volatile int Diff; + + Diff = 0xC4; + + Eina_List **ppList = (Eina_List **)( (char *)pData + ((Diff)) /* B - A */); + Eina_List *subobjs = *ppList; + +// (gdb) set EFL::dump_win((Evas_Object *)ug_get_window()) + MSG_HIGH("pData=0x%08x SubObj=0x%08x pData+C4=0x%08x SubObjCnt=%d", pData, subobjs, reinterpret_cast(pData) + (Diff), eina_list_count(subobjs)); { int x, y, w, h; @@ -169,36 +192,27 @@ void dump_win(Evas_Object *obj) Eina_Bool propagate = evas_object_propagate_events_get(obj); MSG_HIGH("Win=%s(%s,0x%08x) %s(%d,%d,%d,%d) P%d|R%d|V%d|E%d", evas_object_name_get(obj), elm_widget_type_get(obj), obj, evas_object_type_get(obj), x, y, w, h, pass, repeat, visible, propagate); - } const Eina_List *l; - const Evas_Object *child; + Evas_Object *child; void *MyData = NULL; EINA_LIST_FOREACH(subobjs, l, MyData) { - child = (const Evas_Object *)MyData; + child = (Evas_Object *)MyData; - int x, y, w, h; - - evas_object_geometry_get(child, &x, &y, &w, &h); - Eina_Bool repeat = evas_object_repeat_events_get(child); - Eina_Bool pass = evas_object_pass_events_get(child); - Eina_Bool visible = evas_object_visible_get(child); - Eina_Bool propagate = evas_object_propagate_events_get(child); - - MSG_HIGH(" Obj=%s(%s,0x%08x) %s(%d,%d,%d,%d) P%d|R%d|V%d|E%d", evas_object_name_get(child), elm_widget_type_get(child), child, evas_object_type_get(child), x, y, w, h, pass, repeat, visible, propagate); + dump_obj(child, 0); } } -void dump_obj(Evas_Object *obj, int lvl) +__attribute__((used)) void dump_obj(Evas_Object *obj, int lvl) { Eina_List *list = evas_object_smart_members_get(obj); - if ( lvl == 0 ) + if (lvl == 0 ) { int x, y, w, h; @@ -208,7 +222,12 @@ void dump_obj(Evas_Object *obj, int lvl) Eina_Bool visible = evas_object_visible_get(obj); Eina_Bool propagate = evas_object_propagate_events_get(obj); - MSG_HIGH("Obj=%s(%s,0x%08x) (%d,%d,%d,%d) P%d|R%d|V%d|E%d", evas_object_name_get(obj), evas_object_type_get(obj), obj, x, y, w, h, pass, repeat, visible, propagate); + int mW, mH, MW, MH; + + evas_object_size_hint_min_get(obj, &mW, &mH); + evas_object_size_hint_max_get(obj, &MW, &MH); + + MSG_HIGH("Obj=%s(%s,0x%08x) (%d,%d,%d,%d) m(%d,%d) M(%d,%d) P%d|R%d|V%d|E%d", evas_object_name_get(obj), evas_object_type_get(obj), obj, x, y, w, h, mW, mH, MW, MH, pass, repeat, visible, propagate); lvl++; } @@ -225,25 +244,23 @@ void dump_obj(Evas_Object *obj, int lvl) Eina_Bool visible = evas_object_visible_get(data); Eina_Bool propagate = evas_object_propagate_events_get(data); - if ( lvl == 0 ) + int mW, mH, MW, MH; + + evas_object_size_hint_min_get(data, &mW, &mH); + evas_object_size_hint_max_get(data, &MW, &MH); + + char *space = new char[lvl*2+1]; + + for ( int i = 0; i < lvl*2; i++) { - MSG_HIGH("Obj=%s(%s,0x%08x) (%d,%d,%d,%d) P%d|R%d|V%d|E%d", evas_object_name_get(data), evas_object_type_get(data), data, x, y, w, h, pass, repeat, visible, propagate); + space[i] = ' '; } - else - { - char *space = new char[lvl*2+1]; - for ( int i = 0; i < lvl*2; i++) - { - space[i] = ' '; - } + space[lvl*2] = '\0'; - space[lvl*2] = '\0'; + MSG_HIGH("%sObj=%s(%s,0x%08x) (%d,%d,%d,%d) m(%d,%d) M(%d,%d) P%d|R%d|V%d|E%d", space, evas_object_name_get(data), evas_object_type_get(data), data, x, y, w, h, mW, mH, MW, MH, pass, repeat, visible, propagate); - MSG_HIGH("%sObj=%s(%s,0x%08x) (%d,%d,%d,%d) P%d|R%d|V%d|E%d", space, evas_object_name_get(data), evas_object_type_get(data), data, x, y, w, h, pass, repeat, visible, propagate); - - delete[] space; - } + delete[] space; dump_obj(data, lvl+1); @@ -256,7 +273,7 @@ void dump_obj(Evas_Object *obj, int lvl) { Eina_List *list = evas_object_smart_members_get(obj); - if ( lvl == 0 ) + if (lvl == 0 ) { int x, y, w, h; @@ -266,7 +283,7 @@ void dump_obj(Evas_Object *obj, int lvl) Eina_Bool visible = evas_object_visible_get(obj); Eina_Bool propagate = evas_object_propagate_events_get(obj); - MSG_HIGH("Obj=%s(%s,0x%08x) (%d,%d,%d,%d) P%d|R%d|V%d|E%d", evas_object_name_get(obj), elm_widget_type_get(obj), obj, x, y, w, h, pass, repeat, visible, propagate); + MSG_SEC("Obj=%s(%s,0x%08x) (%d,%d,%d,%d) P%d|R%d|V%d|E%d", evas_object_name_get(obj), elm_widget_type_get(obj), obj, x, y, w, h, pass, repeat, visible, propagate); lvl++; } @@ -283,27 +300,20 @@ void dump_obj(Evas_Object *obj, int lvl) Eina_Bool visible = evas_object_visible_get(data); Eina_Bool propagate = evas_object_propagate_events_get(data); - if ( elm_widget_type_get(data) != NULL || evas_object_name_get(data) != NULL ) + if (elm_widget_type_get(data) != NULL || evas_object_name_get(data) != NULL) { - if ( lvl == 0 ) + char *space = new char[lvl*2+1]; + + for ( int i = 0; i < lvl*2; i++) { - MSG_HIGH("Obj=%s(%s,0x%08x) (%d,%d,%d,%d) P%d|R%d|V%d|E%d", evas_object_name_get(data), elm_widget_type_get(data), data, x, y, w, h, pass, repeat, visible, propagate); + space[i] = ' '; } - else - { - char *space = new char[lvl*2+1]; - - for ( int i = 0; i < lvl*2; i++) - { - space[i] = ' '; - } - space[lvl*2] = '\0'; + space[lvl*2] = '\0'; - MSG_HIGH("%sObj=%s(%s,0x%08x) (%d,%d,%d,%d) P%d|R%d|V%d|E%d", space, evas_object_name_get(data), elm_widget_type_get(data), data, x, y, w, h, pass, repeat, visible, propagate); + MSG_SEC("%sObj=%s(%s,0x%08x) (%d,%d,%d,%d) P%d|R%d|V%d|E%d", space, evas_object_name_get(data), elm_widget_type_get(data), data, x, y, w, h, pass, repeat, visible, propagate); - delete[] space; - } + delete[] space; } dump_widget(data, lvl+1); @@ -329,7 +339,7 @@ void dump_obj(Evas_Object *obj, int lvl) Eina_Bool visible = evas_object_visible_get(data); Eina_Bool propagate = evas_object_propagate_events_get(data); - MSG_HIGH("Clipper Obj=%s(%s,0x%08x) (%d,%d,%d,%d) P%d|R%d|V%d|E%d", evas_object_name_get(data), evas_object_type_get(data), data, x, y, w, h, pass, repeat, visible, propagate); + MSG_SEC("Clipper Obj=%s(%s,0x%08x) (%d,%d,%d,%d) P%d|R%d|V%d|E%d", evas_object_name_get(data), evas_object_type_get(data), data, x, y, w, h, pass, repeat, visible, propagate); clippees = evas_object_clipees_get(clipper); void *tmp; @@ -344,7 +354,7 @@ void dump_obj(Evas_Object *obj, int lvl) Eina_Bool visible = evas_object_visible_get(data); Eina_Bool propagate = evas_object_propagate_events_get(data); - MSG_HIGH(" Obj=%s(%s,0x%08x) (%d,%d,%d,%d) P%d|R%d|V%d|E%d", evas_object_name_get(data), evas_object_type_get(data), data, x, y, w, h, pass, repeat, visible, propagate); + MSG_SEC(" Obj=%s(%s,0x%08x) (%d,%d,%d,%d) P%d|R%d|V%d|E%d", evas_object_name_get(data), evas_object_type_get(data), data, x, y, w, h, pass, repeat, visible, propagate); } } @@ -403,15 +413,15 @@ Evas_Object *create_window(const char *title, int w, int h) namespace util { Image_Codec_Type -get_codec_type(const unsigned char *buffer, unsigned int size) +get_codec_type_with_size(const unsigned char *buffer, unsigned int size) { - if ( size < 8 ) + if (size < 8 ) { MSG_ERROR("To small buffer size : %d", size); return eImageCodec_UNKNOWN; } - if ( buffer[0] == 0xff && buffer[1] == 0xd8) // JPEG + if (buffer[0] == 0xff && buffer[1] == 0xd8) // JPEG { return eImageCodec_JPEG; } @@ -424,11 +434,11 @@ get_codec_type(const unsigned char *buffer, unsigned int size) { // ("GIF87a" or "GIF89a") - if ( memcmp(buffer, "GIF8", 4) == 0 ) + if (memcmp(buffer, "GIF8", 4) == 0 ) { if (buffer[4] == '9' || buffer[4] == '7' ) { - if ( buffer[5] == 'a') + if (buffer[5] == 'a') { return eImageCodec_GIF; } @@ -446,10 +456,10 @@ get_codec_type(const char *filename) fp = fopen(filename, "rb"); - if ( fp == NULL ) + if (fp == NULL) { char error_msg[256]; - MSG_ERROR("Cannot find %s", filename); + MSG_SEC("Cannot find %s", filename); MSG_ERROR("Cannot open file : %s", strerror_r(errno, error_msg, sizeof(error_msg)) ); return eImageCodec_UNKNOWN; @@ -460,7 +470,7 @@ get_codec_type(const char *filename) readcnt = fread(&buffer, 1, sizeof(buffer), fp); - if ( readcnt != sizeof(buffer) ) + if (readcnt != sizeof(buffer) ) { if(feof(fp)) { @@ -470,7 +480,7 @@ get_codec_type(const char *filename) { perror("fread ERROR"); } - MSG_ERROR("Read Error. file = %s, readcnt = %d", filename, readcnt); + MSG_SEC("Read Error. file = %s, readcnt = %d", filename, readcnt); fclose(fp); return eImageCodec_UNKNOWN; @@ -479,14 +489,14 @@ get_codec_type(const char *filename) fclose(fp); MSG_LOW("ReadCount=%d", readcnt); - return get_codec_type(buffer, readcnt); + return get_codec_type_with_size(buffer, readcnt); } bool is_openGL_enabled(Evas *e) { - MSG_ASSERT(e != NULL ); + MSG_ASSERT(e != NULL); Eina_List *engines, *l; int cur_id; diff --git a/widget/src/util/ivug-listpopup.c b/widget/src/util/ivug-listpopup.c index 8bd8f2e..c341ad7 100755 --- a/widget/src/util/ivug-listpopup.c +++ b/widget/src/util/ivug-listpopup.c @@ -1,23 +1,28 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ +* Copyright (c) 2000-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 "ivug-debug.h" #include +#include +#include + #include "ivug-listpopup.h" +#include "ivug-language-mgr.h" #undef LOG_LVL #define LOG_LVL DBG_MSG_LVL_HIGH @@ -25,30 +30,71 @@ #undef LOG_CAT #define LOG_CAT "IV-POPUP" +#define MAX_BUTTON (3) + +#define ONE_ITEM_HEIGHT (114) +#define GET_POPUP_HEIGHT(icnt) ((ONE_ITEM_HEIGHT*(icnt))) +#define GET_POPUP_WIDTH(icnt) (618) + +typedef enum { + IVUG_LISTPOPUP_TYPE_HIDDEN, + IVUG_LISTPOPUP_TYPE_POPUP, + IVUG_LISTPOPUP_TYPE_CTX_POPUP, +} Ivug_ListPopup_Type; + +typedef enum { + IVUG_LISTPOPUP_STATE_NONE, + IVUG_LISTPOPUP_STATE_DISMISSED, + IVUG_LISTPOPUP_STATE_MAX, +} Ivug_ListPopup_State; + typedef struct { - Evas_Object *obj; + Evas_Object *obj; // Dummy Box object - Evas_Object *popup; Evas_Object *parent; + + Evas_Object *popup; + Evas_Object *box; // Internal box object + + Evas_Object *genlist; + + Evas_Object *rgroup; // Radio group + Eina_List *list; + unsigned int show_count; + ivug_popup_style style; + const char *title; - const char *caption; + + const char *btn_caption[MAX_BUTTON]; + +// int selected_index; + Ivug_ListPopup_Type eStatus; // Popup is currently displaying? + Ivug_ListPopup_State state; + + Ivug_ListPopup_Item *item_selected; + + bool bIconUsed; + bool bRotationEnable; + language_handle_t hLang; } ListPopup; -typedef struct { +struct _ListPopupItem { Evas_Object *obj; // This object - Elm_Object_Item *item; + Elm_Object_Item *item; // Gengrid item const char *iconpath; - const char *caption; + const char *caption_id; void *data; bool bDisabled; -} ListPopupItem; + int index; // Checkbox index + ListPopup *pListPopup; +}; #define IV_LISTPOPUP(obj) \ (ListPopup *)(evas_object_data_get((obj), "LISTPOPUP")) @@ -56,26 +102,83 @@ typedef struct { static char * _on_label_set(void *data, Evas_Object *obj, const char *part) { - IV_ASSERT( data != NULL); + IV_ASSERT(data != NULL); + + Ivug_ListPopup_Item *item = (Ivug_ListPopup_Item *)data; + + MSG_LOW("_on_label_set Part %s", part); + + return strdup(GET_STR(item->caption_id)); //dump +} + + +static Evas_Object * +_on_content_set(void *data, Evas_Object *obj, const char *part) +{ + IV_ASSERT(data != NULL); + + Ivug_ListPopup_Item *item = (Ivug_ListPopup_Item *)data; + ListPopup *pListPopup = item->pListPopup; + + Evas_Object *radio; + + if (strcmp(part, "elm.icon.2") == 0) + { + radio = elm_radio_add(obj); + elm_radio_state_value_set(radio, item->index); + + elm_radio_group_add(radio, pListPopup->rgroup); + + if (pListPopup->item_selected == item) + { + elm_radio_value_set(radio, item->index); + } + + evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL); + + return radio; + } + else if (strcmp(part, "elm.icon.1") == 0) + { + Evas_Object *icon; + + icon = elm_icon_add(obj); + elm_image_file_set(icon, PREFIX"/res/edje/"PACKAGE"/ivug-icons.edj" , item->iconpath); + + return icon; + } - ListPopupItem *item = (ListPopupItem *)data; + MSG_HIGH("_on_content_set Part %s", part); - return strdup(item->caption); //dump + return NULL; } + static void _on_genlist_selected(void *data, Evas_Object *obj, void *event_info) { MSG_ASSERT(data != NULL); - ListPopupItem *item = data; -// ListPopup *pListPopup = IV_LISTPOPUP(item->obj); + Ivug_ListPopup_Item *item = data; + ListPopup *pListPopup = item->pListPopup; + + int index; + + index = item->index; + MSG_HIGH("Selected Index = %d", index); - MSG_HIGH("Genlist item selected"); +// pListPopup->selected_index = index; + pListPopup->item_selected = item; + + MSG_SEC("Genlist item selected. item=0x%08x %s", item, item->caption_id); + + elm_genlist_item_update(item->item); evas_object_smart_callback_call(item->obj, "popup,selected", item); + elm_genlist_item_selected_set(item->item, EINA_FALSE); } @@ -86,13 +189,12 @@ _on_ctxpopup_selected(void *data, Evas_Object *obj, void *event_info) // // Elm_Object_Item *item = (Elm_Object_Item *)event_info; - ListPopupItem *item = data; + Ivug_ListPopup_Item *item = data; // ListPopup *pListPopup = IV_LISTPOPUP(item->obj); - MSG_HIGH("Ctxpopup item selected. obj=0x%08x", item->obj); + MSG_SEC("Ctxpopup item selected. item=0x%08x %s", item, item->caption_id); evas_object_smart_callback_call(item->obj, "popup,selected", item); - } @@ -100,80 +202,123 @@ static void _on_item_del(void *data, Evas_Object *obj) { MSG_ASSERT(data != NULL); - ListPopupItem *item = data; + Ivug_ListPopup_Item *item = data; - MSG_HIGH("Remove item"); + MSG_MED("Remove item. obj=0x%08x", obj); - if ( item->caption ) - eina_stringshare_del(item->caption); + if (item->caption_id) + eina_stringshare_del(item->caption_id); + item->caption_id = NULL; - item->caption = NULL; - - if ( item->iconpath ) + if (item->iconpath) eina_stringshare_del(item->iconpath); item->iconpath = NULL; free(item); } - static void -_on_popup_close(void *data, Evas_Object *obj, void *event_info) +_on_popup_btn_click(void *data, Evas_Object *obj, void *event_info) { MSG_ASSERT(data != NULL); ListPopup *pListPopup = data; - MSG_HIGH("Genlist Popup Dismissed"); + int nIndex = (int)evas_object_data_get(obj, "_index"); + MSG_HIGH("Genlist Popup Btn click. pListPopup=0x%08x Index=%d", pListPopup, nIndex); - evas_object_smart_callback_call(pListPopup->obj, "popup,dismissed", NULL); + evas_object_smart_callback_call(pListPopup->obj, "popup,btn,selected", (void *)nIndex); } -static void _on_genpopup_deleted(void * data, Evas * e, Evas_Object * obj, void * event_info) +static void _on_listpopup_deleted(void * data, Evas * e, Evas_Object * obj, void * event_info) { - MSG_HIGH("Remove genlist popup"); - ListPopup *pListPopup = data; - if ( pListPopup->title ) + MSG_HIGH("Remove genlist popup. pListPopup=0x%08x", pListPopup); + + if (pListPopup->state != IVUG_LISTPOPUP_STATE_DISMISSED) + { + pListPopup->state = IVUG_LISTPOPUP_STATE_DISMISSED; + evas_object_smart_callback_call(pListPopup->obj, "popup,dismissed", NULL); + } + + if (pListPopup->title) + { eina_stringshare_del(pListPopup->title); + pListPopup->title = NULL; + } - pListPopup->title = NULL; + int i = 0; - if ( pListPopup->popup ) + for (i = 0; i < MAX_BUTTON; i++) { - evas_object_del(pListPopup->popup); + if (pListPopup->btn_caption[i]) + { + eina_stringshare_del(pListPopup->btn_caption[i]); + } + } + + if (pListPopup->genlist) + { + evas_object_hide(pListPopup->genlist); + +// After item is cleaed. selected callback is comming. so not removing genlist +// elm_genlist_clear(pListPopup->genlist); + evas_object_del(pListPopup->genlist); } + if (pListPopup->box) + { + evas_object_hide(pListPopup->box); + evas_object_del(pListPopup->box); + } + + if (pListPopup->popup) + { + evas_object_hide(pListPopup->popup); + evas_object_del(pListPopup->popup); + } free(pListPopup); + } static void _on_ctxpopup_deleted(void * data, Evas * e, Evas_Object * obj, void * event_info) { - MSG_HIGH("Remove ctx popup"); - ListPopup *pListPopup = data; - if ( pListPopup->title ) + MSG_HIGH("Remove ctx popup. pListPopup=0x%08x", pListPopup); + + if (pListPopup->title) eina_stringshare_del(pListPopup->title); pListPopup->title = NULL; - EINA_LIST_FREE(pListPopup->list, data) + int i = 0; + + for (i = 0; i < MAX_BUTTON; i++) + { + if (pListPopup->btn_caption[i]) + { + eina_stringshare_del(pListPopup->btn_caption[i]); + } + } + + void *item; + + EINA_LIST_FREE(pListPopup->list, item) { - _on_item_del(data, NULL); + _on_item_del(item, NULL); } pListPopup->list = NULL; - if ( pListPopup->popup ) + if (pListPopup->popup) { evas_object_del(pListPopup->popup); } - free(pListPopup); } @@ -181,155 +326,383 @@ static void _on_dismissed_cb(void *data, Evas_Object *obj, void *event_info) { ListPopup *pListPopup = data; - MSG_HIGH("Ctx Popup Dismissed"); + MSG_HIGH("Ctx Popup Dismissed. pListPopup=0x%08x", pListPopup); + + pListPopup->state = IVUG_LISTPOPUP_STATE_DISMISSED; evas_object_smart_callback_call(pListPopup->obj, "popup,dismissed", NULL); } +static void _on_btn_back_clicked(void *data, Evas_Object *obj, void *event_info) +{ + ListPopup *pListPopup = data; + + if (pListPopup->eStatus == IVUG_LISTPOPUP_TYPE_POPUP) + { + + MSG_HIGH("List Popup Dismissed. pListPopup=0x%08x", pListPopup); + pListPopup->state = IVUG_LISTPOPUP_STATE_DISMISSED; + evas_object_smart_callback_call(pListPopup->obj, "popup,dismissed", NULL); + +// Should be removec explictly by User! +// evas_object_del(pListPopup->obj); + } + else if (pListPopup->eStatus == IVUG_LISTPOPUP_TYPE_CTX_POPUP) + { + MSG_HIGH("Ctx Popup Dismissed. pListPopup=0x%08x", pListPopup); + + elm_ctxpopup_dismiss(pListPopup->popup); + } +} + + Evas_Object *ivug_listpopup_add(Evas_Object *parent) { Evas_Object *obj = NULL; -// Creating dummy object because we cannot +// Creating dummy object because we cannot get determine popup or ctxpopup here. obj = elm_box_add(parent); ListPopup *pListPopup = (ListPopup *)calloc(1, sizeof(ListPopup)); - pListPopup->parent = parent; - - pListPopup->list = NULL; - pListPopup->obj = obj; - pListPopup->title = NULL; - pListPopup->caption = NULL; - evas_object_data_set(obj, "LISTPOPUP", (void *)pListPopup); + if (pListPopup != NULL) { + pListPopup->parent = parent; + pListPopup->list = NULL; + pListPopup->obj = obj; + pListPopup->style = IVUG_POPUP_STYLE_LIST; + pListPopup->eStatus = IVUG_LISTPOPUP_TYPE_HIDDEN; + pListPopup->show_count = 0; + evas_object_data_set(obj, "LISTPOPUP", (void *)pListPopup); + } MSG_HIGH("List popup is added. obj=0x%08x", obj); return obj; } +void ivug_listpopup_lang_set(Evas_Object *obj, language_handle_t hLang) +{ + ListPopup *pListPopup = IV_LISTPOPUP(obj); + + if (pListPopup != NULL) { + pListPopup->hLang = hLang; + } +} -Ivug_ListPopup_Item *ivug_listpopup_item_append(Evas_Object *obj, const char *iconpath, const char *caption, void *data) +void ivug_listpopup_set_style(Evas_Object *obj, ivug_popup_style style) { ListPopup *pListPopup = IV_LISTPOPUP(obj); - ListPopupItem *item = calloc(1,sizeof(ListPopupItem)); + if (pListPopup != NULL) { + pListPopup->style = style; + } +} - item->obj = obj; +Ivug_ListPopup_Item *ivug_listpopup_item_append(Evas_Object *obj, const char *iconpath, const char *caption_id, void *data) +{ + ListPopup *pListPopup = IV_LISTPOPUP(obj); + + if (pListPopup == NULL) { + return NULL; + } - if (iconpath ) + Ivug_ListPopup_Item *pItem = calloc(1,sizeof(Ivug_ListPopup_Item)); + + if (pItem != NULL) { + pItem->obj = obj; + } + + if (iconpath && pItem != NULL) { - item->iconpath = eina_stringshare_add(iconpath); + pItem->iconpath = eina_stringshare_add(iconpath); + pListPopup->bIconUsed = true; } - if ( caption ) + if (caption_id && pItem != NULL) { - item->caption = eina_stringshare_add(caption); + pItem->caption_id = eina_stringshare_add(caption_id); } - item->bDisabled = false; - item->data = data; + if (pItem != NULL) { + pItem->bDisabled = false; + pItem->data = data; + pItem->pListPopup = pListPopup; + } - MSG_HIGH("Item append: %s", caption); + MSG_MED("Item append: %s", caption_id); - pListPopup->list = eina_list_append(pListPopup->list, item); + pListPopup->list = eina_list_append(pListPopup->list, pItem); - return item; + int newIndex = eina_list_count(pListPopup->list); + +// If already showed. need to update dynamically + if (pListPopup->eStatus == IVUG_LISTPOPUP_TYPE_POPUP && pItem != NULL) + { + static Elm_Genlist_Item_Class itc = {0,}; + + itc.version = ELM_GENLIST_ITEM_CLASS_VERSION; + + if (pListPopup->style == IVUG_POPUP_STYLE_RADIO) + { + itc.item_style = "1text.2icon.6/popup"; + itc.func.content_get = _on_content_set; + } + else + { + itc.item_style = "1text/popup"; + itc.func.content_get = NULL; + } + + itc.func.text_get = _on_label_set; + itc.func.state_get = NULL; + itc.func.del = _on_item_del; + + Elm_Object_Item *gItem; + + MSG_MED("Add popup item. %s", pItem->caption_id); + gItem = elm_genlist_item_append(pListPopup->genlist, &itc, pItem, NULL /* parent */, ELM_GENLIST_ITEM_NONE, _on_genlist_selected, pItem); + pItem->item = gItem; + pItem->index = newIndex; + + elm_object_item_disabled_set(gItem, pItem->bDisabled); + +// When item count is increase, popup height should be increased.. + unsigned int idx; + + idx = pListPopup->show_count; + + if (pListPopup->show_count == 0) + { + // Default policy. + idx = newIndex; + + // if (count < 2) idx = 2; + + // Check landscape mode also. + if (newIndex > 4) idx = 4; + } + else + { + idx = pListPopup->show_count; + } + + evas_object_size_hint_min_set(pListPopup->box, GET_POPUP_WIDTH(idx) * elm_config_scale_get(), GET_POPUP_HEIGHT(idx) * elm_config_scale_get()); + + } + + return pItem; } -Ivug_ListPopup_Item *ivug_listpopup_item_prepend(Evas_Object *obj, const char *iconpath, const char *caption, void *data) +Ivug_ListPopup_Item *ivug_listpopup_item_prepend(Evas_Object *obj, const char *iconpath, const char *caption_id, void *data) { ListPopup *pListPopup = IV_LISTPOPUP(obj); - ListPopupItem *item = (ListPopupItem *)calloc(1, sizeof(ListPopupItem)); + Ivug_ListPopup_Item *item = (Ivug_ListPopup_Item *)calloc(1, sizeof(Ivug_ListPopup_Item)); - item->obj = obj; - item->iconpath = eina_stringshare_add(item->iconpath); - item->caption = eina_stringshare_add(item->caption); - item->bDisabled = false; - item->data = data; + if (item != NULL) { + item->obj = obj; + } - MSG_HIGH("Item prepend: %s", caption); + if (iconpath && pListPopup != NULL && item != NULL) + { + item->iconpath = eina_stringshare_add(iconpath); + pListPopup->bIconUsed = true; + } - pListPopup->list = eina_list_prepend(pListPopup->list, item); + if (caption_id && item != NULL) + { + item->caption_id = eina_stringshare_add(caption_id); + } + + if (item != NULL) { + item->bDisabled = false; + item->data = data; + item->pListPopup = pListPopup; + } + + MSG_MED("Item prepend: %s", caption_id); + + if (pListPopup != NULL && item != NULL) { + pListPopup->list = eina_list_prepend(pListPopup->list, item); + } + +// TODO If already showed. need to update dynamically return item; } +void ivug_listpopup_item_clear(Evas_Object *obj) +{ + ListPopup *pListPopup = IV_LISTPOPUP(obj); + + if (pListPopup != NULL) { + if (pListPopup->eStatus == IVUG_LISTPOPUP_TYPE_HIDDEN) { + Ivug_ListPopup_Item *item; + EINA_LIST_FREE(pListPopup->list, item) + { + _on_item_del(item, NULL); + } + } else if (pListPopup->eStatus == IVUG_LISTPOPUP_TYPE_POPUP) { + elm_genlist_clear(pListPopup->genlist); + } + + eina_list_free(pListPopup->list); + pListPopup->list = NULL; + } +} + + Eina_List *ivug_listpopup_items_get(Evas_Object *obj) { ListPopup *pListPopup = IV_LISTPOPUP(obj); - return pListPopup->list; + if (pListPopup != NULL) { + return pListPopup->list; + } else { + return NULL; + } } void ivug_listpopup_item_disabled_set(Ivug_ListPopup_Item *item) { - ListPopupItem *item_ = item; + IV_ASSERT(item != NULL); - item_->bDisabled = true; + item->bDisabled = true; } void ivug_listpopup_item_enabled_set(Ivug_ListPopup_Item *item) { - ListPopupItem *item_ = item; - - item_->bDisabled = false; + IV_ASSERT(item != NULL); + item->bDisabled = false; } void *ivug_listpopup_item_get_data(Ivug_ListPopup_Item *item) { - ListPopupItem *item_ = (Ivug_ListPopup_Item *)item; + IV_ASSERT(item != NULL); - return item_->data; + return item->data; } const char *ivug_listpopup_item_get_text(Ivug_ListPopup_Item *item) { - ListPopupItem *item_ = (Ivug_ListPopup_Item *)item; + IV_ASSERT(item != NULL); - return item_->caption; + return item->caption_id; } + +void ivug_listpopup_item_selected_set(Ivug_ListPopup_Item *item) +{ +// Only one item should be checked. + IV_ASSERT(item != NULL); + + ListPopup *pListPopup = item->pListPopup; + + pListPopup->item_selected = item; +} + + +Ivug_ListPopup_Item *ivug_listpopup_item_find_by_data(Evas_Object *obj, void *data) +{ + ListPopup *pListPopup = IV_LISTPOPUP(obj); + + Ivug_ListPopup_Item *pItem = NULL; + Eina_List *tmp; + + if (pListPopup != NULL) { + EINA_LIST_FOREACH(pListPopup->list, tmp, pItem) + { + if (pItem->data == data) + { + return pItem; + } + } + } + + return NULL; + +} + + Elm_Object_Item *ivug_listpopup_item_get_item(Ivug_ListPopup_Item *item) { - ListPopupItem *item_ = (Ivug_ListPopup_Item *)item; + IV_ASSERT(item != NULL); - return item_->item; + return item->item; } -void ivug_listpopup_title_set(Evas_Object *obj, const char* title) +void ivug_listpopup_title_set(Evas_Object *obj, const char* title_id) { ListPopup *pListPopup = IV_LISTPOPUP(obj); - MSG_ASSERT(title != NULL); + MSG_ASSERT(title_id != NULL); - pListPopup->title = eina_stringshare_add(title); + if (pListPopup != NULL) { + pListPopup->title = eina_stringshare_add(title_id); + } - MSG_MED("Popup title set : %s", title); + MSG_MED("Popup title set : %s", title_id); } -void ivug_listpopup_button_set(Evas_Object *obj, const char* caption) +void ivug_listpopup_max_showitem_count(Evas_Object *obj, unsigned int cnt) { ListPopup *pListPopup = IV_LISTPOPUP(obj); - MSG_ASSERT(caption != NULL); + MSG_ASSERT(cnt != 0); - pListPopup->caption = eina_stringshare_add(caption); + if (pListPopup != NULL) { + pListPopup->show_count = cnt; + } - MSG_MED("Popup caption set : %s", caption); + MSG_MED("Popup set show count : %d", cnt); } -bool ivug_listpopup_popup_show(Evas_Object *obj) + +void ivug_listpopup_button_set(Evas_Object *obj, const char* caption_id1, ...) { ListPopup *pListPopup = IV_LISTPOPUP(obj); - if ( pListPopup->popup ) + int i = 0; + + if (caption_id1 && pListPopup != NULL) { + pListPopup->btn_caption[i++] = eina_stringshare_add(caption_id1); + MSG_HIGH("Popup caption[%d] set : %s", i, caption_id1); + } + + va_list ap; + + va_start(ap, caption_id1); + + const char *caption = va_arg(ap, const char *); + + while (caption != NULL) { + if (caption && pListPopup != NULL) { + pListPopup->btn_caption[i++] = eina_stringshare_add(caption); + MSG_HIGH("Popup caption[%d] set : %s", i, caption); + } + + caption = va_arg(ap, const char *); + } + + va_end(ap); + + +} + +bool ivug_listpopup_popup_show(Evas_Object *obj) +{ + ListPopup *pListPopup = IV_LISTPOPUP(obj); + + if (pListPopup == NULL) { + return false; + } + + if (pListPopup->popup) { MSG_WARN("Previous popup is remained"); } @@ -345,31 +718,80 @@ bool ivug_listpopup_popup_show(Evas_Object *obj) pListPopup->popup = popup; - elm_object_style_set(popup, "min_menustyle"); - elm_object_part_text_set(popup, "title,text", pListPopup->title); + elm_object_style_set(popup, "content_no_vhpad"); + + if (pListPopup->title) + ivug_elm_object_part_text_set(pListPopup->hLang, popup, "title,text", pListPopup->title); evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(popup, EVAS_HINT_FILL, EVAS_HINT_FILL); + Evas_Object *layout = elm_layout_add(popup); + elm_layout_theme_set(layout, "layout", "content", "min_menustyle"); + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + Evas_Object *btn_close = NULL; - if ( pListPopup->caption ) + if (pListPopup->btn_caption[0]) { btn_close = elm_button_add(popup); - elm_object_text_set(btn_close, pListPopup->caption); + elm_object_style_set(btn_close, "popup_button/default"); + ivug_elm_object_text_set(pListPopup->hLang, btn_close, pListPopup->btn_caption[0]); elm_object_part_content_set(popup, "button1", btn_close); + evas_object_data_set(btn_close, "_index", (void *)0); + + evas_object_smart_callback_add(btn_close, "clicked", _on_popup_btn_click, pListPopup); + } + + if (pListPopup->btn_caption[1]) + { + btn_close = elm_button_add(popup); + elm_object_style_set(btn_close, "popup_button/default"); + ivug_elm_object_text_set(pListPopup->hLang, btn_close, pListPopup->btn_caption[1]); + elm_object_part_content_set(popup, "button2", btn_close); + + evas_object_data_set(btn_close, "_index", (void *)1); + evas_object_smart_callback_add(btn_close, "clicked", _on_popup_btn_click, pListPopup); } + if (pListPopup->btn_caption[2]) + { + btn_close = elm_button_add(popup); + elm_object_style_set(btn_close, "popup_button/default"); + ivug_elm_object_text_set(pListPopup->hLang, btn_close, pListPopup->btn_caption[2]); + elm_object_part_content_set(popup, "button3", btn_close); + + evas_object_data_set(btn_close, "_index", (void *)2); + evas_object_smart_callback_add(btn_close, "clicked", _on_popup_btn_click, pListPopup); + } + + // create genlist Evas_Object *genlist; static Elm_Genlist_Item_Class itc = {0,}; - genlist = elm_genlist_add(popup); + genlist = elm_genlist_add(layout); + + pListPopup->genlist = genlist; itc.version = ELM_GENLIST_ITEM_CLASS_VERSION; - itc.item_style = "1text"; + + if (pListPopup->style == IVUG_POPUP_STYLE_RADIO) + { + itc.item_style = "1text.2icon.6/popup"; + itc.func.content_get = _on_content_set; + + pListPopup->rgroup = elm_radio_add(genlist); + elm_radio_state_value_set(pListPopup->rgroup, 0); + elm_radio_value_set(pListPopup->rgroup, 0); + } + else + { + itc.item_style = "1text/popup"; + itc.func.content_get = NULL; + } + itc.func.text_get = _on_label_set; - itc.func.content_get = NULL; itc.func.state_get = NULL; itc.func.del = _on_item_del; @@ -378,40 +800,65 @@ bool ivug_listpopup_popup_show(Evas_Object *obj) int count = eina_list_count(pListPopup->list); - ListPopupItem *pItem = NULL; + Ivug_ListPopup_Item *pItem = NULL; Eina_List *tmp; Elm_Object_Item *gItem; + int index = 1; + EINA_LIST_FOREACH(pListPopup->list, tmp, pItem) { - MSG_MED("Add popup item. %s", pItem->caption); + MSG_MED("Add popup item. %s", pItem->caption_id); gItem = elm_genlist_item_append(genlist, &itc, pItem, NULL /* parent */, ELM_GENLIST_ITEM_NONE, _on_genlist_selected, pItem); pItem->item = gItem; + pItem->index = index++; elm_object_item_disabled_set(gItem, pItem->bDisabled); } // Put together + unsigned int idx; + + idx = pListPopup->show_count; + + if (pListPopup->show_count == 0) + { + // Default policy. + idx = count; + +// if (count < 2) idx = 2; -#define GET_POPUP_HEIGHT(icnt) (((113*icnt-1) > 408) ? (408) : (113*icnt-1)) -#define GET_POPUP_WIDTH(icnt) (614) +// Check landscape mode also. + if (count > 4) idx = 4; + } + else + { + idx = pListPopup->show_count; + } Evas_Object *box; - box = elm_box_add(popup); - evas_object_size_hint_min_set(box, GET_POPUP_WIDTH(count) * elm_config_scale_get(), GET_POPUP_HEIGHT(count) * elm_config_scale_get()); - evas_object_show(genlist); + box = elm_box_add(layout); + evas_object_size_hint_min_set(box, GET_POPUP_WIDTH(idx) * elm_config_scale_get(), GET_POPUP_HEIGHT(idx) * elm_config_scale_get()); + +// MSG_WARN("Set box size WH(%d,%d)", GET_POPUP_WIDTH(idx) * elm_config_scale_get(), GET_POPUP_HEIGHT(idx) * elm_config_scale_get()); + elm_box_pack_end(box, genlist); + + elm_object_part_content_set(layout, "elm.swallow.content" , box); + elm_object_content_set(popup, box); - if ( btn_close ) - { - evas_object_smart_callback_add(btn_close, "clicked", _on_popup_close, pListPopup); - } + evas_object_show(genlist); + + pListPopup->box = box; - evas_object_event_callback_add(pListPopup->obj, EVAS_CALLBACK_DEL, _on_genpopup_deleted, pListPopup); + evas_object_event_callback_add(pListPopup->obj, EVAS_CALLBACK_DEL, _on_listpopup_deleted, pListPopup); MSG_HIGH("Show Genlist Popup"); + pListPopup->eStatus = IVUG_LISTPOPUP_TYPE_POPUP; + + eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, _on_btn_back_clicked, pListPopup); evas_object_show(popup); @@ -423,13 +870,17 @@ bool ivug_listpopup_context_show(Evas_Object *obj, Evas_Object *hover, int x, in { ListPopup *pListPopup = IV_LISTPOPUP(obj); - if ( pListPopup->popup ) + if (pListPopup == NULL) { + return false; + } + + if (pListPopup->popup) { MSG_WARN("Previous popup is remained"); } Evas_Object* ctxpopup = NULL; - ctxpopup = elm_ctxpopup_add(obj); + ctxpopup = elm_ctxpopup_add(hover); if (!ctxpopup) { @@ -439,15 +890,30 @@ bool ivug_listpopup_context_show(Evas_Object *obj, Evas_Object *hover, int x, in pListPopup->popup = ctxpopup; + elm_object_style_set(ctxpopup, "more/default"); // for more + elm_ctxpopup_hover_parent_set(ctxpopup, hover); + { + Evas_Object *obj = hover; + int x, y, w, h; + + evas_object_geometry_get(obj, &x, &y, &w, &h); + Eina_Bool repeat = evas_object_repeat_events_get(obj); + Eina_Bool pass = evas_object_pass_events_get(obj); + Eina_Bool visible = evas_object_visible_get(obj); + Eina_Bool propagate = evas_object_propagate_events_get(obj); + + MSG_SEC("Obj=%s(%s,0x%08x) (%d,%d,%d,%d) P%d|R%d|V%d|E%d", evas_object_name_get(obj), evas_object_type_get(obj), obj, x, y, w, h, pass, repeat, visible, propagate); + } + elm_ctxpopup_direction_priority_set(ctxpopup, ELM_CTXPOPUP_DIRECTION_DOWN, ELM_CTXPOPUP_DIRECTION_UP, ELM_CTXPOPUP_DIRECTION_RIGHT, ELM_CTXPOPUP_DIRECTION_LEFT); - ListPopupItem *pItem = NULL; + Ivug_ListPopup_Item *pItem = NULL; Eina_List *tmp; Elm_Object_Item *gItem; @@ -455,19 +921,26 @@ bool ivug_listpopup_context_show(Evas_Object *obj, Evas_Object *hover, int x, in EINA_LIST_FOREACH(pListPopup->list, tmp, pItem) { - MSG_MED("Add popup item. %s", pItem->caption); + MSG_MED("Add popup item. %s", pItem->caption_id); - if ( pItem->iconpath ) + if (pItem->iconpath) + { + icon = elm_icon_add(ctxpopup); + elm_image_file_set(icon, PREFIX"/res/edje/"PACKAGE"/ivug-icons.edj", pItem->iconpath); + } + else if (pListPopup->bIconUsed == true) // For icon align { icon = elm_icon_add(ctxpopup); - elm_image_file_set(icon, pItem->iconpath, NULL); + elm_image_file_set(icon, PREFIX"/res/edje/"PACKAGE"/ivug-icons.edj", "icon.mainmenu.transparent"); } else { + icon = NULL; } - gItem = elm_ctxpopup_item_append(ctxpopup, pItem->caption, icon, _on_ctxpopup_selected, pItem); + gItem = elm_ctxpopup_item_append(ctxpopup, GET_STR(pItem->caption_id), icon, _on_ctxpopup_selected, pItem); + pItem->pListPopup = pListPopup; pItem->item = gItem; elm_object_item_disabled_set(gItem, pItem->bDisabled); @@ -477,9 +950,16 @@ bool ivug_listpopup_context_show(Evas_Object *obj, Evas_Object *hover, int x, in evas_object_smart_callback_add(ctxpopup, "dismissed", _on_dismissed_cb, pListPopup); + if (pListPopup->bRotationEnable) + elm_ctxpopup_auto_hide_disabled_set(ctxpopup, EINA_TRUE); + evas_object_move(ctxpopup, x, y); - MSG_HIGH("Show Context Popup(%d,%d)", x, y); + MSG_SEC("Show Context Popup(%d,%d)", x, y); + pListPopup->eStatus = IVUG_LISTPOPUP_TYPE_CTX_POPUP; + + eext_object_event_callback_add(ctxpopup, EEXT_CALLBACK_BACK, _on_btn_back_clicked, pListPopup); + eext_object_event_callback_add(ctxpopup, EEXT_CALLBACK_MORE, _on_btn_back_clicked, pListPopup); // When pressed backbutton 2 time, closed ctx popup evas_object_show(ctxpopup); @@ -487,3 +967,69 @@ bool ivug_listpopup_context_show(Evas_Object *obj, Evas_Object *hover, int x, in } + +void ivug_listpopup_context_get_geometry(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) +{ + ListPopup *pListPopup = IV_LISTPOPUP(obj); + + if (pListPopup == NULL) { + return; + } + + if (pListPopup->popup == NULL) + { + if (x) *x = 0; + if (y) *y = 0; + if (w) *w = 0; + if (h) *h = 0; + + return; + } + + if (strcmp (evas_object_type_get(pListPopup->popup), "elm_ctxpopup") != 0) + { + if (x) *x = 0; + if (y) *y = 0; + if (w) *w = 0; + if (h) *h = 0; + + return; + } + + evas_object_geometry_get(pListPopup->popup, x, y, w, h); + +} + +bool ivug_listpopup_context_set_rotate_enable(Evas_Object *obj, bool enable) +{ + ListPopup *pListPopup = IV_LISTPOPUP(obj); + + if (pListPopup != NULL) { + pListPopup->bRotationEnable = enable; + } + + return true; +} + +bool ivug_listpopup_context_get_rotate_enable(Evas_Object *obj) +{ + ListPopup *pListPopup = IV_LISTPOPUP(obj); + + if (pListPopup != NULL) { + return pListPopup->bRotationEnable; + } else { + return false; + } +} + +bool ivug_listpopup_context_move(Evas_Object *obj, int x, int y) +{ + ListPopup *pListPopup = IV_LISTPOPUP(obj); + + if (pListPopup != NULL) { + evas_object_move(pListPopup->popup, x, y); + } + + return true; +} + diff --git a/widget/src/util/ivug-widget.c b/widget/src/util/ivug-widget.c new file mode 100755 index 0000000..eb920c4 --- /dev/null +++ b/widget/src/util/ivug-widget.c @@ -0,0 +1,292 @@ +/* +* Copyright (c) 2000-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 "ivug-debug.h" +#include "ivug-widget.h" + +#include "ivug-language-mgr.h" + +#define IVUG_TEXT_DOMAIN PACKAGE + +static void _on_obj_deleted(void * data, Evas * e, Evas_Object * obj, void * event_info) +{ + char *szMsg = (char *)data; + IV_ASSERT(szMsg != NULL); + + MSG_IVUG_HIGH("On Object deleted. %s, 0x%08x", szMsg, obj); + + free(szMsg); +} + +void ivug_layout_attach_to_window(Evas_Object *parent, Evas_Object* layout) +{ + elm_win_resize_object_add(ug_get_window(), layout); +} + +void ivug_on_obj_deleted(Evas_Object* obj, const char *msg, const char *func, int line) +{ + char buf[128]; + + snprintf(buf, sizeof(buf), "%s(L%d):%s 0x%08x", func, line, msg, (unsigned int)obj); + + evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL, _on_obj_deleted, strdup(buf)); +} + +void ivug_on_obj_deleted_cancel(Evas_Object* obj) +{ + evas_object_event_callback_del(obj, EVAS_CALLBACK_DEL, _on_obj_deleted); +} + +Evas_Object* ivug_bg_add(Evas_Object* parent, int r, int g, int b) +{ + IV_ASSERT(parent != NULL); + + Evas_Object *bg = elm_bg_add(parent); + evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(bg, EVAS_HINT_FILL, EVAS_HINT_FILL); + + //elm_win_resize_object_add(parent, bg); + + elm_bg_color_set(bg, r, g, b); + + evas_object_show(bg); + + return bg; +} + +Evas_Object * +ivug_layout_add(Evas_Object *parent, const char *edj, const char *group) +{ + IV_ASSERT(parent != NULL); + + Evas_Object *layout; + + layout = elm_layout_add(parent); + + if (layout == NULL) { + MSG_IVUG_ERROR("Cannot create layout"); + return NULL; + } + + if (elm_layout_file_set(layout, edj, group) == EINA_FALSE) { + MSG_IVUG_ERROR("edj loading fail, filepath=%s Group=%s", edj, group); + evas_object_del(layout); + return NULL; + } + + evas_object_size_hint_expand_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_fill_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + + ivug_layout_attach_to_window(parent, layout); + + return layout; +} + +Evas_Object* +ivug_default_layout_add(Evas_Object *win) +{ +/* + Default layout. + + "elm.swallow.bg" + "elm.swallow.content" + "elm.swallow.controlbar" +*/ + IV_ASSERT(win != NULL); + + Evas_Object *layout; + layout = elm_layout_add(win); + + if (layout == NULL) { + MSG_SETAS_ERROR("Cannot create layout"); + return NULL; + } + + Eina_Bool ret = EINA_FALSE; + + const char *profile = elm_config_profile_get(); + MSG_IVUG_HIGH("profile = %s", profile); + if (!strcmp(profile, "mobile")) { + ret = elm_layout_theme_set(layout, "layout", "application", "noindicator"); + MSG_IVUG_HIGH("layout/application/noindicator"); + } else if (!strcmp(profile, "desktop")) { + ret = elm_layout_theme_set(layout, "layout", "application", "noindicator"); + MSG_IVUG_HIGH("layout/application/noindicator"); + } else { + ret = elm_layout_theme_set(layout, "layout", "application", "noindicator"); + MSG_IVUG_HIGH("layout/application/noindicator"); + } + + if (ret == EINA_FALSE) { + MSG_IVUG_ERROR("theme set fail"); + evas_object_del(layout); + return NULL; + } + + evas_object_size_hint_expand_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_fill_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + + evas_object_show(layout); + return layout; +} + +Evas_Object * +ivug_layout_add2(Evas_Object *parent, const char *edj, const char *group) +{ + IV_ASSERT(parent != NULL); + + Evas_Object *layout = NULL; + + layout = elm_layout_add(parent); + + if (layout == NULL) { + MSG_IVUG_ERROR("Cannot create layout"); + return NULL; + } + + if (elm_layout_file_set(layout, edj, group) == EINA_FALSE) { + MSG_IVUG_ERROR("edj loading fail, filepath = %s Group = %s", edj, group); + evas_object_del(layout); + return NULL; + } + + evas_object_size_hint_expand_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_fill_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + + evas_object_show(layout); + return layout; +} + +Evas_Object *ivug_button_add(Evas_Object *parent, const char *style, language_handle_t hLang, const char *caption_id, Evas_Object *icon, Evas_Smart_Cb pFunc, const void * data) +{ + IV_ASSERT(parent != NULL); + + Evas_Object *btn; + + btn = elm_button_add(parent); + if (btn == NULL) { + return NULL; + } + + if (style) + elm_object_style_set(btn, style); + + if (caption_id) + ivug_elm_object_text_set(hLang, btn, caption_id); + + if (icon) + elm_object_part_content_set(btn, "icon", icon); + + evas_object_propagate_events_set(btn, EINA_FALSE); + + evas_object_smart_callback_add(btn, "clicked", pFunc, (void*)data); + + return btn; +} + +Evas_Object *ivug_icon_add(Evas_Object *parent, const char *edjname, const char *groupname) +{ + Evas_Object *icon; + + icon = elm_icon_add(parent); + + if (elm_image_file_set(icon, edjname, groupname) == EINA_FALSE) { + MSG_IVUG_ERROR("Cannot file set. EDJ=%s Group=%s", edjname, groupname); + evas_object_del(icon); + return NULL; + } + + evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); + elm_image_resizable_set(icon, 1, 1); + evas_object_size_hint_expand_set(icon, 1, 1); + + return icon; +} + +Evas_Object *ivug_toolbar_add(Evas_Object *parent, const char *style) +{ + Evas_Object *toolbar = elm_toolbar_add(parent); + if (!toolbar) { + MSG_IVUG_ERROR("tool bar create failed"); + return NULL; + } + if (style) + elm_object_style_set(toolbar, style); + elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_EXPAND); + elm_toolbar_transverse_expanded_set(toolbar, EINA_TRUE); + elm_toolbar_select_mode_set(toolbar, ELM_OBJECT_SELECT_MODE_NONE); + + return toolbar; +} + +Elm_Object_Item *ivug_toolbar_item_append(Evas_Object *toolbar, const char *text_id, Evas_Smart_Cb callback, void *data) +{ + Elm_Object_Item *item = NULL; + + char *domain = NULL; + + if (strstr(text_id, "IDS_COM")) + domain = strdup("sys_string"); + else + domain = strdup(IVUG_TEXT_DOMAIN); + + item = elm_toolbar_item_append(toolbar, NULL, text_id, callback, data); + elm_object_item_domain_translatable_text_set(item, domain, text_id); + + free(domain); + + return item; +} + +void _ivug_set_indicator_overlap_mode(const char *func, int line, bool bOverlap) +{ + Evas_Object *conform = (Evas_Object *)ug_get_conformant(); + IV_ASSERT(conform != NULL); + + if (bOverlap == true) { + MSG_IVUG_HIGH("[%s:%4d] Set Overlap Mode! conform(0x%08x)", func, line, conform); + elm_object_signal_emit(conform, "elm,state,indicator,overlap", ""); + + evas_object_data_set(conform, "overlap", (void *)EINA_TRUE); + } else { + MSG_IVUG_HIGH("[%s:%4d] Set Non-Overlap Mode! conform(0x%08x)", func, line, conform); + elm_object_signal_emit(conform, "elm,state,indicator,nooverlap", ""); + + evas_object_data_set(conform, "overlap", (void *)EINA_FALSE); + } +} + + +void _ivug_set_indicator_visibility(const char *func, int line, bool bShow) +{ + Evas_Object *win = (Evas_Object *)ug_get_window(); + IV_ASSERT(win != NULL); + + if (bShow == true) { + MSG_IVUG_HIGH("[%s:%4d] Set Indicator Visible! win(0x%08x)", func, line, win); + elm_win_indicator_opacity_set(win, ELM_WIN_INDICATOR_OPAQUE); + elm_win_indicator_mode_set(win, ELM_WIN_INDICATOR_SHOW); + } else { + MSG_IVUG_HIGH("[%s:%4d] Set Indicator Hidden! win(0x%08x)", func, line, win); + elm_win_indicator_mode_set(win, ELM_WIN_INDICATOR_SHOW); + elm_win_indicator_opacity_set(win, ELM_WIN_INDICATOR_TRANSPARENT); + } +} + diff --git a/widget/src/video/VideoView.h b/widget/src/video/VideoView.h new file mode 100755 index 0000000..e9ca06f --- /dev/null +++ b/widget/src/video/VideoView.h @@ -0,0 +1,192 @@ +/* +* Copyright (c) 2000-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. +* +*/ + +#pragma once + +#include "ScrollerClient.h" +#include "ivug-player.h" + + +/* + Signal. + "video.started" with Evas_Point. x = stream width, y = stream height + "video.eos" + "video.paused", + "video.resumed", +*/ +class CVideoView : public CScrollerClient { + static void _OnPlayerCB(PlayerParam *param, void *data) + { + CVideoView *pVideoView = static_cast(data); + + pVideoView->OnPlayerCB(param); + } + + virtual void Draw() { + const CRect &rect = GetClientRect(); + const CPoint &origin = GetOrigin(); + + evas_object_move(m_video, origin.X() + rect.Left() , origin.Y() + rect.Top()); + evas_object_resize(m_video, rect.Width() , rect.Height()); + + }; + +public: + CVideoView(Evas_Object *parent) : CScrollerClient(parent), m_video(NULL), m_player(NULL) { +#if 1 + m_video = evas_object_image_add(evas_object_evas_get(GetObject())); + evas_object_image_filled_set(m_video, EINA_FALSE); + + evas_object_name_set(m_video, "video"); + + evas_object_smart_member_add(m_video, GetObject()); +#else + m_video = evas_object_image_filled_add(evas_object_evas_get(parent)); +#endif +// evas_object_size_hint_weight_set(m_video, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); +// evas_object_size_hint_fill_set(m_video, EVAS_HINT_FILL, EVAS_HINT_FILL); + }; + + virtual ~CVideoView() { + UnsetFile(); + }; + + Evas_Load_Error SetFile(const char *file) + { + m_player = ivug_player_create(); + + ivug_player_set_file(m_player, file); + + evas_object_image_size_set(m_video, 1, 1); // Size set should be called before play + + ivug_player_set_callback(m_player, _OnPlayerCB, this); + + return EVAS_LOAD_ERROR_NONE; + }; + + void UnsetFile() { + if ( m_player ) + { + Stop(); + ivug_player_delete(m_player); + + m_player = NULL; + } + }; + + void Play() + { + PlayerConfig config; + + config.bLooping = false; + config.pSurface = m_video; + config.eSurface = IVUG_PLAYER_SURFACE_EVAS; + + ivug_player_set_config(m_player, &config); + + ivug_player_start(m_player); + } + + void Stop() + { + ivug_player_stop(m_player); + evas_object_hide(m_video); + evas_object_image_fill_set(m_video, 0,0,0,0); // Reset + } + + void Pause() + { + ivug_player_pause(m_player); + } + + void Resume() + { + ivug_player_resume(m_player); + } + + virtual void Zoom(double zoom) { + CScrollerClient::Zoom(zoom); + + if ( evas_object_visible_get(m_video ) == EINA_TRUE ) + { + const CRect &rect = GetClientRect(); + + MSG_HIGH("Video Fill Set : (%d,%d)", rect.Width(), rect.Height()); + + evas_object_image_fill_set(m_video, 0, 0, rect.Width(), rect.Height()); + } + }; + + bool IsPlaying() + { + PlayerState state; + + ivug_player_state_get(m_player, &state); + + if ( state == IVUG_PLAYER_STATE_PLAYING ) + { + return true; + } + + return false; + + } +private: + void OnPlayerCB(PlayerParam *param) + { + Evas_Point pt; + + switch(param->type) + { + case IVUG_PLAYER_EVENT_STARTED: + MSG_HIGH("Player Started. WH(%d,%d)", param->param.started.w, param->param.started.h); + + pt.x = param->param.started.w; + pt.y = param->param.started.h; + + evas_object_show(m_video); + + evas_object_smart_callback_call(GetObject(), "video.started", (void *)&pt); + + break; + + case IVUG_PLAYER_EVENT_PREPARED: + MSG_HIGH("Player Prepared."); + + evas_object_smart_callback_call(GetObject(), "video.ready", (void *)NULL); + + break; + + case IVUG_PLAYER_EVENT_EOS: + evas_object_hide(m_video); + evas_object_image_fill_set(m_video, 0,0,0,0); // Reset + evas_object_smart_callback_call(GetObject(), "video.eos", (void *)&pt); + break; + case IVUG_PLAYER_EVENT_ERROR: + break; + default: + break; + } + } +private: + Evas_Object *m_video; + + PlayerHandle m_player; + +}; + + diff --git a/widget/src/video/Videocam.cpp b/widget/src/video/Videocam.cpp new file mode 100755 index 0000000..052bbcc --- /dev/null +++ b/widget/src/video/Videocam.cpp @@ -0,0 +1,125 @@ +/* +* Copyright (c) 2000-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 "Videocam.h" + +static const char SIG_STARTED[] = "started"; +static const char SIG_READY[] = "ready"; +static const char SIG_EOS[] = "eos"; + + +template<> +const Evas_Smart_Cb_Description CEvasSmartObject::_signals[] = { + {SIG_STARTED, ""}, + {SIG_READY, ""}, + {SIG_EOS, ""}, + {NULL, NULL} +}; + +void CVideocam::OnPlayerStarted(int w, int h) +{ + video_->SetSize(CSize(w,h)); + + evas_object_smart_callback_call(GetObject(), SIG_STARTED, NULL); + + scroller_->SetClient(video_); +} + + +void CVideocam::OnPlayerReady(int w, int h) +{ +// video_->SetSize(CSize(w,h)); + + evas_object_smart_callback_call(GetObject(), SIG_READY, NULL); + + scroller_->SetClient(video_); +} + +void CVideocam::OnPlayerEOS(void) +{ + evas_object_smart_callback_call(GetObject(), SIG_EOS, NULL); + +} + +void CVideocam::move(int x, int y) +{ + CEvasSmartObject::move(x,y); + + MSG_HIGH("Move to %d,%d", x, y); + + evas_object_move(scroller_->GetObject(), x, y); +} + +void CVideocam::resize(int w, int h) +{ + CEvasSmartObject::resize(w,h); + + MSG_HIGH("Resize to %d,%d", w, h); + evas_object_resize(scroller_->GetObject(), w, h); +} + +void CVideocam::show() +{ + CEvasSmartObject::show(); + + MSG_HIGH("Videcam Show"); + + if (video_) { + evas_object_show(video_->GetObject()); + } + + if (scroller_) { + evas_object_show(scroller_->GetObject()); + } +} + +void CVideocam::hide() +{ + CEvasSmartObject::hide(); + + MSG_HIGH("Videcam Hide"); + + if (video_) { + evas_object_hide(video_->GetObject()); + } + + if (scroller_) { + evas_object_hide(scroller_->GetObject()); + } +} + +void CVideocam::draw() +{ + CEvasSmartObject::draw(); + + if (scroller_) { + scroller_->Draw(); + } +} + +void CVideocam::remove() +{ + MSG_ERROR("Videocam Deleted"); + + delete scroller_; + scroller_= NULL; + + EFL::dump_obj(GetObject() ,0); + + delete video_; +} + diff --git a/widget/src/video/Videocam.h b/widget/src/video/Videocam.h new file mode 100755 index 0000000..ce27b8d --- /dev/null +++ b/widget/src/video/Videocam.h @@ -0,0 +1,201 @@ +/* +* Copyright (c) 2000-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. +* +*/ + +#pragma once + +#include "EvasSmartObj.h" +#include "VideoView.h" +#include "EFLUtil.h" + + +#undef LOG_LVL +#define LOG_LVL DBG_MSG_LVL_HIGH + +#undef LOG_CAT +#define LOG_CAT "IV-VIDEO" + + +class CVideocam : public CEvasSmartObject { + static void _OnPlayerStarted(void *data, Evas_Object *obj, void *event_info) + { + CVideocam *pVideoCam = static_cast(data); + + Evas_Point *pPoint = static_cast(event_info); + + pVideoCam->OnPlayerStarted(pPoint->x, pPoint->y); + } + + static void _OnPlayerReady(void *data, Evas_Object *obj, void *event_info) + { + CVideocam *pVideoCam = static_cast(data); + + pVideoCam->OnPlayerReady(0,0); + } + + static void _OnPlayerEOS(void *data, Evas_Object *obj, void *event_info) // End of stream + { + CVideocam *pVideoCam = static_cast(data); + + pVideoCam->OnPlayerEOS(); + } + +public: + CVideocam() : CEvasSmartObject(), scroller_(NULL), video_(NULL), bMotion(false) { + CEvasSmartObject::SetClassName("Videocam"); + }; + + ~CVideocam() {}; + + Evas_Object *CreateObject(Evas_Object *parent) { + CEvasSmartObject::CreateObject(parent); + + evas_object_smart_callbacks_descriptions_set(GetObject(), _signals); + + scroller_ = new CScroller("vScroller"); + scroller_->CreateObject(GetObject()); + + evas_object_smart_member_add(scroller_->GetObject(), GetObject()); + + evas_object_name_set(GetObject(), "videocam"); + + return GetObject(); + }; + + Evas_Load_Error SetFile(const char *file) + { + UnSet(); + + Evas_Load_Error error; + + video_ = new CVideoView(GetObject()); + error = video_->SetFile(file); + + MSG_HIGH("Set file in player : %s", file); + + evas_object_smart_callback_add(video_->GetObject(), "video.started", _OnPlayerStarted, this); + evas_object_smart_callback_add(video_->GetObject(), "video.ready", _OnPlayerReady, this); + evas_object_smart_callback_add(video_->GetObject(), "video.eos", _OnPlayerEOS, this); + + return error; + }; + + void UnSet() { + // Scroller Client should be removed + scroller_->UnsetClient(); + + if ( video_ ) delete video_; + video_ = NULL; + }; + + void Play() + { + MSG_HIGH("Play"); + video_->Play(); + } + + void Stop() + { + MSG_HIGH("Stop"); + video_->Stop(); + } + + void Pause() + { + MSG_HIGH("Pause"); + video_->Pause(); + } + + void Resume() + { + MSG_HIGH("Resume"); + video_->Resume(); + } + + void OnPlayerStarted(int w, int h); + void OnPlayerReady(int w, int h); + void OnPlayerEOS(void); + + + CRect GetDisplayGeometry() const { + // Original image size; + + if ( video_ == NULL ) + { + return CRect::Zero; + } + + const CRect &rect = video_->GetClientRect(); + const CPoint &origin = video_->GetOrigin(); + + MSG_HIGH("Display Rect : Origin(%d,%d) Client(%d,%d,%d,%d)", origin.X() , origin.Y() , rect.Left(), rect.Top(), rect.Width(), rect.Height()); + return CRect(/*origin.X() + */ rect.Left(), /* origin.Y() + */ rect.Top(), rect.Width(), rect.Height()); + }; + + void DisableEvent() const { scroller_->DisableEvent(); }; + void EnableEvent() const { scroller_->EnableEvent(); }; + + void DoAutoFit() { + scroller_->DoAutoFit(); + }; + + void SetTiltMotion(bool bUse) { + if ( bUse == true ) + { + scroller_->EnableTiltMotion(); + } + else + { + scroller_->DisableTiltMotion(); + } + } + + void SetPanMotion(bool bUse) { + if ( bUse == true ) + { + scroller_->EnablePanMotion(); + } + else + { + scroller_->DisablePanMotion(); + } + + } + + bool IsPlaying() { + if ( video_ == NULL ) + { + return false; + } + + return video_->IsPlaying(); + }; + +private: + void move(int x, int y); + void resize(int w, int h); + void show(); + void hide(); + void draw(); + void remove(); + +private: + CScroller *scroller_; + CVideoView *video_; + bool bMotion; +}; + + diff --git a/widget/src/video/ivug-video.cpp b/widget/src/video/ivug-video.cpp new file mode 100755 index 0000000..c058bbe --- /dev/null +++ b/widget/src/video/ivug-video.cpp @@ -0,0 +1,148 @@ +/* +* Copyright (c) 2000-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 "ivug-video.h" + +#include "debug.h" +#include "Videocam.h" + + +#define VIDEO_CLASS(obj) \ + static_cast(evas_object_data_get((obj), "CVideocam")) + + +IVAPI Evas_Object *ivug_video_create(Evas_Object *parent) +{ + CVideocam *video = new CVideocam; + + Evas_Object *obj = video->CreateObject(parent); + + evas_object_data_set(obj, "CVideocam", video); + + MSG_HIGH("Create videocam object. class=0x%08x obj=0x%08x", video, obj); + return obj; +} + +IVAPI Evas_Load_Error ivug_video_file_set(Evas_Object *obj, const char *file) +{ + CVideocam *video = VIDEO_CLASS(obj); + MSG_ASSERT(video != NULL); + + video->SetFile(file); + + return EVAS_LOAD_ERROR_NONE; +} + +IVAPI Evas_Load_Error ivug_video_file_unset(Evas_Object *obj) +{ + CVideocam *video = VIDEO_CLASS(obj); + MSG_ASSERT(video != NULL); + + video->UnSet(); + + return EVAS_LOAD_ERROR_NONE; +} + +IVAPI Eina_Bool ivug_video_play(Evas_Object *obj) +{ + CVideocam *video = VIDEO_CLASS(obj); + MSG_ASSERT(video != NULL); + + video->Play(); + + return EINA_TRUE; +} + +IVAPI Eina_Bool ivug_video_stop(Evas_Object *obj) +{ + CVideocam *video = VIDEO_CLASS(obj); + MSG_ASSERT(video != NULL); + + video->Stop(); + + return EINA_TRUE; +} + +IVAPI Eina_Bool ivug_video_pause(Evas_Object *obj) +{ + CVideocam *video = VIDEO_CLASS(obj); + MSG_ASSERT(video != NULL); + + video->Pause(); + + return EINA_TRUE; +} + +IVAPI Eina_Bool ivug_video_resume(Evas_Object *obj) +{ + CVideocam *video = VIDEO_CLASS(obj); + MSG_ASSERT(video != NULL); + + video->Resume(); + + return EINA_TRUE; +} + + +IVAPI void ivug_video_region_get(const Evas_Object *obj, int *x, int *y, int *w, int *h) +{ + CVideocam *video = VIDEO_CLASS(obj); + MSG_ASSERT(video != NULL); + + + const CRect &rect = video->GetDisplayGeometry(); + + if(x) *x = rect.Left(); + if(y) *y = rect.Top(); + if(w) *w = rect.Width(); + if(h) *h = rect.Height(); + + MSG_HIGH("Region size XYWH(%d,%d,%d,%d)", rect.Left(), rect.Top(), rect.Width(), rect.Height() ); +} + +IVAPI void ivug_video_hold_set(const Evas_Object *obj, Eina_Bool hold) +{ + CVideocam *video = VIDEO_CLASS(obj); + MSG_ASSERT(video != NULL); + + if (hold == EINA_TRUE) { + video->DisableEvent(); + } else { + video->EnableEvent(); + } + +} + +IVAPI void ivug_video_zoom_reset(Evas_Object *obj, Evas_Point *pCenter) +{ + CVideocam *video = VIDEO_CLASS(obj); + MSG_ASSERT(video != NULL); + + video->DoAutoFit(); +} + +IVAPI Eina_Bool ivug_video_is_playing(Evas_Object *obj) +{ + CVideocam *video = VIDEO_CLASS(obj); + MSG_ASSERT(video != NULL); + + if (video->IsPlaying() == true ) { + return EINA_TRUE; + } + + return EINA_FALSE; +}